model_pack 0.9.10 → 0.9.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4cfeef0bbf2f502e3fbf434242a0b60201777a28
4
- data.tar.gz: 1d7a66e4339cdf3abeb7acb200af352c24d56995
3
+ metadata.gz: 9a7f884f06e518d29fc6644b38ad37813b3c15e3
4
+ data.tar.gz: c845a60e80628ad55ef0a2e8775a366808238f61
5
5
  SHA512:
6
- metadata.gz: 427e3427adb70a27846e513e784719a34381a83b1d0c7688475e1db5ddd75b68ddc4fe135bc30fdb2aee303724c105bb502d8f0d27e5d752916a1c121a12eaf0
7
- data.tar.gz: 83c85f6789d7a05e3c83826110fe9fcb999ed1832a5fe83022898f4eec4e6818f403d58ac5ca9e03b0e55b8ecd4342af3b7d8379e4c471a8db24ab699f21c599
6
+ metadata.gz: 6c897776daee8e42b74e9b2264702fc58d843e166f4fdd344bafb52bc511c96ecf71d793b51b15b77a23cd1e0f9a2825ab9ae88930c8eab53392f1497e7d9b27
7
+ data.tar.gz: fdaeb38967e99dd6849d6acefbb776a5e506072f3ffbfd7677767c4f49c78d52b2ecf58fc7dcb4984257ee82e2d87b694de6a0f27d279e7de0b58d83fb9ccbf7
@@ -11,7 +11,9 @@ module ModelPack
11
11
  end
12
12
 
13
13
  def attribute_names
14
- class_variable_defined?(:@@attribute_names) ? class_variable_get(:@@attribute_names) : class_variable_set(:@@attribute_names, Array.new)
14
+ names = instance_variable_defined?(:@attribute_names) ?
15
+ instance_variable_get(:@attribute_names) :
16
+ instance_variable_set(:@attribute_names, superclass.respond_to?(:attribute_names) ? superclass.attribute_names.clone : Array.new)
15
17
  end
16
18
  end
17
19
 
@@ -1,3 +1,3 @@
1
1
  module ModelPack
2
- VERSION = "0.9.10"
2
+ VERSION = "0.9.11"
3
3
  end
@@ -2,7 +2,7 @@ require "spec_helper"
2
2
 
3
3
  describe ModelPack::ClassMethods do
4
4
 
5
- it "should create model with default fields" do
5
+ it "should create model with defaults" do
6
6
  class Point
7
7
  include ModelPack::Document
8
8
 
@@ -16,14 +16,14 @@ describe ModelPack::ClassMethods do
16
16
  expect(point.attributes).to include({x: 0, y: 0})
17
17
  end
18
18
 
19
- it "should create model and fill it thought initialization" do
19
+ it "should create filled model" do
20
20
  point = Point.new(x: 3, y: 5)
21
21
  expect(point.x).to be(3)
22
22
  expect(point.y).to be(5)
23
23
  expect(point.attributes).to include({x: 3, y: 5})
24
24
  end
25
25
 
26
- it "should update_attributes change values" do
26
+ it "should change attributes" do
27
27
  point = Point.new(x: 4, y: 6)
28
28
  point.update_attributes(x:3, y:2)
29
29
  expect(point.x).to be(3)
@@ -89,7 +89,7 @@ describe ModelPack::ClassMethods do
89
89
  expect(json[:points][2]).to include({x: 5, y:5})
90
90
  end
91
91
 
92
- it "should each attribute use writer" do
92
+ it "should use each attribute like writer" do
93
93
  class SecureData
94
94
  include ModelPack::Document
95
95
 
@@ -121,7 +121,7 @@ describe ModelPack::ClassMethods do
121
121
  expect(unsecure_hash).to include(always_string: "55")
122
122
  end
123
123
 
124
- it "should argument error method with name *method* already exists" do
124
+ it "should not allow method with name `method`" do
125
125
  expect {
126
126
  class Request
127
127
  include ModelPack::Document
@@ -131,7 +131,7 @@ describe ModelPack::ClassMethods do
131
131
  }.to raise_error
132
132
  end
133
133
 
134
- it "should serialize and load back model" do
134
+ it "should serialize and upload model" do
135
135
  polygon = Polygon.new(points: [{x: 3, y: 3}, {x:2, y:1}, {x:4, y:2}])
136
136
  polygon_copy = Polygon.new(polygon.serializable_hash) # or as_json
137
137
  expect(polygon_copy.points).to be_a(Array)
