storage_room 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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