osm 0.1.15 → 0.1.16

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ ## Version 0.1.16
2
+
3
+ * Member's grouping attribute:
4
+ * Renamed to grouping\_label
5
+ * Virtual attribute grouping added (maps to grouping\_label currently) marked as depricated as it will use a Grouping object not a String in the future
6
+ * Fix exception when OSM returns empty string when requesting groupings for a section
7
+ * Fix exception when OSM returns empty string when requesting register structure for a section
8
+ * Fix updating of grouping for Member
9
+ * Fix validation error for Member - a leader's joining\_in\_years is -1
10
+ * Add spaces and spaces? methods to Event
11
+
1
12
  ## Version 0.1.15
2
13
 
3
14
  * Rename grouping\_name attribute of Member to grouping
data/lib/osm/event.rb CHANGED
@@ -325,8 +325,32 @@ module Osm
325
325
  (attendance_limit != 0)
326
326
  end
327
327
 
328
+ # Whether there are spaces left for the event
329
+ # @param [Osm::Api] api The api to use to make the request
330
+ # @return [Boolean] whether there are spaces left for the event
331
+ def spaces?(api)
332
+ return true unless limited_attendance?
333
+ return attendance_limit > attendees(api)
334
+ end
335
+
336
+ # Get the number of spaces left for the event
337
+ # @param [Osm::Api] api The api to use to make the request
338
+ # @return [Fixnum, nil] the number of spaces left (nil if there is no attendance limit)
339
+ def spaces(api)
340
+ return nil unless limited_attendance?
341
+ return attendance_limit - attendees(api)
342
+ end
343
+
328
344
 
329
345
  private
346
+ def attendees(api)
347
+ attendees = 0
348
+ get_attendance(api).each do |a|
349
+ attendees += 1 unless attendance_limit_includes_leaders && (a.grouping_id == -2)
350
+ end
351
+ return attendees
352
+ end
353
+
330
354
  def self.new_event_from_data(event_data)
