osm 0.1.17 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +45 -0
- data/Guardfile +9 -0
- data/README.md +15 -13
- data/lib/osm.rb +14 -0
- data/lib/osm/activity.rb +44 -13
- data/lib/osm/api.rb +48 -12
- data/lib/osm/api_access.rb +9 -6
- data/lib/osm/due_badges.rb +5 -4
- data/lib/osm/event.rb +87 -107
- data/lib/osm/flexi_record.rb +159 -118
- data/lib/osm/grouping.rb +41 -2
- data/lib/osm/{evening.rb → meeting.rb} +71 -64
- data/lib/osm/member.rb +88 -68
- data/lib/osm/model.rb +120 -30
- data/lib/osm/register.rb +23 -14
- data/lib/osm/section.rb +40 -100
- data/lib/osm/term.rb +35 -24
- data/osm.gemspec +2 -0
- data/spec/osm/activity_spec.rb +190 -173
- data/spec/osm/api_access_spec.rb +15 -7
- data/spec/osm/api_spec.rb +54 -27
- data/spec/osm/event_spec.rb +95 -84
- data/spec/osm/flexi_record_spec.rb +138 -35
- data/spec/osm/grouping_spec.rb +59 -1
- data/spec/osm/{evening_spec.rb → meeting_spec.rb} +53 -53
- data/spec/osm/member_spec.rb +151 -45
- data/spec/osm/model_spec.rb +28 -34
- data/spec/osm/register_spec.rb +1 -1
- data/spec/osm/section_spec.rb +49 -82
- data/spec/osm/term_spec.rb +23 -15
- data/spec/spec_helper.rb +25 -0
- data/version.rb +1 -1
- metadata +41 -18
data/spec/osm/model_spec.rb
CHANGED
@@ -5,6 +5,9 @@ require 'spec_helper'
|
|
5
5
|
describe "Model" do
|
6
6
|
|
7
7
|
class ModelTester < Osm::Model
|
8
|
+
attribute :test_attribute
|
9
|
+
attr_accessible :test_attribute
|
10
|
+
|
8
11
|
def self.test_get_config
|
9
12
|
{
|
10
13
|
:cache => @@cache,
|
@@ -16,6 +19,11 @@ describe "Model" do
|
|
16
19
|
def self.cache(method, *options)
|
17
20
|
self.send("cache_#{method}", *options)
|
18
21
|
end
|
22
|
+
|
23
|
+
def self.test_get_all(api, keys, key)
|
24
|
+
ids = cache_read(api, keys)
|
25
|
+
return get_from_ids(api, ids, key, {}, :get_all)
|
26
|
+
end
|
19
27
|
end
|
20
28
|
|
21
29
|
|
@@ -92,49 +100,35 @@ describe "Model" do
|
|
92
100
|
end
|
93
101
|
|
94
102
|
|
95
|
-
describe "Get
|
103
|
+
describe "Get items from ids" do
|
96
104
|
|
97
|
-
it "
|
98
|
-
|
99
|
-
OsmTest::Cache.
|
100
|
-
OsmTest::Cache.
|
101
|
-
ModelTester.
|
105
|
+
it "All items in cache" do
|
106
|
+
OsmTest::Cache.write('OSMAPI-osm-items', [1, 2])
|
107
|
+
OsmTest::Cache.write('OSMAPI-osm-item-1', '1')
|
108
|
+
OsmTest::Cache.write('OSMAPI-osm-item-2', '2')
|
109
|
+
ModelTester.test_get_all(@api, 'items', 'item').should == ['1', '2']
|
102
110
|
end
|
103
|
-
|
104
|
-
it "
|
105
|
-
|
106
|
-
OsmTest::Cache.
|
107
|
-
|
108
|
-
ModelTester.
|
109
|
-
end
|
110
|
-
|
111
|
-
it "Single section" do
|
112
|
-
permissions = {1 => {:a => [:read, :write]}, 2 => {:a => [:read]}}
|
113
|
-
OsmTest::Cache.should_receive('exist?').with('OSMAPI-osm-permissions-user_id').twice { true }
|
114
|
-
OsmTest::Cache.should_receive('read').with('OSMAPI-osm-permissions-user_id').twice { permissions }
|
115
|
-
ModelTester.get_user_permissions(@api, 1).should == permissions[1]
|
116
|
-
ModelTester.get_user_permissions(@api, 2).should == permissions[2]
|
111
|
+
|
112
|
+
it "An item not in cache" do
|
113
|
+
OsmTest::Cache.write('OSMAPI-osm-items', [1, 2])
|
114
|
+
OsmTest::Cache.write('OSMAPI-osm-item-1', '1')
|
115
|
+
ModelTester.stub(:get_all) { ['A', 'B'] }
|
116
|
+
ModelTester.test_get_all(@api, 'items', 'item').should == ['A', 'B']
|
117
117
|
end
|
118
118
|
|
119
119
|
end
|
120
120
|
|
121
121
|
|
122
|
-
describe "
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
OsmTest::Cache.should_receive('write').with('OSMAPI-osm-permissions-user_id', permissions, {:expires_in=>600}) { true }
|
127
|
-
ModelTester.set_user_permissions(@api, permissions)
|
128
|
-
end
|
122
|
+
describe "Track attribute changes" do
|
123
|
+
test = ModelTester.new(:test_attribute => 1)
|
124
|
+
test.test_attribute.should == 1
|
125
|
+
test.changed_attributes.should == []
|
129
126
|
|
130
|
-
|
131
|
-
|
132
|
-
OsmTest::Cache.should_receive('exist?').with('OSMAPI-osm-permissions-user_id') { true }
|
133
|
-
OsmTest::Cache.should_receive('read').with('OSMAPI-osm-permissions-user_id') { permissions }
|
134
|
-
OsmTest::Cache.should_receive('write').with('OSMAPI-osm-permissions-user_id', permissions.merge(3 => {:a => [:read]}), {:expires_in=>600}) { true }
|
135
|
-
ModelTester.set_user_permissions(@api, 3, {:a => [:read]})
|
136
|
-
end
|
127
|
+
test.test_attribute = 2
|
128
|
+
test.changed_attributes.should == ['test_attribute']
|
137
129
|
|
130
|
+
test.reset_changed_attributes
|
131
|
+
test.changed_attributes.should == []
|
138
132
|
end
|
139
133
|
|
140
134
|
end
|
data/spec/osm/register_spec.rb
CHANGED
@@ -109,7 +109,7 @@ describe "Register" do
|
|
109
109
|
'completedBadges' => '[{"a":"A"},{"b":"B"}]'
|
110
110
|
}
|
111
111
|
|
112
|
-
HTTParty.should_receive(:post).with(url, {:body => post_data}) { DummyHttpResult.new(:response=>{:code=>'200', :body=>'[]'}) }
|
112
|
+
HTTParty.should_receive(:post).with(url, {:body => post_data}) { OsmTest::DummyHttpResult.new(:response=>{:code=>'200', :body=>'[]'}) }
|
113
113
|
Osm::Register.update_attendance({
|
114
114
|
:api => @api,
|
115
115
|
:section => Osm::Section.new(:id=>1, :type=>:cubs),
|
data/spec/osm/section_spec.rb
CHANGED
@@ -9,7 +9,7 @@ describe "Section" do
|
|
9
9
|
@attributes = {
|
10
10
|
:id => 1,
|
11
11
|
:name => 'Name',
|
12
|
-
:subscription_level =>
|
12
|
+
:subscription_level => 2,
|
13
13
|
:subscription_expires => (Date.today + 60).strftime('%Y-%m-%d'),
|
14
14
|
:type => :cubs,
|
15
15
|
:wizard => false,
|
@@ -46,7 +46,7 @@ describe "Section" do
|
|
46
46
|
|
47
47
|
section.id.should == 1
|
48
48
|
section.name.should == 'Name'
|
49
|
-
section.subscription_level.should ==
|
49
|
+
section.subscription_level.should == 2
|
50
50
|
section.subscription_expires.should == Date.today + 60
|
51
51
|
section.type.should == :cubs
|
52
52
|
section.column_names.should == {:column_names => 'names'}
|
@@ -80,7 +80,7 @@ describe "Section" do
|
|
80
80
|
it "Create has sensible defaults" do
|
81
81
|
section = Osm::Section.new
|
82
82
|
|
83
|
-
section.subscription_level.should ==
|
83
|
+
section.subscription_level.should == 1
|
84
84
|
section.subscription_expires.should == nil
|
85
85
|
section.type.should == :unknown
|
86
86
|
section.column_names.should == {}
|
@@ -103,42 +103,50 @@ describe "Section" do
|
|
103
103
|
FakeWeb.register_uri(:post, "https://www.onlinescoutmanager.co.uk/api.php?action=getUserRoles", :body => body.to_json)
|
104
104
|
end
|
105
105
|
|
106
|
-
|
107
|
-
|
108
|
-
|
106
|
+
describe "Gets all sections" do
|
107
|
+
it "From OSM" do
|
108
|
+
sections = Osm::Section.get_all(@api)
|
109
|
+
sections.map{ |i| i.id }.should == [1, 2]
|
110
|
+
|
111
|
+
section = sections[0]
|
112
|
+
section.id.should == 1
|
113
|
+
section.name.should == 'Section 1'
|
114
|
+
section.subscription_level.should == 1
|
115
|
+
section.subscription_expires.should == Date.new(2013, 1, 5)
|
116
|
+
section.type.should == :beavers
|
117
|
+
section.column_names.should == {:column_names => 'names'}
|
118
|
+
section.fields.should == {:fields => true}
|
119
|
+
section.intouch_fields.should == {:intouch_fields => true}
|
120
|
+
section.mobile_fields.should == {:mobile_fields => true}
|
121
|
+
section.group_id.should == 3
|
122
|
+
section.group_name.should == '3rd Somewhere'
|
123
|
+
section.flexi_records.size.should == 1
|
124
|
+
section.flexi_records[0].id.should == 111
|
125
|
+
section.flexi_records[0].name.should == 'Flexi Record 1'
|
126
|
+
section.gocardless.should == true
|
127
|
+
section.myscout_events_expires.should == Date.new(2013, 1, 6)
|
128
|
+
section.myscout_badges_expires.should == Date.new(2013, 1, 7)
|
129
|
+
section.myscout_programme_expires.should == Date.new(2013, 1, 8)
|
130
|
+
section.myscout_events.should == true
|
131
|
+
section.myscout_badges.should == true
|
132
|
+
section.myscout_programme.should == true
|
133
|
+
section.myscout_payments.should == true
|
134
|
+
section.myscout_emails.should == {:email1 => true, :email2 => false}
|
135
|
+
section.myscout_email_address_from.should == 'send_from@example.com'
|
136
|
+
section.myscout_email_address_copy.should == ''
|
137
|
+
section.myscout_badges_partial.should == true
|
138
|
+
section.myscout_programme_summary.should == true
|
139
|
+
section.myscout_event_reminder_count.should == 4
|
140
|
+
section.myscout_event_reminder_frequency.should == 5
|
141
|
+
section.myscout_payment_reminder_count.should == 6
|
142
|
+
section.myscout_payment_reminder_frequency.should == 7
|
143
|
+
end
|
109
144
|
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
section.type.should == :beavers
|
116
|
-
section.column_names.should == {:column_names => 'names'}
|
117
|
-
section.fields.should == {:fields => true}
|
118
|
-
section.intouch_fields.should == {:intouch_fields => true}
|
119
|
-
section.mobile_fields.should == {:mobile_fields => true}
|
120
|
-
section.group_id.should == 3
|
121
|
-
section.group_name.should == '3rd Somewhere'
|
122
|
-
section.flexi_records.size.should == 1
|
123
|
-
section.flexi_records[0].id.should == 111
|
124
|
-
section.flexi_records[0].name.should == 'Flexi Record 1'
|
125
|
-
section.gocardless.should == true
|
126
|
-
section.myscout_events_expires.should == Date.new(2013, 1, 6)
|
127
|
-
section.myscout_badges_expires.should == Date.new(2013, 1, 7)
|
128
|
-
section.myscout_programme_expires.should == Date.new(2013, 1, 8)
|
129
|
-
section.myscout_events.should == true
|
130
|
-
section.myscout_badges.should == true
|
131
|
-
section.myscout_programme.should == true
|
132
|
-
section.myscout_payments.should == true
|
133
|
-
section.myscout_emails.should == {:email1 => true, :email2 => false}
|
134
|
-
section.myscout_email_address_from.should == 'send_from@example.com'
|
135
|
-
section.myscout_email_address_copy.should == ''
|
136
|
-
section.myscout_badges_partial.should == true
|
137
|
-
section.myscout_programme_summary.should == true
|
138
|
-
section.myscout_event_reminder_count.should == 4
|
139
|
-
section.myscout_event_reminder_frequency.should == 5
|
140
|
-
section.myscout_payment_reminder_count.should == 6
|
141
|
-
section.myscout_payment_reminder_frequency.should == 7
|
145
|
+
it "From cache" do
|
146
|
+
sections = Osm::Section.get_all(@api)
|
147
|
+
HTTParty.should_not_receive(:post)
|
148
|
+
Osm::Section.get_all(@api).should == sections
|
149
|
+
end
|
142
150
|
end
|
143
151
|
|
144
152
|
it "Gets a section" do
|
@@ -148,23 +156,6 @@ describe "Section" do
|
|
148
156
|
section.valid?.should be_true
|
149
157
|
end
|
150
158
|
|
151
|
-
it "Fetches user's permissions" do
|
152
|
-
permissions = Osm::Section.fetch_user_permissions(@api)
|
153
|
-
permissions[1].should_not be_nil
|
154
|
-
permissions[1].should == {
|
155
|
-
:badge => [:read],
|
156
|
-
:member => [:read, :write],
|
157
|
-
:user => [:read, :write, :administer],
|
158
|
-
:register => [:read, :write, :administer],
|
159
|
-
:contact => [:read, :write, :administer],
|
160
|
-
:programme => [:read, :write, :administer],
|
161
|
-
:originator => [],
|
162
|
-
:events => [:read, :write, :administer],
|
163
|
-
:finance => [:read, :write, :administer],
|
164
|
-
:flexi => [:read, :write, :administer],
|
165
|
-
}
|
166
|
-
end
|
167
|
-
|
168
159
|
|
169
160
|
it "Gets the section's notepad" do
|
170
161
|
url = 'https://www.onlinescoutmanager.co.uk/api.php?action=getNotepads'
|
@@ -174,7 +165,7 @@ describe "Section" do
|
|
174
165
|
'userid' => 'user_id',
|
175
166
|
'secret' => 'secret',
|
176
167
|
}
|
177
|
-
HTTParty.should_receive(:post).with(url, {:body => post_data}) { DummyHttpResult.new(:response=>{:code=>'200', :body=>{"1" => "Section 1", "2" => "Section 2"}.to_json}) }
|
168
|
+
HTTParty.should_receive(:post).with(url, {:body => post_data}) { OsmTest::DummyHttpResult.new(:response=>{:code=>'200', :body=>{"1" => "Section 1", "2" => "Section 2"}.to_json}) }
|
178
169
|
section = Osm::Section.new(:id => 1)
|
179
170
|
section.get_notepad(@api).should == 'Section 1'
|
180
171
|
end
|
@@ -188,13 +179,13 @@ describe "Section" do
|
|
188
179
|
'secret' => 'secret',
|
189
180
|
'value' => 'content'
|
190
181
|
}
|
191
|
-
HTTParty.should_receive(:post).with(url, {:body => post_data}) { DummyHttpResult.new(:response=>{:code=>'200', :body=>'{"ok":true}'}) }
|
182
|
+
HTTParty.should_receive(:post).with(url, {:body => post_data}) { OsmTest::DummyHttpResult.new(:response=>{:code=>'200', :body=>'{"ok":true}'}) }
|
192
183
|
section = Osm::Section.new(:id => 1)
|
193
184
|
section.set_notepad(@api, 'content').should be_true
|
194
185
|
end
|
195
186
|
|
196
187
|
it "Sets the section's notepad (fail)" do
|
197
|
-
HTTParty.should_receive(:post) { DummyHttpResult.new(:response=>{:code=>'200', :body=>'{"ok":false}'}) }
|
188
|
+
HTTParty.should_receive(:post) { OsmTest::DummyHttpResult.new(:response=>{:code=>'200', :body=>'{"ok":false}'}) }
|
198
189
|
section = Osm::Section.new(:id => 1)
|
199
190
|
section.set_notepad(@api, 'content').should be_false
|
200
191
|
end
|
@@ -290,30 +281,6 @@ end
|
|
290
281
|
|
291
282
|
|
292
283
|
|
293
|
-
describe "Section::FlexiRecord" do
|
294
|
-
|
295
|
-
it "Create" do
|
296
|
-
fr = Osm::Section::FlexiRecord.new(:id => 1, :name => 'Name')
|
297
|
-
|
298
|
-
fr.id.should == 1
|
299
|
-
fr.name.should == 'Name'
|
300
|
-
fr.valid?.should be_true
|
301
|
-
end
|
302
|
-
|
303
|
-
|
304
|
-
it "Sorts Flexi Records by name" do
|
305
|
-
fr1 = Osm::Section::FlexiRecord.new(:id => 3, :name => 'A')
|
306
|
-
fr2 = Osm::Section::FlexiRecord.new(:id => 2, :name => 'B')
|
307
|
-
fr3 = Osm::Section::FlexiRecord.new(:id => 1, :name => 'C')
|
308
|
-
records = [fr2, fr1, fr3]
|
309
|
-
|
310
|
-
records.sort.should == [fr1, fr2, fr3]
|
311
|
-
end
|
312
|
-
|
313
|
-
end
|
314
|
-
|
315
|
-
|
316
|
-
|
317
284
|
describe "Online Scout Manager API Strangeness" do
|
318
285
|
|
319
286
|
it "handles a section with no type" do
|
data/spec/osm/term_spec.rb
CHANGED
@@ -37,7 +37,7 @@ describe "Term" do
|
|
37
37
|
term.should_not == Osm::Term.new(@attributes.merge(:id => 3))
|
38
38
|
end
|
39
39
|
|
40
|
-
it "Sorts by Section ID, Start date and
|
40
|
+
it "Sorts by Section ID, Start date and th Term ID" do
|
41
41
|
term1 = Osm::Term.new(@attributes.merge(:section_id => 1, :term => 11, :start => (Date.today - 60), :finish => (Date.today - 1)))
|
42
42
|
term2 = Osm::Term.new(@attributes.merge(:section_id => 1, :term => 12, :start => (Date.today - 0), :finish => (Date.today + 0)))
|
43
43
|
term3 = Osm::Term.new(@attributes.merge(:section_id => 1, :term => 13, :start => (Date.today + 1), :finish => (Date.today + 60)))
|
@@ -131,16 +131,24 @@ describe "Term" do
|
|
131
131
|
end
|
132
132
|
|
133
133
|
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
134
|
+
describe "Get all terms" do
|
135
|
+
it "From OSM" do
|
136
|
+
terms = Osm::Term.get_all(@api)
|
137
|
+
terms.size.should == 3
|
138
|
+
terms.map{ |i| i.id }.should == [1, 2, 3]
|
139
|
+
term = terms[0]
|
140
|
+
term.is_a?(Osm::Term).should be_true
|
141
|
+
term.id.should == 1
|
142
|
+
term.name.should == 'Term 1'
|
143
|
+
term.start.should == (Date.today + 31)
|
144
|
+
term.finish.should == (Date.today + 90)
|
145
|
+
end
|
146
|
+
|
147
|
+
it "From cache" do
|
148
|
+
terms = Osm::Term.get_all(@api)
|
149
|
+
HTTParty.should_not_receive(:post)
|
150
|
+
Osm::Term.get_all(@api).should == terms
|
151
|
+
end
|
144
152
|
end
|
145
153
|
|
146
154
|
it "Gets all terms for a section" do
|
@@ -191,7 +199,7 @@ describe "Term" do
|
|
191
199
|
}
|
192
200
|
|
193
201
|
Osm::Term.stub(:get_all) { [] }
|
194
|
-
HTTParty.should_receive(:post).with(url, {:body => post_data}) { DummyHttpResult.new(:response=>{:code=>'200', :body=>'{"terms":{}}'}) }
|
202
|
+
HTTParty.should_receive(:post).with(url, {:body => post_data}) { OsmTest::DummyHttpResult.new(:response=>{:code=>'200', :body=>'{"terms":{}}'}) }
|
195
203
|
|
196
204
|
Osm::Term.create(@api, {
|
197
205
|
:section => 1,
|
@@ -215,7 +223,7 @@ describe "Term" do
|
|
215
223
|
}
|
216
224
|
|
217
225
|
Osm::Term.stub(:get_all) { [] }
|
218
|
-
HTTParty.should_receive(:post).with(url, {:body => post_data}) { DummyHttpResult.new(:response=>{:code=>'200', :body=>'{}'}) }
|
226
|
+
HTTParty.should_receive(:post).with(url, {:body => post_data}) { OsmTest::DummyHttpResult.new(:response=>{:code=>'200', :body=>'{}'}) }
|
219
227
|
|
220
228
|
Osm::Term.create(@api, {
|
221
229
|
:section => 1,
|
@@ -238,7 +246,7 @@ describe "Term" do
|
|
238
246
|
'termid' => 2
|
239
247
|
}
|
240
248
|
Osm::Term.stub(:get_all) { [] }
|
241
|
-
HTTParty.should_receive(:post).with(url, {:body => post_data}) { DummyHttpResult.new(:response=>{:code=>'200', :body=>'{"terms":{}}'}) }
|
249
|
+
HTTParty.should_receive(:post).with(url, {:body => post_data}) { OsmTest::DummyHttpResult.new(:response=>{:code=>'200', :body=>'{"terms":{}}'}) }
|
242
250
|
|
243
251
|
term = Osm::Term.new(:id=>2, :section_id=>1, :name=>'A Term', :start=>Date.new(2010, 01, 01), :finish=>Date.new(2010, 12, 31))
|
244
252
|
term.update(@api).should be_true
|
@@ -257,7 +265,7 @@ describe "Term" do
|
|
257
265
|
'termid' => 2
|
258
266
|
}
|
259
267
|
Osm::Term.stub(:get_all) { [] }
|
260
|
-
HTTParty.should_receive(:post).with(url, {:body => post_data}) { DummyHttpResult.new(:response=>{:code=>'200', :body=>'{}'}) }
|
268
|
+
HTTParty.should_receive(:post).with(url, {:body => post_data}) { OsmTest::DummyHttpResult.new(:response=>{:code=>'200', :body=>'{}'}) }
|
261
269
|
|
262
270
|
term = Osm::Term.new(:id=>2, :section_id=>1, :name=>'A Term', :start=>Date.new(2010, 01, 01), :finish=>Date.new(2010, 12, 31))
|
263
271
|
term.update(@api).should be_false
|
data/spec/spec_helper.rb
CHANGED
@@ -44,6 +44,8 @@ RSpec.configure do |config|
|
|
44
44
|
Osm::configure(@CONFIGURATION)
|
45
45
|
|
46
46
|
@api = Osm::Api.new('user_id', 'secret')
|
47
|
+
Osm::Model.stub(:require_ability_to) {}
|
48
|
+
Osm::Model.stub(:require_access_to_section) {}
|
47
49
|
end
|
48
50
|
end
|
49
51
|
|
@@ -66,5 +68,28 @@ module OsmTest
|
|
66
68
|
def self.clear
|
67
69
|
@@cache = {}
|
68
70
|
end
|
71
|
+
def self.inspect
|
72
|
+
@@cache.inspect
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
class DummyHttpResult
|
77
|
+
def initialize(options={})
|
78
|
+
@response = OsmTest::DummyHttpResponse.new(options[:response])
|
79
|
+
end
|
80
|
+
def response
|
81
|
+
@response
|
82
|
+
end
|
83
|
+
end
|
84
|
+
class DummyHttpResponse
|
85
|
+
def initialize(options={})
|
86
|
+
@options = options
|
87
|
+
end
|
88
|
+
def code
|
89
|
+
@options[:code]
|
90
|
+
end
|
91
|
+
def body
|
92
|
+
@options[:body]
|
93
|
+
end
|
69
94
|
end
|
70
95
|
end
|
data/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: osm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-21 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &88142390 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '3.2'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *88142390
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: httparty
|
27
|
-
requirement: &
|
27
|
+
requirement: &88141970 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0.9'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *88141970
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: active_attr
|
38
|
-
requirement: &
|
38
|
+
requirement: &88141440 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0.6'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *88141440
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: activemodel
|
49
|
-
requirement: &
|
49
|
+
requirement: &88141060 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '3.2'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *88141060
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rake
|
60
|
-
requirement: &
|
60
|
+
requirement: &88140610 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '10.0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *88140610
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
|
-
requirement: &
|
71
|
+
requirement: &88122850 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '2.11'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *88122850
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: fakeweb
|
82
|
-
requirement: &
|
82
|
+
requirement: &88122440 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ~>
|
@@ -87,7 +87,29 @@ dependencies:
|
|
87
87
|
version: '1.3'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *88122440
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: guard-rspec
|
93
|
+
requirement: &88122180 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ~>
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '2.4'
|
99
|
+
type: :development
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: *88122180
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: rb-inotify
|
104
|
+
requirement: &88121560 !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 0.8.8
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: *88121560
|
91
113
|
description: Use the Online Scout Manager API (https://www.onlinescoutmanager.co.uk)
|
92
114
|
to retrieve and save data.
|
93
115
|
email:
|
@@ -101,6 +123,7 @@ files:
|
|
101
123
|
- .travis.yml
|
102
124
|
- CHANGELOG.md
|
103
125
|
- Gemfile
|
126
|
+
- Guardfile
|
104
127
|
- LICENSE.rdoc
|
105
128
|
- README.md
|
106
129
|
- Rakefile
|
@@ -111,10 +134,10 @@ files:
|
|
111
134
|
- lib/osm/api.rb
|
112
135
|
- lib/osm/api_access.rb
|
113
136
|
- lib/osm/due_badges.rb
|
114
|
-
- lib/osm/evening.rb
|
115
137
|
- lib/osm/event.rb
|
116
138
|
- lib/osm/flexi_record.rb
|
117
139
|
- lib/osm/grouping.rb
|
140
|
+
- lib/osm/meeting.rb
|
118
141
|
- lib/osm/member.rb
|
119
142
|
- lib/osm/model.rb
|
120
143
|
- lib/osm/register.rb
|
@@ -125,10 +148,10 @@ files:
|
|
125
148
|
- spec/osm/api_access_spec.rb
|
126
149
|
- spec/osm/api_spec.rb
|
127
150
|
- spec/osm/due_badges_spec.rb
|
128
|
-
- spec/osm/evening_spec.rb
|
129
151
|
- spec/osm/event_spec.rb
|
130
152
|
- spec/osm/flexi_record_spec.rb
|
131
153
|
- spec/osm/grouping_spec.rb
|
154
|
+
- spec/osm/meeting_spec.rb
|
132
155
|
- spec/osm/member_spec.rb
|
133
156
|
- spec/osm/model_spec.rb
|
134
157
|
- spec/osm/osm_spec.rb
|