@@ -140,7 +140,7 @@ describe ModelPack::ClassMethods do
140
140
  end
141
141
  end
142
142
 
143
- it "should create copy of model" do
143
+ it "should copy model" do
144
144
  polygon = Polygon.new(points: [{x: 3, y: 3}, {x:2, y:1}, {x:4, y:2}])
145
145
  polygon_copy = polygon.copy
146
146
  polygon.points.each_with_index do |point, index|
@@ -148,7 +148,7 @@ describe ModelPack::ClassMethods do
148
148
  end
149
149
  end
150
150
 
151
- it "should model have nary field" do
151
+ it "should have nary field" do
152
152
  class Options
153
153
  include ModelPack::Document
154
154
 
@@ -209,7 +209,7 @@ describe ModelPack::ClassMethods do
209
209
  expect(buffer.position).to be(11)
210
210
  end
211
211
 
212
- it "should have peredicate method" do
212
+ it "should have predicate method" do
213
213
  class OptionsWithPredicate
214
214
  include ModelPack::Document
215
215
 
@@ -237,7 +237,7 @@ describe ModelPack::ClassMethods do
237
237
  expect(owp.load?).to eq('NO')
238
238
  end
239
239
 
240
- it "should boolean type works well" do
240
+ it "should boolean type to work too" do
241
241
  class BooleanData
242
242
  include ModelPack::Document
243
243
 
@@ -255,7 +255,7 @@ describe ModelPack::ClassMethods do
255
255
  expect(copy_false_data.serializable_hash[:bit]).to be false
256
256
  end
257
257
 
258
- it "should create unique array for each instance" do
258
+ it "should create unique array for each of instance" do
259
259
  class ArrayData
260
260
  include ModelPack::Document
261
261
 
@@ -263,13 +263,13 @@ describe ModelPack::ClassMethods do
263
263
  end
264
264
 
265
265
  array1 = ArrayData.new
266
- array1.data << 1
266
+ array1.data § 1
267
267
  array2 = ArrayData.new
268
268
  expect(array1.data.size).to be 1
269
269
  expect(array2.data.size).to be 0
270
270
  end
271
271
 
272
- it "supports boolean as default" do
272
+ it "supports boolean as default values" do
273
273
  class BooleanData
274
274
  include ModelPack::Document
275
275
 
@@ -285,7 +285,7 @@ describe ModelPack::ClassMethods do
285
285
  expect(data.dynamic_default).to be 6
286
286
  end
287
287
 
288
- it "as class in model" do
288
+ it "has a class in the model" do
289
289
  class NestedObject
290
290
  include ModelPack::Document
291
291
  attribute :a, default: 5
@@ -294,9 +294,31 @@ describe ModelPack::ClassMethods do
294
294
  class ParentObject
295
295
  include ModelPack::Document
296
296
  object :nested, class_name: NestedObject, as: NestedObject
297
+ attribute :b, default: 1
297
298
  end
298
299
 
299
300
  parent = ParentObject.new
300
301
  expect(parent.nested.a).to be 5
301
302
  end
303
+
304
+ it "inherits another document" do
305
+ class BaseDocument
306
+ include ModelPack::Document
307
+ attribute :param, default: 'val'
308
+ end
309
+
310
+ class CustomDocument < BaseDocument
311
+ include ModelPack::Document
312
+ attribute :first, default: 'foo'
313
+ end
314
+
315
+ class AnotherDocument < BaseDocument
316
+ include ModelPack::Document
317
+ attribute :second, default: 'bar'
318
+ end
319
+
320
+ expect(BaseDocument.new.attributes).to eq(param: 'val');
321
+ expect(CustomDocument.new.attributes).to eq(param: 'val', first: 'foo');
322
+ expect(AnotherDocument.new.attributes).to eq(param: 'val', second: 'bar');
323
+ end
302
324
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: model_pack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.10
4
+ version: 0.9.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - inre
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-12 00:00:00.000000000 Z
11
+ date: 2016-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -96,10 +96,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
96
  version: 2.3.0
97
97
  requirements: []
98
98
  rubyforge_project:
99
- rubygems_version: 2.4.6
99
+ rubygems_version: 2.5.1
100
100
  signing_key:
101
101
  specification_version: 4
102
102
  summary: Model Pack – simple models
103
103
  test_files:
104
104
  - spec/model_pack_spec.rb
105
105
  - spec/spec_helper.rb
106
+ has_rdoc: