Commit c6286ab50490e083826f66d05c3c2ec42a239bd8

Added missing files [#24 state:resolved]

Commit diff

lib/strokedb/nsurl.rb

 
1Module.module_eval do
2
3 def self.clear_nsurls
4 @@nsurls = {}
5 end
6 def self.find_by_nsurl(url)
7 @@nsurls[url]
8 end
9
10 def nsurl(url = nil)
11 return @nsurl unless url
12 @@nsurls ||= {}
13 mod = @@nsurls[url]
14 raise ArgumentError, "nsurl #{url.inspect} is already referenced by #{mod.inspect} module" if mod && mod != self
15 @@nsurls.delete(url)
16 @@nsurls[url] = self
17 @nsurl = url
18 end
19
20end
21
22Module.nsurl ''
23StrokeDB.nsurl StrokeDB::STROKEDB_NSURL
toggle raw diff

spec/lib/strokedb/nsurl_spec.rb

 
1require File.dirname(__FILE__) + '/spec_helper'
2
3describe "Some", Module do
4
5 before(:each) do
6 @module = Module.new
7 Module.clear_nsurls
8 end
9
10 it "should have nil nsurl by default" do
11 @module.nsurl.should be_nil
12 end
13
14 it "should be able to change nsurl" do
15 @module.nsurl 'http://some.url'
16 @module.nsurl.should == 'http://some.url'
17 end
18
19 it "should be findable by nsurl" do
20 @module.nsurl 'http://some.url'
21 Module.find_by_nsurl(@module.nsurl).should == @module
22 end
23
24 it "should be able to change nsurl to the same value" do
25 @module.nsurl 'http://some.url'
26 lambda { @module.nsurl 'http://some.url' }.should_not raise_error(ArgumentError)
27 end
28
29 it "should not be able to change nsurl to the value already assigned to some module" do
30 @some_module = Module.new
31 @some_module.nsurl 'http://some.url'
32 lambda { @module.nsurl 'http://some.url' }.should raise_error(ArgumentError)
33 end
34
35end
36
37describe Module do
38
39
40 before(:each) do
41 Module.clear_nsurls
42 end
43
44 it "should have empty nsurl by default" do
45 Module.nsurl.should be_empty
46 end
47
48end
49
50describe StrokeDB do
51
52 before(:each) do
53 Module.clear_nsurls
54 end
55
56 it "should have #{STROKEDB_NSURL} nsurl by default" do
57 StrokeDB.nsurl.should == STROKEDB_NSURL
58 end
59
60end
toggle raw diff