active_model_archive 0.9.0 → 0.9.1
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.
- data/active_model_archive.gemspec +1 -1
- data/lib/active_model_archive/restore.rb +7 -1
- data/test/restore_test.rb +31 -12
- data/test/test_helper.rb +16 -3
- metadata +5 -5
@@ -12,7 +12,9 @@ module ActiveModelArchive
|
|
12
12
|
|
13
13
|
def each_instance(io)
|
14
14
|
each_archive(io) do |hash|
|
15
|
-
|
15
|
+
attributes = {}
|
16
|
+
valid_archive_keys.each { |key| attributes[key] = hash[key] }
|
17
|
+
yield new(attributes)
|
16
18
|
end
|
17
19
|
end
|
18
20
|
|
@@ -33,6 +35,10 @@ module ActiveModelArchive
|
|
33
35
|
|
34
36
|
count
|
35
37
|
end
|
38
|
+
|
39
|
+
def valid_archive_keys
|
40
|
+
@valid_archive_keys ||= new.attributes.keys
|
41
|
+
end
|
36
42
|
end
|
37
43
|
end
|
38
44
|
end
|
data/test/restore_test.rb
CHANGED
@@ -33,20 +33,39 @@ class ActiveModelArchive::RestoreTest < MiniTest::Spec
|
|
33
33
|
|
34
34
|
def test_each_instance
|
35
35
|
json_io = StringIO.new %{
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
36
|
+
{
|
37
|
+
"id": 42,
|
38
|
+
"color": "green"
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
results = []
|
43
|
+
TestModel.each_instance(json_io) do |object|
|
44
|
+
results << object
|
45
|
+
end
|
46
|
+
|
47
|
+
assert_equal 1, results.size
|
48
|
+
assert_equal 42, results.first.id
|
49
|
+
assert_equal 'green', results.first.color
|
50
|
+
end
|
41
51
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
52
|
+
def test_each_instance_slices_attributes
|
53
|
+
assert_raises NoMethodError do
|
54
|
+
TestModel.new foo: 'bar', color: 'green'
|
55
|
+
end
|
56
|
+
|
57
|
+
json_io = StringIO.new %{
|
58
|
+
{
|
59
|
+
"foo": "bar",
|
60
|
+
"color": "green"
|
61
|
+
}
|
62
|
+
}
|
46
63
|
|
47
|
-
|
48
|
-
|
49
|
-
|
64
|
+
results = []
|
65
|
+
TestModel.each_instance(json_io) do |object|
|
66
|
+
results << object
|
67
|
+
end
|
68
|
+
assert_equal 'green', results.first.color
|
50
69
|
end
|
51
70
|
|
52
71
|
def test_restore!
|
data/test/test_helper.rb
CHANGED
@@ -14,6 +14,7 @@ class TestModel
|
|
14
14
|
|
15
15
|
def initialize(attrs = {})
|
16
16
|
@attributes = {}
|
17
|
+
|
17
18
|
self.attributes = attrs
|
18
19
|
end
|
19
20
|
|
@@ -21,16 +22,28 @@ class TestModel
|
|
21
22
|
@attributes['id']
|
22
23
|
end
|
23
24
|
|
25
|
+
def id=(val)
|
26
|
+
@attributes['id'] = val
|
27
|
+
end
|
28
|
+
|
24
29
|
def color
|
25
30
|
@attributes['color']
|
26
31
|
end
|
27
32
|
|
33
|
+
def color=(val)
|
34
|
+
@attributes['color'] = val
|
35
|
+
end
|
36
|
+
|
28
37
|
def attributes=(attrs)
|
29
|
-
|
30
|
-
|
38
|
+
attrs.each do |key, value|
|
39
|
+
send("#{key}=", value)
|
40
|
+
end
|
31
41
|
end
|
32
42
|
|
33
43
|
def attributes
|
34
|
-
|
44
|
+
{
|
45
|
+
'id' => id,
|
46
|
+
'color' => color
|
47
|
+
}
|
35
48
|
end
|
36
49
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_model_archive
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-11-03 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &70351174947160 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '3'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70351174947160
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: yajl-ruby
|
27
|
-
requirement: &
|
27
|
+
requirement: &70351174946320 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70351174946320
|
36
36
|
description: Adds dump and restore functionality to activemodel classes
|
37
37
|
email:
|
38
38
|
- grantr@gmail.com
|