osm 1.2.18.dev.6 → 1.2.18.dev.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/osm/member.rb +5 -5
- data/spec/array_of_validator_spec.rb +69 -63
- data/spec/hash_validator_spec.rb +96 -94
- data/spec/validity_validator_spec.rb +45 -42
- data/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
OGE3N2JlN2IzNGM4NWIxMGM5OTc1NzgxYTk0MTExYTM4NDc0MDY2NA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NDM5ZDMyMzZmNTAwZjIwOTBlZGI0MjM5NDU1YTRiZTg3YmExMjI1Mw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MTQ4NTc1ZTYxNWQ3MGFhMmQ4NTYxNDY2NjFhM2FjOTQ5NDYzNDM4NGViM2Y0
|
10
|
+
YTQxYjFkZDU4MDc4MDUzMzU3YWJlMjI2NzFmZWJjMTgyZjc2M2E0MTU4YzI0
|
11
|
+
MzQyMDZmZmFmYzYzMjk2MTQ0ODkzZTY5OWYwNjYyMjVhYzZhZGI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZGI3NWNjMDgzNmEzNjY4YTBlZjIzZGMzNzQ3Njc1N2IyZGZmNzhkM2FmODJk
|
14
|
+
Mzc1MzhiODQyZDBjOWU3N2E5YjZiMzgwZmE5N2Q0YjVkYTEzMjIwZTdmZDQ2
|
15
|
+
MWI0Zjk3ZDc2N2MyOTM3YWZjNjI0ODQ5NmJlYmVhYTc0MDJjMTk=
|
data/lib/osm/member.rb
CHANGED
@@ -390,11 +390,11 @@ module Osm
|
|
390
390
|
end # each attr to update
|
391
391
|
|
392
392
|
# Do contacts
|
393
|
-
updated = contact.update(api, self, force) && updated
|
394
|
-
updated = primary_contact.update(api, self, force) && updated
|
395
|
-
updated = secondary_contact.update(api, self, force) && updated
|
396
|
-
updated = emergency_contact.update(api, self, force) && updated
|
397
|
-
updated = doctor.update(api, self, force) && updated
|
393
|
+
updated = (contact.nil? || contact.update(api, self, force)) && updated
|
394
|
+
updated = (primary_contact.nil? || primary_contact.update(api, self, force)) && updated
|
395
|
+
updated = (secondary_contact.nil? || secondary_contact.update(api, self, force)) && updated
|
396
|
+
updated = (emergency_contact.nil? ||emergency_contact.update(api, self, force)) && updated
|
397
|
+
updated = (doctor.nil? || doctor.update(api, self, force)) && updated
|
398
398
|
|
399
399
|
# Finish off
|
400
400
|
if updated
|
@@ -2,99 +2,105 @@
|
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
4
|
|
5
|
-
|
6
|
-
attribute :array
|
7
|
-
validates :array, :array_of => {:item_type => Fixnum}
|
8
|
-
end
|
5
|
+
module ArrayOfValidatorSpec
|
9
6
|
|
10
|
-
class
|
11
|
-
|
12
|
-
|
13
|
-
end
|
14
|
-
def valid?
|
15
|
-
@valid
|
7
|
+
class FixnumTestModel < Osm::Model
|
8
|
+
attribute :array
|
9
|
+
validates :array, :array_of => {:item_type => Fixnum}
|
16
10
|
end
|
17
|
-
end
|
18
|
-
|
19
|
-
class ValidTestModel < Osm::Model
|
20
|
-
attribute :array
|
21
|
-
validates :array, :array_of => {:item_type => TestItem, :item_valid=>true}
|
22
|
-
end
|
23
|
-
|
24
|
-
class InvalidTestModel < Osm::Model
|
25
|
-
attribute :array
|
26
|
-
validates :array, :array_of => {:item_type => TestItem, :item_valid=>false}
|
27
|
-
end
|
28
|
-
|
29
|
-
class NovalidTestModel < Osm::Model
|
30
|
-
attribute :array
|
31
|
-
validates :array, :array_of => {:item_type => TestItem}
|
32
|
-
end
|
33
11
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
12
|
+
class TestItem
|
13
|
+
def initialize(attrs)
|
14
|
+
@valid = !!attrs[:valid]
|
15
|
+
end
|
16
|
+
def valid?
|
17
|
+
@valid
|
18
|
+
end
|
41
19
|
end
|
42
20
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
i.valid?.should == true
|
48
|
-
i.errors.count.should == 0
|
49
|
-
end
|
21
|
+
class ValidTestModel < Osm::Model
|
22
|
+
attribute :array
|
23
|
+
validates :array, :array_of => {:item_type => TestItem, :item_valid=>true}
|
24
|
+
end
|
50
25
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
i.errors.messages.should == {:array=>["items in the Array must be a Fixnum"]}
|
56
|
-
end
|
26
|
+
class InvalidTestModel < Osm::Model
|
27
|
+
attribute :array
|
28
|
+
validates :array, :array_of => {:item_type => TestItem, :item_valid=>false}
|
29
|
+
end
|
57
30
|
|
31
|
+
class NovalidTestModel < Osm::Model
|
32
|
+
attribute :array
|
33
|
+
validates :array, :array_of => {:item_type => TestItem}
|
58
34
|
end
|
59
35
|
|
60
|
-
describe ":valid option" do
|
61
36
|
|
62
|
-
|
63
|
-
|
37
|
+
describe "Array of validator" do
|
38
|
+
|
39
|
+
it "Allows an empty array" do
|
40
|
+
i = FixnumTestModel.new(array: [])
|
64
41
|
i.valid?.should == true
|
65
42
|
i.errors.count.should == 0
|
66
43
|
end
|
67
44
|
|
68
|
-
describe "
|
45
|
+
describe ":item_type option" do
|
69
46
|
|
70
|
-
it "
|
71
|
-
i =
|
47
|
+
it "Allows arrays of the right type" do
|
48
|
+
i = FixnumTestModel.new(array: [1, 2, 3])
|
72
49
|
i.valid?.should == true
|
73
50
|
i.errors.count.should == 0
|
74
51
|
end
|
75
52
|
|
76
|
-
it "
|
77
|
-
i =
|
53
|
+
it "Forbids arrays containing >= 1 incorrect type" do
|
54
|
+
i = FixnumTestModel.new(array: [1, '2', 3])
|
78
55
|
i.valid?.should == false
|
79
56
|
i.errors.count.should == 1
|
80
|
-
i.errors.messages.should == {:array
|
57
|
+
i.errors.messages.should == {:array=>["items in the Array must be a Fixnum"]}
|
81
58
|
end
|
82
59
|
|
83
60
|
end
|
84
61
|
|
85
|
-
describe "
|
62
|
+
describe ":valid option" do
|
86
63
|
|
87
|
-
it "
|
88
|
-
i =
|
64
|
+
it "Allows (in)valid items unless valid option is passed" do
|
65
|
+
i = NovalidTestModel.new(array: [TestItem.new(valid: false), TestItem.new(valid: true)])
|
89
66
|
i.valid?.should == true
|
90
67
|
i.errors.count.should == 0
|
91
68
|
end
|
92
69
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
70
|
+
describe "Valid option is false" do
|
71
|
+
|
72
|
+
it "Contains all invalid items" do
|
73
|
+
i = InvalidTestModel.new(array: [TestItem.new(valid: false)])
|
74
|
+
i.valid?.should == true
|
75
|
+
i.errors.count.should == 0
|
76
|
+
end
|
77
|
+
|
78
|
+
it "Contains a valid item" do
|
79
|
+
i = InvalidTestModel.new(array: [TestItem.new(valid: true)])
|
80
|
+
i.valid?.should == false
|
81
|
+
i.errors.count.should == 1
|
82
|
+
i.errors.messages.should == {:array => ['contains a valid item']}
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
|
87
|
+
describe "Valid option is true" do
|
88
|
+
|
89
|
+
it "Contains all valid items" do
|
90
|
+
i = ValidTestModel.new(array: [TestItem.new(valid: true)])
|
91
|
+
i.valid?.should == true
|
92
|
+
i.errors.count.should == 0
|
93
|
+
end
|
94
|
+
|
95
|
+
it "Contains an invalid item" do
|
96
|
+
i = ValidTestModel.new(array: [TestItem.new(valid: false)])
|
97
|
+
i.valid?.should == false
|
98
|
+
i.errors.count.should == 1
|
99
|
+
i.errors.messages.should == {:array => ['contains an invalid item']}
|
100
|
+
end
|
101
|
+
|
102
|
+
end
|
103
|
+
|
98
104
|
end
|
99
105
|
|
100
106
|
end
|
data/spec/hash_validator_spec.rb
CHANGED
@@ -1,133 +1,135 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
|
+
module HashValidatorSpec
|
4
5
|
|
5
|
-
class KeyTypeTestModel
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
end
|
6
|
+
class KeyTypeTestModel
|
7
|
+
include ActiveAttr::Model
|
8
|
+
attribute :hash_attr
|
9
|
+
validates :hash_attr, :hash => {:key_type => Fixnum}
|
10
|
+
end
|
10
11
|
|
11
|
-
class KeyInTestModel
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
end
|
12
|
+
class KeyInTestModel
|
13
|
+
include ActiveAttr::Model
|
14
|
+
attribute :hash_attr
|
15
|
+
validates :hash_attr, :hash => {:key_in => [1, 2]}
|
16
|
+
end
|
16
17
|
|
17
|
-
class ValueTypeTestModel
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
end
|
18
|
+
class ValueTypeTestModel
|
19
|
+
include ActiveAttr::Model
|
20
|
+
attribute :hash_attr
|
21
|
+
validates :hash_attr, :hash => {:value_type => Fixnum}
|
22
|
+
end
|
22
23
|
|
23
|
-
class ValueInTestModel
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
end
|
24
|
+
class ValueInTestModel
|
25
|
+
include ActiveAttr::Model
|
26
|
+
attribute :hash_attr
|
27
|
+
validates :hash_attr, :hash => {:value_in => [1, 2]}
|
28
|
+
end
|
28
29
|
|
29
30
|
|
30
|
-
describe "Hash validator" do
|
31
|
+
describe "Hash validator" do
|
31
32
|
|
32
33
|
|
33
|
-
|
34
|
+
describe "Key type option" do
|
34
35
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
36
|
+
it "Has only correct keys" do
|
37
|
+
model = KeyTypeTestModel.new(hash_attr: {1=>'1', 2=>'2'})
|
38
|
+
model.valid?.should == true
|
39
|
+
model.errors.count.should == 0
|
40
|
+
end
|
40
41
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
42
|
+
it "Has an incorrect key" do
|
43
|
+
model = KeyTypeTestModel.new(hash_attr: {1=>'1', 2=>'2', '3'=>'3'})
|
44
|
+
model.valid?.should == false
|
45
|
+
model.errors.count.should == 1
|
46
|
+
model.errors.messages.should == {hash_attr: ['keys must be a Fixnum ("3" is not).']}
|
47
|
+
end
|
48
|
+
|
49
|
+
it "Has several incorrect keys" do
|
50
|
+
model = KeyTypeTestModel.new(hash_attr: {1=>'1', 2=>'2', '3'=>'3', '4'=>'4'})
|
51
|
+
model.valid?.should == false
|
52
|
+
model.errors.count.should == 2
|
53
|
+
model.errors.messages.should == {hash_attr: ['keys must be a Fixnum ("3" is not).', 'keys must be a Fixnum ("4" is not).']}
|
54
|
+
end
|
47
55
|
|
48
|
-
it "Has several incorrect keys" do
|
49
|
-
model = KeyTypeTestModel.new(hash_attr: {1=>'1', 2=>'2', '3'=>'3', '4'=>'4'})
|
50
|
-
model.valid?.should == false
|
51
|
-
model.errors.count.should == 2
|
52
|
-
model.errors.messages.should == {hash_attr: ['keys must be a Fixnum ("3" is not).', 'keys must be a Fixnum ("4" is not).']}
|
53
56
|
end
|
54
57
|
|
55
|
-
end
|
56
58
|
|
59
|
+
describe "Key in option" do
|
57
60
|
|
58
|
-
|
61
|
+
it "Has only correct keys" do
|
62
|
+
model = KeyInTestModel.new(hash_attr: {1=>'1', 2=>'2'})
|
63
|
+
model.valid?.should == true
|
64
|
+
model.errors.count.should == 0
|
65
|
+
end
|
59
66
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
67
|
+
it "Has an incorrect key" do
|
68
|
+
model = KeyInTestModel.new(hash_attr: {1=>'1', 2=>'2', 3=>'3'})
|
69
|
+
model.valid?.should == false
|
70
|
+
model.errors.count.should == 1
|
71
|
+
model.errors.messages.should == {hash_attr: ['keys must be in [1, 2] (3 is not).']}
|
72
|
+
end
|
65
73
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
74
|
+
it "Has several incorrect keys" do
|
75
|
+
model = KeyInTestModel.new(hash_attr: {1=>'1', 2=>'2', 3=>'3', 4=>'4'})
|
76
|
+
model.valid?.should == false
|
77
|
+
model.errors.count.should == 2
|
78
|
+
model.errors.messages.should == {hash_attr: ['keys must be in [1, 2] (3 is not).', 'keys must be in [1, 2] (4 is not).']}
|
79
|
+
end
|
72
80
|
|
73
|
-
it "Has several incorrect keys" do
|
74
|
-
model = KeyInTestModel.new(hash_attr: {1=>'1', 2=>'2', 3=>'3', 4=>'4'})
|
75
|
-
model.valid?.should == false
|
76
|
-
model.errors.count.should == 2
|
77
|
-
model.errors.messages.should == {hash_attr: ['keys must be in [1, 2] (3 is not).', 'keys must be in [1, 2] (4 is not).']}
|
78
81
|
end
|
79
82
|
|
80
|
-
end
|
81
83
|
|
84
|
+
describe "Value type option" do
|
82
85
|
|
83
|
-
|
86
|
+
it "Has only correct keys" do
|
87
|
+
model = ValueTypeTestModel.new(hash_attr: {'1'=>1, '2'=>2})
|
88
|
+
model.valid?.should == true
|
89
|
+
model.errors.count.should == 0
|
90
|
+
end
|
84
91
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
92
|
+
it "Has an incorrect key" do
|
93
|
+
model = ValueTypeTestModel.new(hash_attr: {'1'=>1, '2'=>2, '3'=>'3'})
|
94
|
+
model.valid?.should == false
|
95
|
+
model.errors.count.should == 1
|
96
|
+
model.errors.messages.should == {hash_attr: ['values must be a Fixnum ("3" for key "3" is not).']}
|
97
|
+
end
|
90
98
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
99
|
+
it "Has several incorrect keys" do
|
100
|
+
model = ValueTypeTestModel.new(hash_attr: {'1'=>1, '2'=>2, '3'=>'3', '4'=>'4'})
|
101
|
+
model.valid?.should == false
|
102
|
+
model.errors.count.should == 2
|
103
|
+
model.errors.messages.should == {hash_attr: ['values must be a Fixnum ("3" for key "3" is not).', 'values must be a Fixnum ("4" for key "4" is not).']}
|
104
|
+
end
|
97
105
|
|
98
|
-
it "Has several incorrect keys" do
|
99
|
-
model = ValueTypeTestModel.new(hash_attr: {'1'=>1, '2'=>2, '3'=>'3', '4'=>'4'})
|
100
|
-
model.valid?.should == false
|
101
|
-
model.errors.count.should == 2
|
102
|
-
model.errors.messages.should == {hash_attr: ['values must be a Fixnum ("3" for key "3" is not).', 'values must be a Fixnum ("4" for key "4" is not).']}
|
103
106
|
end
|
104
107
|
|
105
|
-
|
108
|
+
describe "Value in option" do
|
106
109
|
|
110
|
+
it "Has only correct keys" do
|
111
|
+
model = ValueInTestModel.new(hash_attr: {'1'=>1, '2'=>2})
|
112
|
+
model.valid?.should == true
|
113
|
+
model.errors.count.should == 0
|
114
|
+
end
|
107
115
|
|
108
|
-
|
116
|
+
it "Has an incorrect key" do
|
117
|
+
model = ValueInTestModel.new(hash_attr: {'1'=>1, '2'=>2, '3'=>'3'})
|
118
|
+
model.valid?.should == false
|
119
|
+
model.errors.count.should == 1
|
120
|
+
model.errors.messages.should == {hash_attr: ['values must be in [1, 2] ("3" for key "3" is not).']}
|
121
|
+
end
|
109
122
|
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
123
|
+
it "Has several incorrect keys" do
|
124
|
+
model = ValueInTestModel.new(hash_attr: {'1'=>1, '2'=>2, '3'=>'3', '4'=>'4'})
|
125
|
+
model.valid?.should == false
|
126
|
+
model.errors.count.should == 2
|
127
|
+
model.errors.messages.should == {hash_attr: ['values must be in [1, 2] ("3" for key "3" is not).', 'values must be in [1, 2] ("4" for key "4" is not).']}
|
128
|
+
end
|
115
129
|
|
116
|
-
it "Has an incorrect key" do
|
117
|
-
model = ValueInTestModel.new(hash_attr: {'1'=>1, '2'=>2, '3'=>'3'})
|
118
|
-
model.valid?.should == false
|
119
|
-
model.errors.count.should == 1
|
120
|
-
model.errors.messages.should == {hash_attr: ['values must be in [1, 2] ("3" for key "3" is not).']}
|
121
130
|
end
|
122
131
|
|
123
|
-
it "Has several incorrect keys" do
|
124
|
-
model = ValueInTestModel.new(hash_attr: {'1'=>1, '2'=>2, '3'=>'3', '4'=>'4'})
|
125
|
-
model.valid?.should == false
|
126
|
-
model.errors.count.should == 2
|
127
|
-
model.errors.messages.should == {hash_attr: ['values must be in [1, 2] ("3" for key "3" is not).', 'values must be in [1, 2] ("4" for key "4" is not).']}
|
128
|
-
end
|
129
132
|
|
130
133
|
end
|
131
134
|
|
132
|
-
|
133
|
-
end
|
135
|
+
end
|
@@ -1,56 +1,59 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
|
+
module ValidityValidatorSpec
|
5
|
+
class TestItem
|
6
|
+
include ActiveAttr::Model
|
7
|
+
attribute :validity
|
8
|
+
validates_inclusion_of :validity, :in => [true]
|
9
|
+
end
|
4
10
|
|
5
|
-
class
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
end
|
11
|
+
class TestModel
|
12
|
+
include ActiveAttr::Model
|
13
|
+
attribute :item
|
14
|
+
validates :item, :validity => true
|
15
|
+
end
|
16
|
+
class TestModelAllowNil
|
17
|
+
include ActiveAttr::Model
|
18
|
+
attribute :item
|
19
|
+
validates :item, :validity => {allow_nil: true}
|
20
|
+
end
|
21
|
+
class TestModelDisallowNil
|
22
|
+
include ActiveAttr::Model
|
23
|
+
attribute :item
|
24
|
+
validates :item, :validity => {allow_nil: false}
|
25
|
+
end
|
10
26
|
|
11
|
-
class TestModel
|
12
|
-
include ActiveAttr::Model
|
13
|
-
attribute :item
|
14
|
-
validates :item, :validity => true
|
15
|
-
end
|
16
|
-
class TestModelAllowNil
|
17
|
-
include ActiveAttr::Model
|
18
|
-
attribute :item
|
19
|
-
validates :item, :validity => {allow_nil: true}
|
20
|
-
end
|
21
|
-
class TestModelDisallowNil
|
22
|
-
include ActiveAttr::Model
|
23
|
-
attribute :item
|
24
|
-
validates :item, :validity => {allow_nil: false}
|
25
|
-
end
|
26
27
|
|
27
|
-
describe "validity validator" do
|
28
|
+
describe "validity validator" do
|
28
29
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
30
|
+
it "Item is valid" do
|
31
|
+
model = TestModel.new(item: TestItem.new(validity: true))
|
32
|
+
model.valid?.should == true
|
33
|
+
model.errors.count.should == 0
|
34
|
+
end
|
34
35
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
36
|
+
it "Item is invalid" do
|
37
|
+
model = TestModel.new(item: TestItem.new(validity: false))
|
38
|
+
model.valid?.should == false
|
39
|
+
model.errors.count.should == 2
|
40
|
+
model.errors.messages.should == {:item => ['must be valid', 'validity attribute is invalid: is not included in the list']}
|
41
|
+
end
|
41
42
|
|
42
|
-
|
43
|
+
describe "Allow nil" do
|
43
44
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
45
|
+
it "Is true" do
|
46
|
+
TestModelAllowNil.new(item: TestItem.new(validity: true)).valid?.should == true
|
47
|
+
TestModelAllowNil.new(item: TestItem.new(validity: false)).valid?.should == false
|
48
|
+
TestModelAllowNil.new(item: nil).valid?.should == true
|
49
|
+
end
|
50
|
+
|
51
|
+
it "Is false" do
|
52
|
+
TestModelDisallowNil.new(item: TestItem.new(validity: true)).valid?.should == true
|
53
|
+
TestModelDisallowNil.new(item: TestItem.new(validity: false)).valid?.should == false
|
54
|
+
TestModelDisallowNil.new(item: nil).valid?.should == false
|
55
|
+
end
|
49
56
|
|
50
|
-
it "Is false" do
|
51
|
-
TestModelDisallowNil.new(item: TestItem.new(validity: true)).valid?.should == true
|
52
|
-
TestModelDisallowNil.new(item: TestItem.new(validity: false)).valid?.should == false
|
53
|
-
TestModelDisallowNil.new(item: nil).valid?.should == false
|
54
57
|
end
|
55
58
|
|
56
59
|
end
|
data/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: osm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.18.dev.
|
4
|
+
version: 1.2.18.dev.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Gauld
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|