storage_room 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. data/History.txt +6 -0
  2. data/README.rdoc +10 -4
  3. data/Rakefile +3 -1
  4. data/TODO +7 -2
  5. data/VERSION +1 -1
  6. data/examples/authentication.rb +5 -3
  7. data/examples/create_entry.rb +8 -5
  8. data/examples/destroy_entry.rb +2 -2
  9. data/examples/get_collections.rb +2 -2
  10. data/examples/import_csv.rb +4 -4
  11. data/examples/search_entries.rb +2 -2
  12. data/examples/update_entry.rb +2 -2
  13. data/lib/console.rb +12 -0
  14. data/lib/storage_room.rb +73 -34
  15. data/lib/storage_room/accessors.rb +190 -0
  16. data/lib/storage_room/array.rb +3 -23
  17. data/lib/storage_room/embedded.rb +1 -1
  18. data/lib/storage_room/embeddeds/field.rb +28 -0
  19. data/lib/storage_room/embeddeds/fields/association_field.rb +17 -0
  20. data/lib/storage_room/embeddeds/fields/associations/many_association_field.rb +9 -0
  21. data/lib/storage_room/embeddeds/fields/associations/one_association_field.rb +9 -0
  22. data/lib/storage_room/embeddeds/fields/atomic/boolean_field.rb +6 -0
  23. data/lib/storage_room/embeddeds/fields/atomic/date_field.rb +6 -0
  24. data/lib/storage_room/embeddeds/fields/atomic/float_field.rb +6 -0
  25. data/lib/storage_room/embeddeds/fields/atomic/integer_field.rb +6 -0
  26. data/lib/storage_room/embeddeds/fields/atomic/string_field.rb +6 -0
  27. data/lib/storage_room/embeddeds/fields/atomic/time_field.rb +6 -0
  28. data/lib/storage_room/embeddeds/fields/atomic_field.rb +15 -0
  29. data/lib/storage_room/embeddeds/fields/compound/attachment_field.rb +6 -0
  30. data/lib/storage_room/embeddeds/fields/compound/file_field.rb +6 -0
  31. data/lib/storage_room/embeddeds/fields/compound/image_field.rb +6 -0
  32. data/lib/storage_room/embeddeds/fields/compound/location_field.rb +6 -0
  33. data/lib/storage_room/embeddeds/fields/compound_field.rb +10 -0
  34. data/lib/storage_room/embeddeds/file.rb +1 -1
  35. data/lib/storage_room/embeddeds/image.rb +6 -0
  36. data/lib/storage_room/embeddeds/location.rb +2 -1
  37. data/lib/storage_room/extensions/const_defined.rb +12 -0
  38. data/lib/storage_room/identity_map.rb +117 -0
  39. data/lib/storage_room/model.rb +19 -23
  40. data/lib/storage_room/models/collection.rb +76 -11
  41. data/lib/storage_room/models/entry.rb +6 -32
  42. data/lib/storage_room/plugins.rb +22 -0
  43. data/lib/storage_room/proxy.rb +49 -0
  44. data/lib/storage_room/{base.rb → resource.rb} +13 -36
  45. data/spec/fixtures/collection.json +0 -16
  46. data/spec/spec_helper.rb +1 -0
  47. data/spec/storage_room/accessors_spec.rb +107 -0
  48. data/spec/storage_room/array_spec.rb +13 -9
  49. data/spec/storage_room/embedded_spec.rb +5 -1
  50. data/spec/storage_room/embeddeds/field_spec.rb +25 -0
  51. data/spec/storage_room/embeddeds/fields/association_field_spec.rb +29 -0
  52. data/spec/storage_room/embeddeds/fields/associations/many_association_field_spec.rb +21 -0
  53. data/spec/storage_room/embeddeds/fields/associations/one_association_field_spec.rb +19 -0
  54. data/spec/storage_room/embeddeds/fields/atomic/boolean_field_spec.rb +5 -0
  55. data/spec/storage_room/embeddeds/fields/atomic/date_field_spec.rb +5 -0
  56. data/spec/storage_room/embeddeds/fields/atomic/float_field_spec.rb +5 -0
  57. data/spec/storage_room/embeddeds/fields/atomic/integer_field_spec.rb +5 -0
  58. data/spec/storage_room/embeddeds/fields/atomic/string_field_spec.rb +5 -0
  59. data/spec/storage_room/embeddeds/fields/atomic/time_field_spec.rb +5 -0
  60. data/spec/storage_room/embeddeds/fields/atomic_field_spec.rb +27 -0
  61. data/spec/storage_room/embeddeds/fields/compound/attachment_field_spec.rb +5 -0
  62. data/spec/storage_room/embeddeds/fields/compound/file_field_spec.rb +5 -0
  63. data/spec/storage_room/embeddeds/fields/compound/image_field_spec.rb +5 -0
  64. data/spec/storage_room/embeddeds/fields/compound/location_field_spec.rb +5 -0
  65. data/spec/storage_room/embeddeds/fields/compound_field_spec.rb +17 -0
  66. data/spec/storage_room/embeddeds/location_spec.rb +13 -1
  67. data/spec/storage_room/identity_map_spec.rb +53 -0
  68. data/spec/storage_room/model_spec.rb +70 -50
  69. data/spec/storage_room/models/collection_spec.rb +57 -14
  70. data/spec/storage_room/models/entry_spec.rb +16 -20
  71. data/spec/storage_room/proxy_spec.rb +58 -0
  72. data/spec/storage_room/resource_spec.rb +98 -0
  73. data/spec/storage_room_spec.rb +45 -9
  74. data/storage_room.gemspec +48 -9
  75. data/tasks/storage_room.rake +3 -0
  76. metadata +49 -10
  77. data/lib/storage_room/attributes.rb +0 -46
  78. data/lib/storage_room/field.rb +0 -8
  79. data/spec/storage_room/attributes_spec.rb +0 -82
  80. data/spec/storage_room/base_spec.rb +0 -118
  81. data/spec/storage_room/field_spec.rb +0 -5