331
355
  event = Osm::Event.new(
332
356
  :id => Osm::to_i_or_nil(event_data['eventid']),
data/lib/osm/grouping.rb CHANGED
@@ -44,16 +44,18 @@ module Osm
44
44
  data = api.perform_query("users.php?action=getPatrols&sectionid=#{section_id}")
45
45
 
46
46
  result = Array.new
47
- data['patrols'].each do |item|
48
- result.push Osm::Grouping.new({
49
- :id => Osm::to_i_or_nil(item['patrolid']),
50
- :section_id => section_id,
51
- :name => item['name'],
52
- :active => (item['active'] == 1),
53
- :points => Osm::to_i_or_nil(item['points']),
54
- })
47
+ if data.is_a?(Hash) && data['patrols'].is_a?(Array)
48
+ data['patrols'].each do |item|
49
+ result.push Osm::Grouping.new({
50
+ :id => Osm::to_i_or_nil(item['patrolid']),
51
+ :section_id => section_id,
52
+ :name => item['name'],
53
+ :active => (item['active'] == 1),
54
+ :points => Osm::to_i_or_nil(item['points']),
55
+ })
56
+ end
57
+ cache_write(api, cache_key, result)
55
58
  end
56
- cache_write(api, cache_key, result)
57
59
 
58
60
  return result
59
61
  end
data/lib/osm/member.rb CHANGED
@@ -74,7 +74,7 @@ module Osm
74
74
  # @return [Fixnum] the grouping within the section that the member belongs to
75
75
  # @!attribute [rw] grouping_leader
76
76
  # @return [Fixnum] whether the member is the grouping leader (0=no, 1=seconder/APL, 2=sixer/PL)
77
- # @!attribute [rw] grouping
77
+ # @!attribute [rw] grouping_label
78
78
  # @return [Fixnum] the grouping within the section that the member belongs to (as displayed in OSM, if member was retrieved from OSM)
79
79
  # @!attribute [rw] joined
80
80
  # @return [Date] when the member joined the section
@@ -118,7 +118,7 @@ module Osm
118
118
  attribute :custom8, :type => String, :default => ''
119
119
  attribute :custom9, :type => String, :default => ''
120
120
  attribute :grouping_id, :type => Integer
121
- attribute :grouping, :type => String, :default => ''
121
+ attribute :grouping_label, :type => String, :default => ''
122
122
  attribute :grouping_leader, :type => Integer
123
123
  attribute :joined, :type => Date
124
124
  attribute :age, :type => String
@@ -128,14 +128,14 @@ module Osm
128
128
  :phone1, :phone2, :phone3, :phone4, :address, :address2, :date_of_birth, :started,
129
129
  :joining_in_years, :parents, :notes, :medical, :religion, :school, :ethnicity, :subs,
130
130
  :custom1, :custom2, :custom3, :custom4, :custom5, :custom6, :custom7, :custom8, :custom9,
131
- :grouping_id, :grouping, :grouping_leader, :joined, :age, :joined_years
131
+ :grouping_id, :grouping_label, :grouping_leader, :joined, :age, :joined_years
132
132
 
133
133
  validates_numericality_of :id, :only_integer=>true, :greater_than=>0, :unless => Proc.new { |r| r.id.nil? }
134
134
  validates_numericality_of :section_id, :only_integer=>true, :greater_than=>0
135
135
  validates_numericality_of :grouping_id, :only_integer=>true, :greater_than_or_equal_to=>-2
136
136
  validates_numericality_of :grouping_leader, :only_integer=>true, :greater_than_or_equal_to=>0, :less_than_or_equal_to=>2
137
137
  validates_numericality_of :joined_years, :only_integer=>true, :greater_than_or_equal_to=>-1, :allow_nil=>true
138
- validates_numericality_of :joining_in_years, :only_integer=>true, :greater_than_or_equal_to=>0, :allow_nil=>true
138
+ validates_numericality_of :joining_in_years, :only_integer=>true, :greater_than_or_equal_to=>-1, :allow_nil=>true
139
139
  validates_presence_of :first_name
140
140
  validates_presence_of :last_name
141
141
  validates_presence_of :date_of_birth
@@ -200,7 +200,7 @@ module Osm
200
200
  :custom8 => item['custom8'],
201
201
  :custom9 => item['custom9'],
202
202
  :grouping_id => Osm::to_i_or_nil(item['patrolid']),
203
- :grouping => item['patrol'],
203
+ :grouping_label => item['patrol'],
204
204
  :grouping_leader => Osm::to_i_or_nil(item['patrolleader']),
205
205
  :joined => Osm::parse_date(item['joined']),
206
206
  :age => item['age'].gsub(' ', ''),
@@ -213,6 +213,20 @@ module Osm
213
213
  end
214
214
 
215
215
 
216
+ # @deprecated use grouping_label instead
217
+ # @return [String] the grouping as displayed in OSM
218
+ # TODO - Use a Grouping object not String when upping the version
219
+ def grouping
220
+ return self.grouping_label
221
+ end
222
+ # @deprecated use grouping_label instead
223
+ # TODO - Use a Grouping object not String when upping the version
224
+ def grouping=(new_grouping)
225
+ return self.grouping_label = new_grouping
226
+ end
227
+
228
+
229
+
216
230
  # @!method initialize
217
231
  # Initialize a new Member
218
232
  # @param [Hash] attributes the hash of attributes (see attributes for descriptions, use Symbol of attribute name as the key)
@@ -286,8 +300,6 @@ module Osm
286
300
  'dob' => date_of_birth.strftime(Osm::OSM_DATE_FORMAT),
287
301
  'started' => started.strftime(Osm::OSM_DATE_FORMAT),
288
302
  'startedsection' => joined.strftime(Osm::OSM_DATE_FORMAT),
289
- 'patrolid' => grouping_id,
290
- 'patrolleader' => grouping_leader,
291
303
  'email1' => email1,
292
304
  'email2' => email2,
293
305
  'email3' => email3,
@@ -327,6 +339,14 @@ module Osm
327
339
  result &= (data[column] == value.to_s)
328
340
  end
329
341
 
342
+ data = api.perform_query("users.php?action=updateMemberPatrol", {
343
+ 'scoutid' => self.id,
344
+ 'patrolid' => grouping_id,
345
+ 'pl' => grouping_leader,
346
+ 'sectionid' => section_id,
347
+ })
348
+ result &= ((data['patrolid'].to_i == grouping_id) && (data['patrolleader'].to_i == grouping_leader))
349
+
330
350
  return result
331
351
  end
332
352
 
data/lib/osm/register.rb CHANGED
@@ -20,17 +20,21 @@ module Osm
20
20
  data = api.perform_query("users.php?action=registerStructure&sectionid=#{section_id}&termid=#{term_id}")
21
21
 
22
22
  structure = []
23
- data.each do |item|
24
- item['rows'].each do |row|
25
- structure.push Field.new(
26
- :id => row['field'],
27
- :name => row['name'],
28
- :tooltip => row['tooltip'],
29
- )
23
+ if data.is_a?(Array)
24
+ data.each do |item|
25
+ if item.is_a?(Hash) && item['rows'].is_a?(Array)
26
+ item['rows'].each do |row|
27
+ structure.push Field.new(
28
+ :id => row['field'],
29
+ :name => row['name'],
30
+ :tooltip => row['tooltip'],
31
+ )
32
+ end
33
+ end
30
34
  end
31
35
  end
32
- Osm::Model.cache_write(api, cache_key, structure)
33
36
 
37
+ Osm::Model.cache_write(api, cache_key, structure) unless structure.nil?
34
38
  return structure
35
39
  end
36
40
 
@@ -51,23 +55,27 @@ module Osm
51
55
 
52
56
  data = api.perform_query("users.php?action=register&sectionid=#{section_id}&termid=#{term_id}")
53
57
 
54
- data = data['items']
55
58
  to_return = []
56
- data.each do |item|
57
- unless item['scoutid'].to_i < 0 # It's a total row
58
- to_return.push Osm::Register::Attendance.new(
59
- :member_id => Osm::to_i_or_nil(item['scoutid']),
60
- :grouping_id => Osm::to_i_or_nil(item ['patrolid']),
61
- :section_id => section_id,
62
- :first_name => item['firstname'],
63
- :last_name => item['lastname'],
64
- :total => item['total'].to_i,
65
- :attendance => item.select { |key, value| key.to_s.match(Osm::OSM_DATE_REGEX) }.
66
- inject({}){ |new_hash,(date, attendance)| new_hash[Date.strptime(date, Osm::OSM_DATE_FORMAT)] = attendance; new_hash },
67
- )
59
+ if data.is_a?(Hash) && data['items'].is_a?(Array)
60
+ data = data['items']
61
+ data.each do |item|
62
+ if item.is_a?(Hash)
63
+ unless item['scoutid'].to_i < 0 # It's a total row
64
+ to_return.push Osm::Register::Attendance.new(
65
+ :member_id => Osm::to_i_or_nil(item['scoutid']),
66
+ :grouping_id => Osm::to_i_or_nil(item ['patrolid']),
67
+ :section_id => section_id,
68
+ :first_name => item['firstname'],
69
+ :last_name => item['lastname'],
70
+ :total => item['total'].to_i,
71
+ :attendance => item.select { |key, value| key.to_s.match(Osm::OSM_DATE_REGEX) }.
72
+ inject({}){ |new_hash,(date, attendance)| new_hash[Date.strptime(date, Osm::OSM_DATE_FORMAT)] = attendance; new_hash },
73
+ )
74
+ end
75
+ end
68
76
  end
77
+ Osm::Model.cache_write(api, cache_key, to_return)
69
78
  end
70
- Osm::Model.cache_write(api, cache_key, to_return)
71
79
  return to_return
72
80
  end
73
81
 
@@ -51,6 +51,7 @@ describe "Event" do
51
51
  Osm::Event.new(:attendance_limit => 1).limited_attendance?.should be_true
52
52
  end
53
53
 
54
+
54
55
  it "Create Event::Attendance" do
55
56
  data = {
56
57
  :member_id => 1,
@@ -204,6 +205,108 @@ describe "Event" do
204
205
  event.id.should == 2
205
206
  end
206
207
 
208
+ describe "Tells if there are spaces" do
209
+
210
+ it "No limit" do
211
+ event = Osm::Event.new(:attendance_limit => 0, :id => 1, :section_id => 2)
212
+ event.spaces?(@api).should be_true
213
+ event.spaces(@api).should == nil
214
+ end
215
+
216
+ it "Under limit" do
217
+ FakeWeb.register_uri(:post, 'https://www.onlinescoutmanager.co.uk/events.php?action=getEventAttendance&eventid=1&sectionid=2&termid=3', :body => {
218
+ 'identifier' => 'scoutid',
219
+ 'eventid' => '1',
220
+ 'items' => [
221
+ {
222
+ 'scoutid' => '4',
223
+ 'attending' => 'Yes',
224
+ 'firstname' => 'First',
225
+ 'lastname' => 'Last',
226
+ 'dob' => '1980-01-02',
227
+ 'patrolid' => '2',
228
+ 'f_1' => 'a',
229
+ },
230
+ ]
231
+ }.to_json)
232
+ Osm::Term.stub(:get_current_term_for_section) { Osm::Term.new(:id => 3) }
233
+
234
+ event = Osm::Event.new(:attendance_limit => 2, :id => 1, :section_id => 2)
235
+ event.spaces?(@api).should be_true
236
+ event.spaces(@api).should == 1
237
+ end
238
+
239
+ it "Over limit" do
240
+ FakeWeb.register_uri(:post, 'https://www.onlinescoutmanager.co.uk/events.php?action=getEventAttendance&eventid=1&sectionid=2&termid=3', :body => {
241
+ 'identifier' => 'scoutid',
242
+ 'eventid' => '1',
243
+ 'items' => [
244
+ {
245
+ 'scoutid' => '4',
246
+ 'attending' => 'Yes',
247
+ 'firstname' => 'First',
248
+ 'lastname' => 'Last',
249
+ 'dob' => '1980-01-02',
250
+ 'patrolid' => '2',
251
+ 'f_1' => 'a',
252
+ },{
253
+ 'scoutid' => '5',
254
+ 'attending' => 'Yes',
255
+ 'firstname' => 'First',
256
+ 'lastname' => 'Last',
257
+ 'dob' => '1980-01-02',
258
+ 'patrolid' => '2',
259
+ 'f_1' => 'a',
260
+ },{
261
+ 'scoutid' => '6',
262
+ 'attending' => 'Yes',
263
+ 'firstname' => 'First',
264
+ 'lastname' => 'Last',
265
+ 'dob' => '1980-01-02',
266
+ 'patrolid' => '2',
267
+ 'f_1' => 'a',
268
+ }
269
+ ]
270
+ }.to_json)
271
+ Osm::Term.stub(:get_current_term_for_section) { Osm::Term.new(:id => 3) }
272
+
273
+ event = Osm::Event.new(:attendance_limit => 2, :id => 1, :section_id => 2)
274
+ event.spaces?(@api).should be_false
275
+ event.spaces(@api).should == -1
276
+ end
277
+
278
+ it "At limit" do
279
+ FakeWeb.register_uri(:post, 'https://www.onlinescoutmanager.co.uk/events.php?action=getEventAttendance&eventid=1&sectionid=2&termid=3', :body => {
280
+ 'identifier' => 'scoutid',
281
+ 'eventid' => '1',
282
+ 'items' => [
283
+ {
284
+ 'scoutid' => '4',
285
+ 'attending' => 'Yes',
286
+ 'firstname' => 'First',
287
+ 'lastname' => 'Last',
288
+ 'dob' => '1980-01-02',
289
+ 'patrolid' => '2',
290
+ 'f_1' => 'a',
291
+ },{
292
+ 'scoutid' => '5',
293
+ 'attending' => 'Yes',
294
+ 'firstname' => 'First',
295
+ 'lastname' => 'Last',
296
+ 'dob' => '1980-01-02',
297
+ 'patrolid' => '2',
298
+ 'f_1' => 'a',
299
+ }
300
+ ]
301
+ }.to_json)
302
+ Osm::Term.stub(:get_current_term_for_section) { Osm::Term.new(:id => 3) }
303
+
304
+ event = Osm::Event.new(:attendance_limit => 2, :id => 1, :section_id => 2)
305
+ event.spaces?(@api).should be_false
306
+ event.spaces(@api).should == 0
307
+ end
308
+
309
+ end
207
310
 
208
311
  it "Create (succeded)" do
209
312
  url = 'https://www.onlinescoutmanager.co.uk/events.php?action=addEvent&sectionid=1'
@@ -3,24 +3,34 @@ require 'spec_helper'
3
3
 
4
4
  describe "Grouping" do
5
5
 
6
- it "Create" do
7
- body = {'patrols' => [{
8
- 'patrolid' => 1,
9
- 'name' => 'Patrol Name',
10
- 'active' => 1,
11
- 'points' => '3',
12
- }]}
13
- FakeWeb.register_uri(:post, "https://www.onlinescoutmanager.co.uk/users.php?action=getPatrols&sectionid=2", :body => body.to_json)
6
+ describe "Using the API" do
7
+
8
+ it "Create" do
9
+ body = {'patrols' => [{
10
+ 'patrolid' => 1,
11
+ 'name' => 'Patrol Name',
12
+ 'active' => 1,
13
+ 'points' => '3',
14
+ }]}
15
+ FakeWeb.register_uri(:post, "https://www.onlinescoutmanager.co.uk/users.php?action=getPatrols&sectionid=2", :body => body.to_json)
16
+
17
+ patrols = Osm::Grouping.get_for_section(@api, 2)
18
+ patrols.size.should == 1
19
+ patrol = patrols[0]
20
+ patrol.id.should == 1
21
+ patrol.section_id.should == 2
22
+ patrol.name.should == 'Patrol Name'
23
+ patrol.active.should == true
24
+ patrol.points.should == 3
25
+ patrol.valid?.should be_true
26
+ end
27
+
28
+ it "Handles no data" do
29
+ FakeWeb.register_uri(:post, "https://www.onlinescoutmanager.co.uk/users.php?action=getPatrols&sectionid=2", :body => '')
30
+ patrols = Osm::Grouping.get_for_section(@api, 2)
31
+ patrols.size.should == 0
32
+ end
14
33
 
15
- patrols = Osm::Grouping.get_for_section(@api, 2)
16
- patrols.size.should == 1
17
- patrol = patrols[0]
18
- patrol.id.should == 1
19
- patrol.section_id.should == 2
20
- patrol.name.should == 'Patrol Name'
21
- patrol.active.should == true
22
- patrol.points.should == 3
23
- patrol.valid?.should be_true
24
34
  end
25
35
 
26
36
  end
@@ -41,7 +41,7 @@ describe "Member" do
41
41
  :custom9 => 'Custom Field 9',
42
42
  :grouping_id => '3',
43
43
  :grouping_leader => 0,
44
- :grouping => 'Grouping',
44
+ :grouping_label => 'Grouping',
45
45
  :joined => '2006-01-07',
46
46
  :age => '06/07',
47
47
  :joined_years => 1,
@@ -83,7 +83,7 @@ describe "Member" do
83
83
  member.custom8.should == 'Custom Field 8'
84
84
  member.custom9.should == 'Custom Field 9'
85
85
  member.grouping_id.should == 3
86
- member.grouping.should == 'Grouping'
86
+ member.grouping_label.should == 'Grouping'
87
87
  member.grouping_leader.should == 0
88
88
  member.joined.should == Date.new(2006, 1, 7)
89
89
  member.age.should == '06/07'
@@ -374,17 +374,30 @@ describe "Member" do
374
374
  body = (body_data.inject({}) {|h,(k,v)| h[k]=v.to_s; h}).to_json
375
375
 
376
376
  body_data.each do |column, value|
377
- HTTParty.should_receive(:post).with(url, {:body => {
378
- 'apiid' => @CONFIGURATION[:api][:osm][:id],
379
- 'token' => @CONFIGURATION[:api][:osm][:token],
380
- 'userid' => 'user_id',
381
- 'secret' => 'secret',
382
- 'scoutid' => member.id,
383
- 'column' => column,
384
- 'value' => value,
385
- 'sectionid' => member.section_id,
386
- }}) { DummyHttpResult.new(:response=>{:code=>'200', :body=>body}) }
377
+ unless ['patrolid', 'patrolleader'].include?(column)
378
+ HTTParty.should_receive(:post).with(url, {:body => {
379
+ 'apiid' => @CONFIGURATION[:api][:osm][:id],
380
+ 'token' => @CONFIGURATION[:api][:osm][:token],
381
+ 'userid' => 'user_id',
382
+ 'secret' => 'secret',
383
+ 'scoutid' => member.id,
384
+ 'column' => column,
385
+ 'value' => value,
386
+ 'sectionid' => member.section_id,
387
+ }}) { DummyHttpResult.new(:response=>{:code=>'200', :body=>body}) }
388
+ end
387
389
  end
390
+ HTTParty.should_receive(:post).with('https://www.onlinescoutmanager.co.uk/users.php?action=updateMemberPatrol', {:body => {
391
+ 'apiid' => @CONFIGURATION[:api][:osm][:id],
392
+ 'token' => @CONFIGURATION[:api][:osm][:token],
393
+ 'userid' => 'user_id',
394
+ 'secret' => 'secret',
395
+ 'scoutid' => member.id,
396
+ 'patrolid' => member.grouping_id,
397
+ 'pl' => member.grouping_leader,
398
+ 'sectionid' => member.section_id,
399
+ }}) { DummyHttpResult.new(:response=>{:code=>'200', :body=>body}) }
400
+
388
401
  member.update(@api).should be_true
389
402
  end
390
403
 
@@ -152,6 +152,19 @@ describe "Register" do
152
152
  reg.last_name.should == 'Last'
153
153
  end
154
154
 
155
+ it "Handles no data" do
156
+ FakeWeb.register_uri(:post, "https://www.onlinescoutmanager.co.uk/users.php?action=registerStructure&sectionid=1&termid=2", :body => '')
157
+ register_structure = Osm::Register.get_structure(@api, 1, 2)
158
+ register_structure.is_a?(Array).should be_true
159
+ register_structure.size.should == 0
160
+
161
+
162
+ FakeWeb.register_uri(:post, "https://www.onlinescoutmanager.co.uk/users.php?action=register&sectionid=1&termid=2", :body => '')
163
+ register = Osm::Register.get_attendance(@api, 1, 2)
164
+ register.is_a?(Array).should be_true
165
+ register.size.should == 0
166
+ end
167
+
155
168
  end
156
169
 
157
170
  end
data/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Osm
2
- VERSION = "0.1.15"
2
+ VERSION = "0.1.16"
3
3
  end
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.1.15
4
+ version: 0.1.16
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-01-21 00:00:00.000000000Z
12
+ date: 2013-02-02 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &83848700 !ruby/object:Gem::Requirement
16
+ requirement: &88296760 !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: *83848700
24
+ version_requirements: *88296760
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: httparty
27
- requirement: &83848170 !ruby/object:Gem::Requirement
27
+ requirement: &88296420 !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: *83848170
35
+ version_requirements: *88296420
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: active_attr
38
- requirement: &83845760 !ruby/object:Gem::Requirement
38
+ requirement: &88296130 !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: *83845760
46
+ version_requirements: *88296130
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activemodel
49
- requirement: &83845500 !ruby/object:Gem::Requirement
49
+ requirement: &88295670 !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: *83845500
57
+ version_requirements: *88295670
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rake
60
- requirement: &83845130 !ruby/object:Gem::Requirement
60
+ requirement: &88295400 !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: *83845130
68
+ version_requirements: *88295400
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
- requirement: &83828750 !ruby/object:Gem::Requirement
71
+ requirement: &88295160 !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: *83828750
79
+ version_requirements: *88295160
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: fakeweb
82
- requirement: &83828240 !ruby/object:Gem::Requirement
82
+ requirement: &88294750 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: '1.3'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *83828240
90
+ version_requirements: *88294750
91
91
  description: Use the Online Scout Manager API (https://www.onlinescoutmanager.co.uk)
92
92
  to retrieve and save data.
93
93
  email: