osm 1.2.18.dev.6 → 1.2.18.dev.7
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 +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
|