data/storage_room.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{storage_room}
8
- s.version = "0.2.1"
8
+ s.version = "0.3.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Sascha Konietzke"]
12
- s.date = %q{2011-05-23}
12
+ s.date = %q{2011-06-20}
13
13
  s.description = %q{StorageRoom is a CMS system for Mobile Applications (iPhone, Android, BlackBerry, ...). This library gives you an ActiveModel-like interface to your data.}
14
14
  s.email = %q{sascha@thriventures.com}
15
15
  s.extra_rdoc_files = [
@@ -32,33 +32,72 @@ Gem::Specification.new do |s|
32
32
  "examples/import_csv.rb",
33
33
  "examples/search_entries.rb",
34
34
  "examples/update_entry.rb",
35
+ "lib/console.rb",
35
36
  "lib/storage_room.rb",
37
+ "lib/storage_room/accessors.rb",
36
38
  "lib/storage_room/array.rb",
37
- "lib/storage_room/attributes.rb",
38
- "lib/storage_room/base.rb",
39
39
  "lib/storage_room/embedded.rb",
40
+ "lib/storage_room/embeddeds/field.rb",
41
+ "lib/storage_room/embeddeds/fields/association_field.rb",
42
+ "lib/storage_room/embeddeds/fields/associations/many_association_field.rb",
43
+ "lib/storage_room/embeddeds/fields/associations/one_association_field.rb",
44
+ "lib/storage_room/embeddeds/fields/atomic/boolean_field.rb",
45
+ "lib/storage_room/embeddeds/fields/atomic/date_field.rb",
46
+ "lib/storage_room/embeddeds/fields/atomic/float_field.rb",
47
+ "lib/storage_room/embeddeds/fields/atomic/integer_field.rb",
48
+ "lib/storage_room/embeddeds/fields/atomic/string_field.rb",
49
+ "lib/storage_room/embeddeds/fields/atomic/time_field.rb",
50
+ "lib/storage_room/embeddeds/fields/atomic_field.rb",
51
+ "lib/storage_room/embeddeds/fields/compound/attachment_field.rb",
52
+ "lib/storage_room/embeddeds/fields/compound/file_field.rb",
53
+ "lib/storage_room/embeddeds/fields/compound/image_field.rb",
54
+ "lib/storage_room/embeddeds/fields/compound/location_field.rb",
55
+ "lib/storage_room/embeddeds/fields/compound_field.rb",
40
56
  "lib/storage_room/embeddeds/file.rb",
57
+ "lib/storage_room/embeddeds/image.rb",
41
58
  "lib/storage_room/embeddeds/location.rb",
42
- "lib/storage_room/field.rb",
59
+ "lib/storage_room/extensions/const_defined.rb",
60
+ "lib/storage_room/identity_map.rb",
43
61
  "lib/storage_room/model.rb",
44
62
  "lib/storage_room/models/collection.rb",
45
63
  "lib/storage_room/models/entry.rb",
64
+ "lib/storage_room/plugins.rb",
65
+ "lib/storage_room/proxy.rb",
66
+ "lib/storage_room/resource.rb",
46
67
  "spec/fixtures/collection.json",
47
68
  "spec/fixtures/collections.json",
48
69
  "spec/fixtures/validation_error.json",
49
70
  "spec/spec_helper.rb",
71
+ "spec/storage_room/accessors_spec.rb",
50
72
  "spec/storage_room/array_spec.rb",
51
- "spec/storage_room/attributes_spec.rb",
52
- "spec/storage_room/base_spec.rb",
53
73
  "spec/storage_room/embedded_spec.rb",
74
+ "spec/storage_room/embeddeds/field_spec.rb",
75
+ "spec/storage_room/embeddeds/fields/association_field_spec.rb",
76
+ "spec/storage_room/embeddeds/fields/associations/many_association_field_spec.rb",
77
+ "spec/storage_room/embeddeds/fields/associations/one_association_field_spec.rb",
78
+ "spec/storage_room/embeddeds/fields/atomic/boolean_field_spec.rb",
79
+ "spec/storage_room/embeddeds/fields/atomic/date_field_spec.rb",
80
+ "spec/storage_room/embeddeds/fields/atomic/float_field_spec.rb",
81
+ "spec/storage_room/embeddeds/fields/atomic/integer_field_spec.rb",
82
+ "spec/storage_room/embeddeds/fields/atomic/string_field_spec.rb",
83
+ "spec/storage_room/embeddeds/fields/atomic/time_field_spec.rb",
84
+ "spec/storage_room/embeddeds/fields/atomic_field_spec.rb",
85
+ "spec/storage_room/embeddeds/fields/compound/attachment_field_spec.rb",
86
+ "spec/storage_room/embeddeds/fields/compound/file_field_spec.rb",
87
+ "spec/storage_room/embeddeds/fields/compound/image_field_spec.rb",
88
+ "spec/storage_room/embeddeds/fields/compound/location_field_spec.rb",
89
+ "spec/storage_room/embeddeds/fields/compound_field_spec.rb",
54
90
  "spec/storage_room/embeddeds/file_spec.rb",
55
91
  "spec/storage_room/embeddeds/location_spec.rb",
56
- "spec/storage_room/field_spec.rb",
92
+ "spec/storage_room/identity_map_spec.rb",
57
93
  "spec/storage_room/model_spec.rb",
58
94
  "spec/storage_room/models/collection_spec.rb",
59
95
  "spec/storage_room/models/entry_spec.rb",
96
+ "spec/storage_room/proxy_spec.rb",
97
+ "spec/storage_room/resource_spec.rb",
60
98
  "spec/storage_room_spec.rb",
61
- "storage_room.gemspec"
99
+ "storage_room.gemspec",
100
+ "tasks/storage_room.rake"
62
101
  ]
