embedson 1.0.4 → 1.1.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.
- checksums.yaml +5 -13
- data/CHANGELOG.md +27 -0
- data/README.md +9 -6
- data/TODO.md +0 -1
- data/embedson.gemspec +5 -5
- data/lib/embedson/model.rb +1 -0
- data/lib/embedson/model/embeds_builder.rb +3 -2
- data/lib/embedson/model/method_builder.rb +1 -1
- data/lib/embedson/version.rb +1 -1
- data/spec/embedson/model/embedded_builder_spec.rb +30 -16
- data/spec/embedson/model/embeds_builder_spec.rb +47 -0
- data/spec/embedson/model_spec.rb +6 -68
- metadata +35 -32
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
ZDg1Njk0ODlmNGI3OTY0OTZjMmFiMDY0YzM3NjIxYTkyYTIxOGNlMA==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 50c8f25d72bfcd91fc902d3da04d1d251f02a9e5
|
4
|
+
data.tar.gz: 9053217978e0523ced6274438945882bc474b378
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
NWUwZDExOTc1YzZhMWY0ODgzOTlmMDYwYTQyNGQ3Yjk5ODk3Yzg1OGVhMDIx
|
11
|
-
ZDdlMjkzYTRhZDcxNDEyNzJiZmQ2MzBlNGRmNDZkN2QzNWM1YzE=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
Y2JmODUxMDljZTc4MDhkNWJiNDI2MmU1NTUyNjkyNzU3Nzc4NTE4Yzc2ODFm
|
14
|
-
MTU2NjBkZmExOGI4MmI1YjU5MjBhZDVlZWNmOTI3YmVlMTlkNzdiYzEwMzk0
|
15
|
-
Yzg4ODUxYzY0MWM4YzA4M2ZmZTkwYWZiNmZiMmY3NzM3MmY2ODE=
|
6
|
+
metadata.gz: 9069a37c1e5a4ae3de6c787af44e5684ffa6d869d1e908923841be3304c685b5a9ff2d77c7ff476fc92ed2d5b074accaedb1b9b4e2562bdca3d06c621170195d
|
7
|
+
data.tar.gz: 3bac214b304bb0155b655dc39795cf0f6882ff429b8efe2cedeac6a0be02d646021a71c3d46707a75802a33a24e7b928dee943e2b696b3db88a23143935cc985
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# Embedson change log
|
2
|
+
|
3
|
+
## 1.1.1 / Unreleased
|
4
|
+
|
5
|
+
* [Added]
|
6
|
+
|
7
|
+
* [Deprecated]
|
8
|
+
|
9
|
+
* [Removed]
|
10
|
+
|
11
|
+
* [Fixed]
|
12
|
+
|
13
|
+
## 1.1.0 / 2015-03-17
|
14
|
+
|
15
|
+
* [Added] support for inheritance in embedded classes
|
16
|
+
|
17
|
+
* [Fixed] fix assignment to instance variable in hash_method
|
18
|
+
|
19
|
+
## 1.0.4 / 2014-11-19
|
20
|
+
|
21
|
+
* [Added] support for :hash_method option.
|
22
|
+
|
23
|
+
## 1.0.3 / 2014-11-16
|
24
|
+
|
25
|
+
* [Added] support for multiple embedded_in
|
26
|
+
|
27
|
+
* [Fixed] sending embedded class to embedding object when saving
|
data/README.md
CHANGED
@@ -6,14 +6,14 @@
|
|
6
6
|
|
7
7
|
# Embedson
|
8
8
|
|
9
|
-
|
9
|
+
Main goal is to implement Mongoids embedded document functionality in ActiveRecord.
|
10
|
+
|
11
|
+
Hash representation of class defined by specified method (default `to_h`) is saved in json/hstore column.
|
10
12
|
|
11
|
-
Adds functionality of `
|
13
|
+
Adds functionality of `embeds_one` to ActiveRecord.
|
12
14
|
|
13
|
-
|
14
|
-
- initialized with Hash.
|
15
|
+
Adds functionality of `embedded_in` to any class initialized with Hash.
|
15
16
|
|
16
|
-
Result of `to_h` is saved json/hstore column.
|
17
17
|
|
18
18
|
|
19
19
|
## Installation
|
@@ -50,7 +50,10 @@ Example with [Virtus](https://github.com/solnic/virtus):
|
|
50
50
|
|
51
51
|
class Test < ActiveRecord::Base
|
52
52
|
|
53
|
-
embeds_one :virt, class_name: Virt,
|
53
|
+
embeds_one :virt, class_name: Virt,
|
54
|
+
column_name: :data,
|
55
|
+
inverse_of: :parent,
|
56
|
+
hash_method: :to_h # default option
|
54
57
|
end
|
55
58
|
|
56
59
|
class Virt
|
data/TODO.md
CHANGED
data/embedson.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["sufleR"]
|
10
10
|
spec.email = ["szymon.fracczak@netguru.co"]
|
11
11
|
spec.summary = %q{Embedded model for AR with postgresql}
|
12
|
-
spec.description = %q{Save
|
12
|
+
spec.description = %q{Save hash representation of class in json column as embedded model.}
|
13
13
|
spec.homepage = "https://github.com/sufleR/embedson"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
@@ -21,10 +21,10 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.required_ruby_version = ">= 1.9.3"
|
22
22
|
|
23
23
|
spec.add_dependency "activerecord", ">= 4"
|
24
|
-
spec.add_development_dependency "bundler", "~> 1.
|
25
|
-
spec.add_development_dependency "rake", "~> 10
|
26
|
-
spec.add_development_dependency "rspec", "~> 3.
|
27
|
-
spec.add_development_dependency "pg", "~> 0.
|
24
|
+
spec.add_development_dependency "bundler", "~> 1.8"
|
25
|
+
spec.add_development_dependency "rake", "~> 10"
|
26
|
+
spec.add_development_dependency "rspec", "~> 3.2"
|
27
|
+
spec.add_development_dependency "pg", "~> 0.18"
|
28
28
|
spec.add_development_dependency "pry", "~> 0.10"
|
29
29
|
spec.add_development_dependency "with_model", "~> 1.2"
|
30
30
|
spec.add_development_dependency "codeclimate-test-reporter", "~> 0.4"
|
data/lib/embedson/model.rb
CHANGED
@@ -16,6 +16,7 @@ module Embedson
|
|
16
16
|
# :class_name - Name of class which will be ebedded.
|
17
17
|
# :column_name - Name of column where Hash representation will be stored.
|
18
18
|
# :inverse_of - Name of field where related class will store current object.
|
19
|
+
# :hash_method - Method name which returns hash representation os saved object. Default :to_h
|
19
20
|
#
|
20
21
|
# Examples
|
21
22
|
#
|
@@ -26,7 +26,7 @@ module Embedson
|
|
26
26
|
send("#{builder.field_name}_send_to_related", arg)
|
27
27
|
|
28
28
|
instance_variable_set(builder.instance_var_name, arg)
|
29
|
-
val = arg.nil? ? arg : arg.send(builder.hash_method).stringify_keys
|
29
|
+
val = arg.nil? ? arg : arg.send(builder.hash_method).stringify_keys.merge('_type' => builder.klass.name)
|
30
30
|
unless val == read_attribute(builder.column_name)
|
31
31
|
write_attribute(builder.column_name, val)
|
32
32
|
end
|
@@ -44,7 +44,8 @@ module Embedson
|
|
44
44
|
|
45
45
|
def related_model(builder)
|
46
46
|
klass.send :define_method, "#{builder.field_name}_related_model" do
|
47
|
-
|
47
|
+
attribute = read_attribute(builder.column_name)
|
48
|
+
attribute.fetch('_type', builder.related_klass_name).constantize.new(attribute)
|
48
49
|
end
|
49
50
|
klass.send :private, "#{builder.field_name}_related_model"
|
50
51
|
end
|
data/lib/embedson/version.rb
CHANGED
@@ -64,7 +64,9 @@ describe Embedson::Model::EmbeddedBuilder do
|
|
64
64
|
it 'changes parents son_col to son.to_h' do
|
65
65
|
expect{
|
66
66
|
son.send(:parent_send_to_related, son)
|
67
|
-
}.to change { parent.son_col }
|
67
|
+
}.to change { parent.son_col }
|
68
|
+
.from('different' => 'true')
|
69
|
+
.to(son.to_h.stringify_keys.merge('_type' => 'Parent'))
|
68
70
|
end
|
69
71
|
|
70
72
|
end
|
@@ -72,7 +74,7 @@ describe Embedson::Model::EmbeddedBuilder do
|
|
72
74
|
context 'and to_h is equal parents embeded.to_h' do
|
73
75
|
before do
|
74
76
|
son
|
75
|
-
parent.send(:write_attribute, :son_col, { something: { to: 'write' } } )
|
77
|
+
parent.send(:write_attribute, :son_col, { something: { to: 'write' }, _type: 'Parent' } )
|
76
78
|
parent.save!
|
77
79
|
end
|
78
80
|
|
@@ -109,7 +111,9 @@ describe Embedson::Model::EmbeddedBuilder do
|
|
109
111
|
it 'changes parents emb_col to son.to_h' do
|
110
112
|
expect{
|
111
113
|
son.send(:parenta_send_to_related, son)
|
112
|
-
}.to change { parent.emb_col }
|
114
|
+
}.to change { parent.emb_col }
|
115
|
+
.from('different' => 'true')
|
116
|
+
.to(son.to_h.stringify_keys.merge('_type' => 'Parent'))
|
113
117
|
end
|
114
118
|
|
115
119
|
end
|
@@ -210,9 +214,9 @@ describe Embedson::Model::EmbeddedBuilder do
|
|
210
214
|
|
211
215
|
it 'changes column values' do
|
212
216
|
son.save
|
213
|
-
expect(parent.son_col).to eq('something' => different)
|
217
|
+
expect(parent.son_col).to eq('something' => different, '_type' => 'Parent')
|
214
218
|
expect(parent.emb_col).to be_nil
|
215
|
-
expect(parent_two.son_col).to eq('something' => different)
|
219
|
+
expect(parent_two.son_col).to eq('something' => different, '_type' => 'ParentTwo')
|
216
220
|
end
|
217
221
|
|
218
222
|
context 'and son is changed' do
|
@@ -222,9 +226,9 @@ describe Embedson::Model::EmbeddedBuilder do
|
|
222
226
|
son.change = 'new value'
|
223
227
|
son.save
|
224
228
|
}.to change { parent.reload.son_col }
|
225
|
-
|
226
|
-
|
227
|
-
expect(parent_two.son_col).to eq('something' => different, 'change' => 'new value')
|
229
|
+
.from('something' => different, '_type' => 'Parent')
|
230
|
+
.to('something' => different, 'change' => 'new value', '_type' => 'Parent')
|
231
|
+
expect(parent_two.son_col).to eq('something' => different, 'change' => 'new value', '_type' => 'ParentTwo')
|
228
232
|
end
|
229
233
|
end
|
230
234
|
end
|
@@ -257,7 +261,7 @@ describe Embedson::Model::EmbeddedBuilder do
|
|
257
261
|
|
258
262
|
it 'changes column values' do
|
259
263
|
expect(son.save).to be_truthy
|
260
|
-
expect(parent.son_col).to eq('something' => different)
|
264
|
+
expect(parent.son_col).to eq('something' => different, '_type' => 'Parent')
|
261
265
|
expect(parent.emb_col).to be_nil
|
262
266
|
end
|
263
267
|
end
|
@@ -331,9 +335,9 @@ describe Embedson::Model::EmbeddedBuilder do
|
|
331
335
|
it 'changes column values' do
|
332
336
|
expect(son.save!).to be_truthy
|
333
337
|
parent.reload
|
334
|
-
expect(parent.son_col).to eq('something' => different)
|
338
|
+
expect(parent.son_col).to eq('something' => different, '_type' => 'Parent')
|
335
339
|
expect(parent.emb_col).to be_nil
|
336
|
-
expect(parent_two.reload.son_col).to eq('something' => different)
|
340
|
+
expect(parent_two.reload.son_col).to eq('something' => different, '_type' => 'ParentTwo')
|
337
341
|
end
|
338
342
|
|
339
343
|
context 'and son is changed' do
|
@@ -343,9 +347,9 @@ describe Embedson::Model::EmbeddedBuilder do
|
|
343
347
|
son.change = 'new value'
|
344
348
|
son.save!
|
345
349
|
}.to change { parent.reload.son_col }
|
346
|
-
|
347
|
-
|
348
|
-
expect(parent_two.son_col).to eq('something' => different, 'change' => 'new value')
|
350
|
+
.from('something' => different, '_type' => 'Parent')
|
351
|
+
.to('something' => different, 'change' => 'new value', '_type' => 'Parent')
|
352
|
+
expect(parent_two.son_col).to eq('something' => different, 'change' => 'new value', '_type' => 'ParentTwo')
|
349
353
|
end
|
350
354
|
end
|
351
355
|
end
|
@@ -378,7 +382,7 @@ describe Embedson::Model::EmbeddedBuilder do
|
|
378
382
|
|
379
383
|
it 'changes column values' do
|
380
384
|
expect(son.save!).to be_truthy
|
381
|
-
expect(parent.son_col).to eq('something' => different)
|
385
|
+
expect(parent.son_col).to eq('something' => different, '_type' => 'Parent')
|
382
386
|
expect(parent.emb_col).to be_nil
|
383
387
|
end
|
384
388
|
end
|
@@ -387,12 +391,22 @@ describe Embedson::Model::EmbeddedBuilder do
|
|
387
391
|
end
|
388
392
|
|
389
393
|
describe 'defined .destroy' do
|
394
|
+
|
395
|
+
|
396
|
+
context 'when there is no parent' do
|
397
|
+
let(:son) { Son.new }
|
398
|
+
|
399
|
+
it 'returns false' do
|
400
|
+
expect(son.destroy).to be_falsey
|
401
|
+
end
|
402
|
+
end
|
403
|
+
|
390
404
|
context 'when there is parent' do
|
391
405
|
let(:son) { Son.new(parent: parent, parent_two: parent_two) }
|
392
406
|
|
393
407
|
context 'and destroy on all returns true' do
|
394
408
|
it 'returns true' do
|
395
|
-
expect(son.destroy).to
|
409
|
+
expect(son.destroy).to be_truthy
|
396
410
|
end
|
397
411
|
end
|
398
412
|
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Embedson::Model::EmbedsBuilder do
|
4
|
+
|
5
|
+
with_model :Parent do
|
6
|
+
table do |t|
|
7
|
+
t.json :son_col
|
8
|
+
end
|
9
|
+
|
10
|
+
model do
|
11
|
+
embeds_one :son, column_name: :son_col, class_name: FirstSon
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class FirstSon < OpenStruct
|
16
|
+
extend Embedson::Model
|
17
|
+
|
18
|
+
embedded_in :parent, inverse_of: :son
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
class FirstSonsChild < FirstSon
|
23
|
+
end
|
24
|
+
|
25
|
+
describe 'defined #son method' do
|
26
|
+
context 'when child of embedded model is assigned as son' do
|
27
|
+
let(:parent) { Parent.new(son: son) }
|
28
|
+
let(:son) { FirstSonsChild.new(some: 'random') }
|
29
|
+
|
30
|
+
it 'returns SonsChild instance' do
|
31
|
+
expect(parent.son).to be_a FirstSonsChild
|
32
|
+
expect(parent.son).to eq son
|
33
|
+
end
|
34
|
+
|
35
|
+
context 'when aprent is persisted' do
|
36
|
+
before do
|
37
|
+
parent.save!
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'returns SonsChild instance' do
|
41
|
+
expect(parent.reload.son).to be_a FirstSonsChild
|
42
|
+
expect(parent.son).to eq son
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/spec/embedson/model_spec.rb
CHANGED
@@ -86,7 +86,7 @@ describe Embedson::Model do
|
|
86
86
|
expect{
|
87
87
|
parent.embedded = embedded
|
88
88
|
parent.save!
|
89
|
-
}.to change { parent.reload.read_attribute(:embedded) }.from(nil).to(embedded.to_h.stringify_keys)
|
89
|
+
}.to change { parent.reload.read_attribute(:embedded) }.from(nil).to(embedded.to_h.stringify_keys.merge('_type' => 'Parent'))
|
90
90
|
end
|
91
91
|
end
|
92
92
|
end
|
@@ -155,7 +155,7 @@ describe Embedson::Model do
|
|
155
155
|
expect {
|
156
156
|
parent.embeddedb = embedded
|
157
157
|
parent.save!
|
158
|
-
}.to change{ parent.read_attribute(:data) }.from(nil).to(embedded.to_h.stringify_keys)
|
158
|
+
}.to change{ parent.read_attribute(:data) }.from(nil).to(embedded.to_h.stringify_keys.merge('_type' => 'Parent'))
|
159
159
|
end
|
160
160
|
end
|
161
161
|
|
@@ -336,76 +336,12 @@ describe Embedson::Model do
|
|
336
336
|
expect{
|
337
337
|
embedded.parent = parent
|
338
338
|
parent.save!
|
339
|
-
}.to change { parent.reload.read_attribute(:embedded) }.from(nil).to(embedded.to_h.stringify_keys)
|
339
|
+
}.to change { parent.reload.read_attribute(:embedded) }.from(nil).to(embedded.to_h.stringify_keys.merge('_type' => 'Parent'))
|
340
340
|
end
|
341
341
|
end
|
342
342
|
end
|
343
343
|
end
|
344
344
|
|
345
|
-
describe 'defined .save! method' do
|
346
|
-
|
347
|
-
context 'when there is parent' do
|
348
|
-
let(:embedded) { Embeddede.new(parent: parent) }
|
349
|
-
|
350
|
-
it 'calls .save on parent' do
|
351
|
-
expect(parent).to receive(:save!)
|
352
|
-
embedded.save!
|
353
|
-
end
|
354
|
-
|
355
|
-
it 'saves to_h result in parent column' do
|
356
|
-
parent.save!
|
357
|
-
expect {
|
358
|
-
embedded.save!
|
359
|
-
}.to change { parent.reload.read_attribute(:embedded) }.from(nil).to({ "defined" => "in", "embedded" => true })
|
360
|
-
end
|
361
|
-
|
362
|
-
context 'and embedded is changed' do
|
363
|
-
it 'saves changes in parent' do
|
364
|
-
embedded.save!
|
365
|
-
expect {
|
366
|
-
embedded.change = 'new value'
|
367
|
-
embedded.save!
|
368
|
-
}.to change { parent.reload.read_attribute(:embedded) }
|
369
|
-
.from({ "defined" => "in", "embedded" => true })
|
370
|
-
.to({"defined"=>"in", "embedded"=>true, "change"=>"new value"})
|
371
|
-
end
|
372
|
-
end
|
373
|
-
end
|
374
|
-
|
375
|
-
context 'when there is no parent' do
|
376
|
-
it 'raises argument error' do
|
377
|
-
expect { embedded.save! }.to raise_error(Embedson::NoParentError)
|
378
|
-
end
|
379
|
-
end
|
380
|
-
end
|
381
|
-
|
382
|
-
describe 'defined .destroy method' do
|
383
|
-
|
384
|
-
context 'when there is parent' do
|
385
|
-
let(:embedded) { Embeddede.new(parent: parent) }
|
386
|
-
|
387
|
-
it 'calls .save! on parent' do
|
388
|
-
expect(parent).to receive(:save!)
|
389
|
-
embedded.destroy
|
390
|
-
end
|
391
|
-
|
392
|
-
it 'saves nil in parent column' do
|
393
|
-
embedded.save!
|
394
|
-
expect {
|
395
|
-
embedded.destroy
|
396
|
-
}.to change { parent.reload.read_attribute(:embedded) }.from({ "defined" => "in", "embedded" => true }).to(nil)
|
397
|
-
end
|
398
|
-
end
|
399
|
-
|
400
|
-
context 'when there is no parent' do
|
401
|
-
let(:embedded) { Embeddede.new }
|
402
|
-
|
403
|
-
it 'returns false' do
|
404
|
-
expect(embedded.destroy).to eq(false)
|
405
|
-
end
|
406
|
-
end
|
407
|
-
end
|
408
|
-
|
409
345
|
describe 'defined .embedson_model_changed! method' do
|
410
346
|
|
411
347
|
context 'when there is parent' do
|
@@ -419,7 +355,9 @@ describe Embedson::Model do
|
|
419
355
|
embedded.change = 'registered'
|
420
356
|
expect {
|
421
357
|
embedded.embedson_model_changed!
|
422
|
-
}.to change { parent.read_attribute(:embedded) }
|
358
|
+
}.to change { parent.read_attribute(:embedded) }
|
359
|
+
.from({ "defined" => "in", "embedded" => true, '_type' => 'Parent' })
|
360
|
+
.to({ "defined" => "in", "embedded" => true, 'change' => 'registered', '_type' => 'Parent' })
|
423
361
|
end
|
424
362
|
end
|
425
363
|
|
metadata
CHANGED
@@ -1,136 +1,137 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embedson
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sufleR
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '4'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '4'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '1.
|
33
|
+
version: '1.8'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '1.
|
40
|
+
version: '1.8'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '10
|
47
|
+
version: '10'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '10
|
54
|
+
version: '10'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '3.
|
61
|
+
version: '3.2'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '3.
|
68
|
+
version: '3.2'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: pg
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - ~>
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '0.
|
75
|
+
version: '0.18'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - ~>
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '0.
|
82
|
+
version: '0.18'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: pry
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - ~>
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0.10'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - ~>
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0.10'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: with_model
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - ~>
|
101
|
+
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '1.2'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - ~>
|
108
|
+
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '1.2'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: codeclimate-test-reporter
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- - ~>
|
115
|
+
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0.4'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- - ~>
|
122
|
+
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0.4'
|
125
|
-
description: Save
|
125
|
+
description: Save hash representation of class in json column as embedded model.
|
126
126
|
email:
|
127
127
|
- szymon.fracczak@netguru.co
|
128
128
|
executables: []
|
129
129
|
extensions: []
|
130
130
|
extra_rdoc_files: []
|
131
131
|
files:
|
132
|
-
- .gitignore
|
133
|
-
- .travis.yml
|
132
|
+
- ".gitignore"
|
133
|
+
- ".travis.yml"
|
134
|
+
- CHANGELOG.md
|
134
135
|
- Gemfile
|
135
136
|
- LICENSE.txt
|
136
137
|
- README.md
|
@@ -146,6 +147,7 @@ files:
|
|
146
147
|
- lib/embedson/version.rb
|
147
148
|
- spec/embedson/exceptions_spec.rb
|
148
149
|
- spec/embedson/model/embedded_builder_spec.rb
|
150
|
+
- spec/embedson/model/embeds_builder_spec.rb
|
149
151
|
- spec/embedson/model/method_builder_spec.rb
|
150
152
|
- spec/embedson/model_spec.rb
|
151
153
|
- spec/spec_helper.rb
|
@@ -159,23 +161,24 @@ require_paths:
|
|
159
161
|
- lib
|
160
162
|
required_ruby_version: !ruby/object:Gem::Requirement
|
161
163
|
requirements:
|
162
|
-
- -
|
164
|
+
- - ">="
|
163
165
|
- !ruby/object:Gem::Version
|
164
166
|
version: 1.9.3
|
165
167
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
166
168
|
requirements:
|
167
|
-
- -
|
169
|
+
- - ">="
|
168
170
|
- !ruby/object:Gem::Version
|
169
171
|
version: '0'
|
170
172
|
requirements: []
|
171
173
|
rubyforge_project:
|
172
|
-
rubygems_version: 2.
|
174
|
+
rubygems_version: 2.4.3
|
173
175
|
signing_key:
|
174
176
|
specification_version: 4
|
175
177
|
summary: Embedded model for AR with postgresql
|
176
178
|
test_files:
|
177
179
|
- spec/embedson/exceptions_spec.rb
|
178
180
|
- spec/embedson/model/embedded_builder_spec.rb
|
181
|
+
- spec/embedson/model/embeds_builder_spec.rb
|
179
182
|
- spec/embedson/model/method_builder_spec.rb
|
180
183
|
- spec/embedson/model_spec.rb
|
181
184
|
- spec/spec_helper.rb
|