63
102
  s.homepage = %q{http://github.com/thriventures/storage_room_gem}
64
103
  s.require_paths = ["lib"]
@@ -0,0 +1,3 @@
1
+ task :console2 do
2
+ sh("irb -I lib -r console.rb")
3
+ end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 2
8
- - 1
9
- version: 0.2.1
7
+ - 3
8
+ - 0
9
+ version: 0.3.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Sascha Konietzke
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-05-23 00:00:00 -03:00
17
+ date: 2011-06-20 00:00:00 -03:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -100,33 +100,72 @@ files:
100
100
  - examples/import_csv.rb
101
101
  - examples/search_entries.rb
102
102
  - examples/update_entry.rb
103
+ - lib/console.rb
103
104
  - lib/storage_room.rb
105
+ - lib/storage_room/accessors.rb
104
106
  - lib/storage_room/array.rb
105
- - lib/storage_room/attributes.rb
106
- - lib/storage_room/base.rb
107
107
  - lib/storage_room/embedded.rb
108
+ - lib/storage_room/embeddeds/field.rb
109
+ - lib/storage_room/embeddeds/fields/association_field.rb
110
+ - lib/storage_room/embeddeds/fields/associations/many_association_field.rb
111
+ - lib/storage_room/embeddeds/fields/associations/one_association_field.rb
112
+ - lib/storage_room/embeddeds/fields/atomic/boolean_field.rb
113
+ - lib/storage_room/embeddeds/fields/atomic/date_field.rb
114
+ - lib/storage_room/embeddeds/fields/atomic/float_field.rb
115
+ - lib/storage_room/embeddeds/fields/atomic/integer_field.rb
116
+ - lib/storage_room/embeddeds/fields/atomic/string_field.rb
117
+ - lib/storage_room/embeddeds/fields/atomic/time_field.rb
118
+ - lib/storage_room/embeddeds/fields/atomic_field.rb
119
+ - lib/storage_room/embeddeds/fields/compound/attachment_field.rb
120
+ - lib/storage_room/embeddeds/fields/compound/file_field.rb
121
+ - lib/storage_room/embeddeds/fields/compound/image_field.rb
122
+ - lib/storage_room/embeddeds/fields/compound/location_field.rb
123
+ - lib/storage_room/embeddeds/fields/compound_field.rb
108
124
  - lib/storage_room/embeddeds/file.rb
125
+ - lib/storage_room/embeddeds/image.rb
109
126
  - lib/storage_room/embeddeds/location.rb
110
- - lib/storage_room/field.rb
127
+ - lib/storage_room/extensions/const_defined.rb
128
+ - lib/storage_room/identity_map.rb
111
129
  - lib/storage_room/model.rb
112
130
  - lib/storage_room/models/collection.rb
113
131
  - lib/storage_room/models/entry.rb
132
+ - lib/storage_room/plugins.rb
133
+ - lib/storage_room/proxy.rb
134
+ - lib/storage_room/resource.rb
114
135
  - spec/fixtures/collection.json
115
136
  - spec/fixtures/collections.json
116
137
  - spec/fixtures/validation_error.json
117
138
  - spec/spec_helper.rb
139
+ - spec/storage_room/accessors_spec.rb
118
140
  - spec/storage_room/array_spec.rb
119
- - spec/storage_room/attributes_spec.rb
120
- - spec/storage_room/base_spec.rb
121
141
  - spec/storage_room/embedded_spec.rb
142
+ - spec/storage_room/embeddeds/field_spec.rb
143
+ - spec/storage_room/embeddeds/fields/association_field_spec.rb
144
+ - spec/storage_room/embeddeds/fields/associations/many_association_field_spec.rb
145
+ - spec/storage_room/embeddeds/fields/associations/one_association_field_spec.rb
146
+ - spec/storage_room/embeddeds/fields/atomic/boolean_field_spec.rb
147
+ - spec/storage_room/embeddeds/fields/atomic/date_field_spec.rb
148
+ - spec/storage_room/embeddeds/fields/atomic/float_field_spec.rb
149
+ - spec/storage_room/embeddeds/fields/atomic/integer_field_spec.rb
150
+ - spec/storage_room/embeddeds/fields/atomic/string_field_spec.rb
151
+ - spec/storage_room/embeddeds/fields/atomic/time_field_spec.rb
152
+ - spec/storage_room/embeddeds/fields/atomic_field_spec.rb
153
+ - spec/storage_room/embeddeds/fields/compound/attachment_field_spec.rb
154
+ - spec/storage_room/embeddeds/fields/compound/file_field_spec.rb
155
+ - spec/storage_room/embeddeds/fields/compound/image_field_spec.rb
156
+ - spec/storage_room/embeddeds/fields/compound/location_field_spec.rb
157
+ - spec/storage_room/embeddeds/fields/compound_field_spec.rb
122
158
  - spec/storage_room/embeddeds/file_spec.rb
123
159
  - spec/storage_room/embeddeds/location_spec.rb
124
- - spec/storage_room/field_spec.rb
160
+ - spec/storage_room/identity_map_spec.rb
125
161
  - spec/storage_room/model_spec.rb
126
162
  - spec/storage_room/models/collection_spec.rb
127
163
  - spec/storage_room/models/entry_spec.rb
164
+ - spec/storage_room/proxy_spec.rb
165
+ - spec/storage_room/resource_spec.rb
128
166
  - spec/storage_room_spec.rb
129
167
  - storage_room.gemspec
168
+ - tasks/storage_room.rake
130
169
  has_rdoc: true
131
170
  homepage: http://github.com/thriventures/storage_room_gem
132
171
  licenses: []
@@ -1,46 +0,0 @@
1
- module StorageRoom
2
-
3
- # Module that contains attributes methods shared between StorageRoom::Base and StorageRoom::Embedded
4
- module Attributes
5
- # Optionally pass attributes to set up the object
6
- def initialize(attributes={})
7
- self.attributes = attributes
8
- end
9
-
10
- # Set the attributes of an object with a hash from the API
11
- def set_from_api(attributes)
12
- reset!
13
-
14
- self.attributes = attributes
15
- end
16
-
17
- # Shortcut to get an attribute.
18
- def [](name)
19
- self.attributes[name]
20
- end
21
-
22
- # Shortcut to set an attribute
23
- def []=(name, value)
24
- self.attributes[name] = value
25
- end
26
-
27
- # Return all of the objects attributes
28
- def attributes
29
- @attributes ||= Hash.new.with_indifferent_access
30
- end
31
-
32
- # Set the objects attributes with a hash. Only attributes passed in the hash are changed, existing ones are not overridden.
33
- def attributes=(hash = {})
34
- hash.each do |k, v|
35
- self.attributes[k] = v
36
- end
37
- end
38
-
39
- # Reset an object to its initial state with all attributes unset
40
- def reset!
41
- @attributes = Hash.new.with_indifferent_access
42
- end
43
-
44
- end
45
-
46
- end
@@ -1,8 +0,0 @@
1
- module StorageRoom
2
- # A field that is part of a collection
3
- class Field
4
-
5
-
6
-
7
- end
8
- end
@@ -1,82 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
-
3
- module StorageRoom
4
- class TestAttributes
5
- include Attributes
6
- end
7
- end
8
-
9
- describe StorageRoom::TestAttributes do
10
-
11
- context "Instance" do
12
- before(:each) do
13
- @test = StorageRoom::TestAttributes.new(:test => 1, :@attr => 2)
14
- end
15
-
16
- describe "#initialize" do
17
- it "should set attributes" do
18
- @test[:test].should == 1
19
- @test[:@attr].should == 2
20
- end
21
- end
22
-
23
- describe "#set_from_api" do
24
- before(:each) do
25
- @test.set_from_api(:test2 => 3)
26
- end
27
-
28
- it "should reset attributes" do
29
- @test[:test].should be_nil
30
- @test[:@attr].should be_nil
31
- end
32
-
33
- it "should set new attributes" do
34
- @test[:test2].should == 3
35
- end
36
- end
37
-
38
- describe "#[]" do
39
- it "should get attribute" do
40
- @test[:test].should == 1
41
- @test[:@attr].should == 2
42
- end
43
- end
44
-
45
- describe "#[]=" do
46
- it "should set attribute" do
47
- @test[:test3] = 5
48
- @test[:test3].should == 5
49
- end
50
- end
51
-
52
- describe "#attributes" do
53
- it "should return existing attributes" do
54
- @test.attributes[:test].should == 1
55
- @test.attributes['test'].should == 1
56
- @test.attributes[:@attr].should == 2
57
- @test.attributes['@attr'].should == 2
58
- end
59
- end
60
-
61
- describe "#attributes=" do
62
- before(:each) do
63
- @test.attributes = {:new => 8, :test => 0}
64
- end
65
-
66
- it "should set attributes" do
67
- @test.attributes[:new].should == 8
68
- @test.attributes[:test].should == 0
69
- @test.attributes[:@attr].should == 2
70
- end
71
- end
72
-
73
- describe "#reset!" do
74
- it "should reset" do
75
- @test.reset!
76
- @test.attributes.should == {}
77
- end
78
- end
79
-
80
- end
81
-
82
- end
@@ -1,118 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
-
3
- describe StorageRoom::Base do
4
- context "Class" do
5
- context "Configuration" do
6
- describe "Headers" do
7
- it "should have User-Agent" do
8
- StorageRoom::Base.headers['User-Agent'].should be_present
9
- end
10
-
11
- it "should set Content Type" do
12
- StorageRoom::Base.headers['Content-Type'].should == 'application/json'
13
- end
14
-
15
- it "should set Accept" do
16
- StorageRoom::Base.headers['Accept'].should == 'application/json'
17
- end
18
- end
19
-
20
- it "should not have base_uri" do
21
- StorageRoom::Base.base_uri.should be_present
22
- end
23
-
24
- it "should have format" do
25
- StorageRoom::Base.default_options[:format].should == :json
26
- end
27
- end
28
-
29
- context "Methods" do
30
- describe "#load" do
31
- it "should load" do
32
- stub_request(:get, stub_url('/collections')).to_return(:body => fixture_file('collections.json'), :status => 200)
33
-
34
- array = StorageRoom::Array.load('/collections')
35
- array[:@type].should == 'Array'
36
- end
37
-
38
- it "should raise on error" do
39
- stub_request(:get, stub_url('/collections')).to_return(:status => 500)
40
-
41
- lambda {
42
- StorageRoom::Array.load('/collections')
43
- }.should raise_error(StorageRoom::RequestFailed)
44
-
45
- end
46
- end
47
-
48
- describe "#handle_critical_response_errors" do
49
- it "should handle no error" do
50
- httparty = mock_httparty(200)
51
- StorageRoom::Base.handle_critical_response_errors(httparty).should be_true
52
- end
53
-
54
- it "should raise error" do
55
- lambda {
56
- StorageRoom::Base.handle_critical_response_errors(mock_httparty(500))
57
- }.should raise_error(StorageRoom::RequestFailed)
58
- end
59
- end
60
-
61
- describe "#create_from_api" do
62
- it "should create array" do
63
- hash = {'@type' => 'Array', 'resources' => []}
64
- result = StorageRoom::Base.create_from_api(hash)
65
- result.should be_an_instance_of(StorageRoom::Array)
66
- result[:@type].should == 'Array'
67
- end
68
-
69
- it "should create collection" do
70
- hash = {'@type' => 'Collection', 'name' => 'Guidebook'}
71
- result = StorageRoom::Base.create_from_api(hash)
72
- result.should be_an_instance_of(StorageRoom::Collection)
73
- result[:name].should == 'Guidebook'
74
- end
75
-
76
- it "should create entry" do
77
- hash = {'@type' => 'Guidebook', 'title' => 'Something'}
78
- result = StorageRoom::Base.create_from_api(hash)
79
- result.should be_an_instance_of(Guidebook)
80
- result[:title].should == 'Something'
81
- end
82
- end
83
-
84
- describe "#meta_data?" do
85
- it "should detect" do
86
- StorageRoom::Base.meta_data?('@test').should be_true
87
- StorageRoom::Base.meta_data?('test').should be_false
88
- end
89
- end
90
-
91
- end
92
- end
93
-
94
- context "Instance" do
95
- before(:each) do
96
- @base = StorageRoom::Base.new(:test => 1, :@attr => 2)
97
- end
98
-
99
- describe "#url" do
100
- it "should return url" do
101
- @base.url.should be_nil
102
- @base[:@url] = 'url'
103
- @base.url.should == 'url'
104
- end
105
- end
106
-
107
- describe "#version" do
108
- it "should return version" do
109
- @base.version.should be_nil
110
- @base[:@version] = 1
111
- @base.version.should == 1
112
- end
113
- end
114
-
115
-
116
- end
117
-
118
- end