osm 1.2.22 → 1.2.23

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 5a1c77bba99130c55b0574c0a890c685e99611c2
4
+ data.tar.gz: 5b81b4165fbd1244ae170f310e5968aa5ffa76ad
5
+ SHA512:
6
+ metadata.gz: 996af429a7bc3cebae38f122bffc7b3201e16f61d55a54c4320f83ac1501023bb94ff87d23da474bdf92883828741fdf91b832dc82c01c89aed995eb9bf69631
7
+ data.tar.gz: 087c903f06680b4216c16809dad00b3303b689814c6dc631a25d796154eaf48e39ea9c2a98f3e9cba364e3e1e81cad08e2517a6a94710b62488386c9975b0034
@@ -14,4 +14,5 @@ branches:
14
14
  - staging
15
15
  - /gh(?:\d)+(?:-.+)?/
16
16
  - /dev_ver_\d+\.\d+/
17
+ before_install: gem update bundler
17
18
  script: rake ci:travis
@@ -1,3 +1,11 @@
1
+ ## Version 1.2.23
2
+
3
+ * Geting list of user roles for getting sections and permissions now done using the get_user_roles method of api instances
4
+ * When user has no roles in OSM:
5
+ * get_user_roles will return an empty Array
6
+ * get_user_roles! (new method) will raise an Osm::NoActiveRoles exception
7
+ * Fix 'undefined local method or variable fetch_from_osm' when retrieving badges
8
+
1
9
  ## Version 1.2.22
2
10
 
3
11
  * Fix marking badge as due when not passing a level
data/lib/osm.rb CHANGED
@@ -12,6 +12,7 @@ module Osm
12
12
  class Error < Exception; end
13
13
  class ConnectionError < Error; end
14
14
  class Forbidden < Osm::Error; end
15
+ class NoActiveRoles < Osm::Error; end
15
16
  class ArgumentIsInvalid < ArgumentError; end
16
17
  class ObjectIsInvalid < Error; end
17
18
  class Osm::Error::NoCurrentTerm < Osm::Error
@@ -5,6 +5,8 @@ module Osm
5
5
  class File; end # Ensure the constant exists for the validators
6
6
  class Version; end # Ensure the constant exists for the validators
7
7
 
8
+ SORT_BY = [:id, :version]
9
+
8
10
  # @!attribute [rw] id
9
11
  # @return [Fixnum] the id for the activity
10
12
  # @!attribute [rw] version
@@ -274,13 +276,6 @@ module Osm
274
276
  end
275
277
  end
276
278
 
277
- # Compare Activity based on id then version
278
- def <=>(another)
279
- result = self.id <=> another.try(:id)
280
- result = self.version <=> another.try(:version) if result == 0
281
- return result
282
- end
283
-
284
279
 
285
280
  private
286
281
  class File
@@ -169,6 +169,44 @@ module Osm
169
169
  }))
170
170
  end
171
171
 
172
+ # Get API user's roles in OSM
173
+ # @!macro options_get
174
+ # @return [Array<Hash>] data returned by OSM
175
+ def get_user_roles(*args)
176
+ begin
177
+ get_user_roles!(*args)
178
+ rescue Osm::NoActiveRoles
179
+ return []
180
+ end
181
+ end
182
+
183
+
184
+ # Get API user's roles in OSM
185
+ # @!macro options_get
186
+ # @return [Array<Hash>] data returned by OSM
187
+ # @raises Osm::NoActiveRoles
188
+ def get_user_roles!(options={})
189
+ cache_key = ['user_roles', @user_id]
190
+
191
+ if !options[:no_cache] && Osm::Model.cache_exist?(self, cache_key)
192
+ return Osm::Model.cache_read(self, cache_key)
193
+ end
194
+
195
+ begin
196
+ data = perform_query('api.php?action=getUserRoles')
197
+ Osm::Model.cache_write(self, cache_key, data)
198
+ return data
199
+
200
+ rescue Osm::Error => e
201
+ if e.message.eql?('false')
202
+ fail Osm::NoActiveRoles, "You do not have any active roles in OSM."
203
+ else
204
+ raise e
205
+ end
206
+ end
207
+
208
+ end
209
+
172
210
  # Get API user's permissions
173
211
  # @!macro options_get
174
212
  # @return nil if an error occured or the user does not have access to that section
@@ -180,10 +218,8 @@ module Osm
180
218
  return Osm::Model.cache_read(self, cache_key)
181
219
  end
182
220
 
183
- data = perform_query('api.php?action=getUserRoles')
184
-
185
221
  all_permissions = Hash.new
186
- data.each do |item|
222
+ get_user_roles(options).each do |item|
187
223
  unless item['section'].eql?('discount') # It's not an actual section
188
224
  all_permissions.merge!(Osm::to_i_or_nil(item['sectionid']) => Osm.make_permissions_hash(item['permissions']))
189
225
  end
@@ -242,25 +278,22 @@ module Osm
242
278
  return nil if result.response.body.empty?
243
279
  case result.response.content_type
244
280
  when 'application/json', 'text/html'
245
- raise Osm::Error, result.response.body unless looks_like_json?(result.response.body)
246
- decoded = ActiveSupport::JSON.decode(result.response.body)
247
- osm_error = get_osm_error(decoded)
248
- raise Osm::Error, osm_error if osm_error
249
- return decoded
281
+ begin
282
+ decoded = ActiveSupport::JSON.decode(result.response.body)
283
+ if osm_error = get_osm_error(decoded)
284
+ fail Osm::Error, osm_error if osm_error
285
+ end
286
+ return decoded
287
+ rescue ActiveModel::VERSION::MAJOR.eql?(4) ? JSON::ParserError : MultiJson::ParseError
288
+ fail Osm::Error, result.response.body
289
+ end
250
290
  when 'image/jpeg'
251
291
  return result.response.body
252
292
  else
253
- raise Osm::Error, "Unhandled content-type: #{result.response.content_type}"
293
+ fail Osm::Error, "Unhandled content-type: #{result.response.content_type}"
254
294
  end
255
295
  end
256
296
 
257
- # Check if text looks like it's JSON
258
- # @param [String] text What to look at
259
- # @return [Boolean]
260
- def self.looks_like_json?(text)
261
- (['[', '{'].include?(text[0]))
262
- end
263
-
264
297
  # Get the error returned by OSM
265
298
  # @param data what OSM gave us
266
299
  # @return false if no error message was found
@@ -324,14 +324,14 @@ module Osm
324
324
  @module_completion_data = get_module_completion_data(api, options) if fetched_this_time
325
325
 
326
326
  if @module_completion_data[badge.id].nil? && !fetched_this_time
327
- @module_completion_data = fetch_from_osm
327
+ @module_completion_data = get_module_completion_data(api, options)
328
328
  fetched_this_time = true
329
329
  end
330
330
  data = @module_completion_data[badge.id]
331
331
  raise ArgumentError, "That badge does't exist (bad ID)." if data.nil?
332
332
 
333
333
  if data[badge.version].nil? && !fetched_this_time
334
- @module_completion_data = fetch_from_osm
334
+ @module_completion_data = get_module_completion_data(api, options)
335
335
  data = @module_completion_data[badge.id]
336
336
  fetched_this_time = true
337
337
  end
@@ -511,6 +511,8 @@ module Osm
511
511
 
512
512
 
513
513
  class Data < Osm::Model
514
+ SORT_BY = [:badge, :section_id, :member_id]
515
+
514
516
  # @!attribute [rw] member_id
515
517
  # @return [Fixnum] ID of the member this data relates to
516
518
  # @!attribute [rw] first_name
@@ -843,14 +845,6 @@ module Osm
843
845
  return requirements_updated && due_updated && awarded_updated
844
846
  end
845
847
 
846
- # Compare Badge::Data based on badge, section_id then member_id
847
- def <=>(another)
848
- result = self.badge <=> another.try(:badge)
849
- result = self.section_id <=> another.try(:section_id) if result == 0
850
- result = self.member_id <=> another.try(:member_id) if result == 0
851
- return result
852
- end
853
-
854
848
  def inspect
855
849
  Osm.inspect_instance(self, {:replace_with => {'badge' => :name}})
856
850
  end
@@ -1,6 +1,8 @@
1
1
  module Osm
2
2
 
3
3
  class Budget < Osm::Model
4
+ SORT_BY = [:section_id, :name]
5
+
4
6
  # @!attribute [rw] id
5
7
  # @return [Fixnum] The OSM ID for the budget
6
8
  # @!attribute [rw] section_id
@@ -125,14 +127,6 @@ module Osm
125
127
  return false
126
128
  end
127
129
 
128
-
129
- # Compare Budget based on section_id then name
130
- def <=>(another)
131
- result = self.section_id <=> another.try(:section_id)
132
- result = self.name <=> another.try(:name) if result == 0
133
- return result
134
- end
135
-
136
130
  end # Class Budget
137
131
 
138
132
  end
@@ -6,6 +6,7 @@ module Osm
6
6
 
7
7
  LIST_ATTRIBUTES = [:id, :section_id, :name, :start, :finish, :cost, :location, :notes, :archived, :public_notepad, :confirm_by_date, :allow_changes, :reminders, :attendance_limit, :attendance_limit_includes_leaders, :attendance_reminder, :allow_booking]
8
8
  EXTRA_ATTRIBUTES = [:notepad, :columns, :badges]
9
+ SORT_BY = [:start, :name, :id]
9
10
 
10
11
  # @!attribute [rw] id
11
12
  # @return [Fixnum] the id for the event
@@ -501,15 +502,6 @@ module Osm
501
502
  cost.eql?('0.00')
502
503
  end
503
504
 
504
- # Compare Event based on start, name then id
505
- def <=>(another)
506
- return 0 if self.id == another.try(:id)
507
- result = self.start <=> another.try(:start)
508
- result = self.name <=> another.try(:name) if result == 0
509
- result = self.id <=> another.try(:id) if result == 0
510
- return result
511
- end
512
-
513
505
 
514
506
  private
515
507
  def attendees(api)
@@ -581,6 +573,8 @@ module Osm
581
573
  include ActiveModel::MassAssignmentSecurity if ActiveModel::VERSION::MAJOR < 4
582
574
  include ActiveAttr::Model
583
575
 
576
+ SORT_BY = [:badge_section, :badge_type, :badge_name, :requirement_label]
577
+
584
578
  # @!attribute [rw] badge_type
585
579
  # @return [Symbol] the type of badge
586
580
  # @!attribute [rw] badge_section
@@ -622,19 +616,12 @@ module Osm
622
616
  # Initialize a new Meeting::Activity
623
617
  # @param [Hash] attributes The hash of attributes (see attributes for descriptions, use Symbol of attribute name as the key)
624
618
 
625
- # Compare BadgeLink based on section, type, badge_name, requirement_label, data
626
- def <=>(another)
627
- [:badge_section, :badge_type, :badge_name, :requirement_label].each do |attribute|
628
- result = self.try(:data) <=> another.try(:data)
629
- return result unless result == 0
630
- end
631
- return self.try(:data) <=> another.try(:data)
632
- end
633
-
634
619
  end # Class Event::BadgeLink
635
620
 
636
621
 
637
622
  class Column < Osm::Model
623
+ SORT_BY = [:event, :id]
624
+
638
625
  # @!attribute [rw] id
639
626
  # @return [String] OSM id for the column
640
627
  # @!attribute [rw] name
@@ -717,13 +704,6 @@ module Osm
717
704
  return true
718
705
  end
719
706
 
720
- # Compare Column based on event then id
721
- def <=>(another)
722
- result = self.event <=> another.try(:event)
723
- result = self.id <=> another.try(:id) if result == 0
724
- return result
725
- end
726
-
727
707
  def inspect
728
708
  Osm.inspect_instance(self, options={:replace_with => {'event' => :id}})
729
709
  end
@@ -732,6 +712,8 @@ module Osm
732
712
 
733
713
 
734
714
  class Attendance < Osm::Model
715
+ SORT_BY = [:event, :row]
716
+
735
717
  # @!attribute [rw] member_id
736
718
  # @return [Fixnum] OSM id for the member
737
719
  # @!attribute [rw] grouping__id
@@ -943,13 +925,6 @@ module Osm
943
925
  end
944
926
  end
945
927
 
946
- # Compare Attendance based on event then row
947
- def <=>(another)
948
- result = self.event <=> another.try(:event)
949
- result = self.row <=> another.try(:row) if result == 0
950
- return result
951
- end
952
-
953
928
  def inspect
954
929
  Osm.inspect_instance(self, options={:replace_with => {'event' => :id}})
955
930
  end
@@ -238,6 +238,8 @@ module Osm
238
238
 
239
239
 
240
240
  class Data < Osm::Model
241
+ SORT_BY = [:flexi_record, :grouping_id, :member_id]
242
+
241
243
  # @!attribute [rw] flexi_record
242
244
  # @return [Boolean] The FlexiRecord this column belongs to
243
245
  # @!attribute [rw] member_id
@@ -134,6 +134,8 @@ module Osm
134
134
  end
135
135
 
136
136
  class Donation < Osm::Model
137
+ SORT_BY = [:donation_date]
138
+
137
139
  # @!attribute [rw] donation_date
138
140
  # @return [Date] When the payment was made
139
141
 
@@ -151,15 +153,12 @@ module Osm
151
153
  # @param [Hash] attributes The hash of attributes (see attributes for descriptions, use Symbol of attribute name as the key)
152
154
 
153
155
 
154
- # Compare Payment based on donation_date then note
155
- def <=>(another)
156
- return self.donation_date <=> another.try(:donation_date)
157
- end
158
-
159
156
  end # Class GiftAid::Donation
160
157
 
161
158
 
162
159
  class Data < Osm::Model
160
+ SORT_BY = [:section_id, :grouping_id, :last_name, :first_name]
161
+
163
162
  # @!attribute [rw] member_id
164
163
  # @return [Fixnum] The OSM ID for the member
165
164
  # @!attribute [rw] grouping_id
@@ -279,16 +278,6 @@ module Osm
279
278
  return updated
280
279
  end
281
280
 
282
-
283
- # Compare Data based on section_id, grouping_id, last_name then first_name
284
- def <=>(another)
285
- result = self.section_id <=> another.try(:section_id)
286
- result = self.grouping_id <=> another.try(:grouping_id) if result == 0
287
- result = self.last_name <=> another.try(:last_name) if result == 0
288
- result = self.first_name <=> another.try(:last_name) if result == 0
289
- return result
290
- end
291
-
292
281
  end # Class GiftAid::Data
293
282
 
294
283
  end # Class GiftAid
@@ -1,6 +1,7 @@
1
1
  module Osm
2
2
 
3
3
  class Grouping < Osm::Model
4
+ SORT_BY = [:section_id, :name]
4
5
 
5
6
  # @!attribute [rw] id
6
7
  # @return [Fixnum] the id for grouping
@@ -106,13 +107,6 @@ module Osm
106
107
  return result
107
108
  end
108
109
 
109
- # Compare Grouping based on section_id then name
110
- def <=>(another)
111
- result = self.section_id <=> another.try(:section_id)
112
- result = self.name <=> another.try(:name) if result == 0
113
- return result
114
- end
115
-
116
110
  end # Class Grouping
117
111
 
118
112
  end # Module
@@ -1,6 +1,8 @@
1
1
  module Osm
2
2
 
3
3
  class Invoice < Osm::Model
4
+ SORT_BY = [:section_id, :name, :date]
5
+
4
6
  # @!attribute [rw] id
5
7
  # @return [Fixnum] The OSM ID for the invoice
6
8
  # @!attribute [rw] section_id
@@ -239,14 +241,6 @@ module Osm
239
241
  return items
240
242
  end
241
243
 
242
- # Compare Invoice based on section_id, name then date
243
- def <=>(another)
244
- result = self.section_id <=> another.try(:section_id)
245
- result = self.name <=> another.try(:name) if result == 0
246
- result = self.date <=> another.try(:date) if result == 0
247
- return result
248
- end
249
-
250
244
 
251
245
  private
252
246
  def self.new_invoice_from_data(invoice_data)
@@ -266,6 +260,8 @@ module Osm
266
260
 
267
261
 
268
262
  class Item < Osm::Model
263
+ SORT_BY = [:invoice, :date]
264
+
269
265
  # @!attribute [rw] id
270
266
  # @return [Fixnum] The OSM ID for the invoice item
271
267
  # @!attribute [rw] invoice
@@ -415,13 +411,6 @@ module Osm
415
411
  return 0.0
416
412
  end
417
413
 
418
- # Compare Invoice Item based on invoice then date
419
- def <=>(another)
420
- result = self.invoice <=> another.try(:invoice)
421
- result = self.date <=> another.try(:date) if result == 0
422
- return result
423
- end
424
-
425
414
  end # class Invoice::Item
426
415
 
427
416
  end # class Invoice
@@ -360,6 +360,7 @@ module Osm
360
360
  # Initialize a new Meeting::Activity
361
361
  # @param [Hash] attributes The hash of attributes (see attributes for descriptions, use Symbol of attribute name as the key)
362
362
 
363
+
363
364
  # Compare Activity based on title then activity_id
364
365
  def <=>(another)
365
366
  result = self.title <=> another.try(:title)
@@ -374,6 +375,8 @@ module Osm
374
375
  include ActiveModel::MassAssignmentSecurity if ActiveModel::VERSION::MAJOR < 4
375
376
  include ActiveAttr::Model
376
377
 
378
+ SORT_BY = [:badge_section, :badge_type, :badge_name, :requirement_label]
379
+
377
380
  # @!attribute [rw] badge_type
378
381
  # @return [Symbol] the type of badge
379
382
  # @!attribute [rw] badge_section
@@ -415,15 +418,6 @@ module Osm
415
418
  # Initialize a new Meeting::Activity
416
419
  # @param [Hash] attributes The hash of attributes (see attributes for descriptions, use Symbol of attribute name as the key)
417
420
 
418
- # Compare BadgeLink based on section, type, badge_name, requirement_label, data
419
- def <=>(another)
420
- [:badge_section, :badge_type, :badge_name, :requirement_label].each do |attribute|
421
- result = self.try(:data) <=> another.try(:data)
422
- return result unless result == 0
423
- end
424
- return self.try(:data) <=> another.try(:data)
425
- end
426
-
427
421
  end # Class Meeting::BadgeLink
428
422
 
429
423
  end # Class Meeting
@@ -11,6 +11,8 @@ module Osm
11
11
  include ActiveModel::MassAssignmentSecurity if ActiveModel::VERSION::MAJOR < 4
12
12
  include ActiveAttr::Model
13
13
 
14
+ SORT_BY = [:id]
15
+
14
16
  @@cache = nil # Class to use for caching
15
17
  @@cache_prepend = 'OSMAPI' # Prepended to the key
16
18
  @@cache_ttl = 600 # 10 minutes
@@ -43,12 +45,13 @@ module Osm
43
45
  id.to_i
44
46
  end
45
47
 
46
- # Default compare based on id
48
+ # Compare functions
47
49
  def <=>(another)
48
- return self.id <=> another.try(:id)
50
+ us_values = self.class::SORT_BY.map{ |i| self.try(i) }
51
+ them_values = self.class::SORT_BY.map{ |i| another.try(i) }
52
+ us_values <=> them_values
49
53
  end
50
54
 
51
- # Add other compare functions
52
55
  def <(another)
53
56
  send('<=>', another) < 0
54
57
  end
@@ -158,16 +158,12 @@ module Osm
158
158
  # Initialize a new RegisterField
159
159
  # @param [Hash] attributes The hash of attributes (see attributes for descriptions, use Symbol of attribute name as the key)
160
160
 
161
-
162
- # Compare Field based on id then version
163
- def <=>(another)
164
- return self.id <=> another.try(:id)
165
- end
166
-
167
161
  end # Class Register::Field
168
162
 
169
163
 
170
164
  class Attendance < Osm::Model
165
+ SORT_BY = [:section_id, :grouping_id, :last_name, :first_name]
166
+
171
167
  # @!attribute [rw] member_id
172
168
  # @return [Fixnum] The OSM ID for the member
173
169
  # @!attribute [rw] grouping_id
@@ -224,16 +220,6 @@ module Osm
224
220
  attendance[date] != :yes
225
221
  end
226
222
 
227
-
228
- # Compare Attendance based on section_id, grouping_id, last_name then first_name
229
- def <=>(another)
230
- result = self.section_id <=> another.try(:section_id)
231
- result = self.grouping_id <=> another.try(:grouping_id) if result == 0
232
- result = self.last_name <=> another.try(:last_name) if result == 0
233
- result = self.first_name <=> another.try(:last_name) if result == 0
234
- return result
235
- end
236
-
237
223
  end # Class Register::Attendance
238
224
 
239
225
  end # Class Register
@@ -153,12 +153,10 @@ module Osm
153
153
  return get_from_ids(api, ids, 'section', options, :get_all)
154
154
  end
155
155
 
156
- data = api.perform_query('api.php?action=getUserRoles')
157
-
158
156
  result = Array.new
159
157
  ids = Array.new
160
158
  permissions = Hash.new
161
- data.each do |role_data|
159
+ api.get_user_roles(options).each do |role_data|
162
160
  next if role_data['section'].eql?('discount') # It's not an actual section
163
161
  next if role_data['sectionConfig'].nil? # No config for the section = user hasn't got access
164
162
 
@@ -1,6 +1,7 @@
1
1
  module Osm
2
2
 
3
3
  class Term < Osm::Model
4
+ SORT_BY = [:section_id, :start, :id]
4
5
 
5
6
  # @!attribute [rw] id
6
7
  # @return [Fixnum] the id for the term
@@ -232,14 +233,6 @@ module Osm
232
233
  return (start <= date) && (finish >= date)
233
234
  end
234
235
 
235
- # Compare Term based on section_id, start then id
236
- def <=>(another_term)
237
- result = self.section_id <=> another_term.section_id
238
- result = self.start <=> another_term.start if result == 0
239
- result = self.id <=> another_term.id if result == 0
240
- return result
241
- end
242
-
243
236
  end # Class Term
244
237
 
245
238
  end # Module
@@ -72,6 +72,31 @@ describe "API" do
72
72
  end
73
73
 
74
74
 
75
+ describe "Get user roles" do
76
+
77
+ before :each do
78
+ @api = Osm::Api.new(3, 4)
79
+ end
80
+
81
+ it "Returns what OSM gives on success" do
82
+ @api.stub(:perform_query).with('api.php?action=getUserRoles'){ ['a', 'b'] }
83
+ @api.get_user_roles.should == ['a', 'b']
84
+ end
85
+
86
+ it "User has no roles in OSM" do
87
+ @api.stub(:perform_query).with('api.php?action=getUserRoles'){ raise Osm::Error, 'false' }
88
+ expect{ @api.get_user_roles! }.to raise_error(Osm::NoActiveRoles)
89
+ @api.get_user_roles.should == []
90
+ end
91
+
92
+ it "Reraises any other Osm::Error" do
93
+ @api.stub(:perform_query).with('api.php?action=getUserRoles'){ raise Osm::Error, 'Test' }
94
+ expect{ @api.get_user_roles }.to raise_error(Osm::Error, 'Test')
95
+ end
96
+
97
+ end
98
+
99
+
75
100
  describe "User Permissions" do
76
101
 
77
102
  it "Get from API" do
data/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Osm
2
- VERSION = "1.2.22"
2
+ VERSION = "1.2.23"
3
3
  end
metadata CHANGED
@@ -1,230 +1,205 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: osm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.22
5
- prerelease:
4
+ version: 1.2.23
6
5
  platform: ruby
7
6
  authors:
8
7
  - Robert Gauld
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2016-03-19 00:00:00.000000000 Z
11
+ date: 2016-04-20 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activesupport
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '3.2'
22
- - - <
20
+ - - "<"
23
21
  - !ruby/object:Gem::Version
24
22
  version: '5'
25
23
  type: :runtime
26
24
  prerelease: false
27
25
  version_requirements: !ruby/object:Gem::Requirement
28
- none: false
29
26
  requirements:
30
- - - ! '>='
27
+ - - ">="
31
28
  - !ruby/object:Gem::Version
32
29
  version: '3.2'
33
- - - <
30
+ - - "<"
34
31
  - !ruby/object:Gem::Version
35
32
  version: '5'
36
33
  - !ruby/object:Gem::Dependency
37
34
  name: httparty
38
35
  requirement: !ruby/object:Gem::Requirement
39
- none: false
40
36
  requirements:
41
- - - ~>
37
+ - - "~>"
42
38
  - !ruby/object:Gem::Version
43
39
  version: '0.9'
44
40
  type: :runtime
45
41
  prerelease: false
46
42
  version_requirements: !ruby/object:Gem::Requirement
47
- none: false
48
43
  requirements:
49
- - - ~>
44
+ - - "~>"
50
45
  - !ruby/object:Gem::Version
51
46
  version: '0.9'
52
47
  - !ruby/object:Gem::Dependency
53
48
  name: active_attr
54
49
  requirement: !ruby/object:Gem::Requirement
55
- none: false
56
50
  requirements:
57
- - - ~>
51
+ - - "~>"
58
52
  - !ruby/object:Gem::Version
59
53
  version: '0.8'
60
54
  type: :runtime
61
55
  prerelease: false
62
56
  version_requirements: !ruby/object:Gem::Requirement
63
- none: false
64
57
  requirements:
65
- - - ~>
58
+ - - "~>"
66
59
  - !ruby/object:Gem::Version
67
60
  version: '0.8'
68
61
  - !ruby/object:Gem::Dependency
69
62
  name: activemodel
70
63
  requirement: !ruby/object:Gem::Requirement
71
- none: false
72
64
  requirements:
73
- - - ! '>='
65
+ - - ">="
74
66
  - !ruby/object:Gem::Version
75
67
  version: '3.2'
76
- - - <
68
+ - - "<"
77
69
  - !ruby/object:Gem::Version
78
70
  version: '5'
79
71
  type: :runtime
80
72
  prerelease: false
81
73
  version_requirements: !ruby/object:Gem::Requirement
82
- none: false
83
74
  requirements:
84
- - - ! '>='
75
+ - - ">="
85
76
  - !ruby/object:Gem::Version
86
77
  version: '3.2'
87
- - - <
78
+ - - "<"
88
79
  - !ruby/object:Gem::Version
89
80
  version: '5'
90
81
  - !ruby/object:Gem::Dependency
91
82
  name: dirty_hashy
92
83
  requirement: !ruby/object:Gem::Requirement
93
- none: false
94
84
  requirements:
95
- - - ~>
85
+ - - "~>"
96
86
  - !ruby/object:Gem::Version
97
87
  version: 0.2.1
98
88
  type: :runtime
99
89
  prerelease: false
100
90
  version_requirements: !ruby/object:Gem::Requirement
101
- none: false
102
91
  requirements:
103
- - - ~>
92
+ - - "~>"
104
93
  - !ruby/object:Gem::Version
105
94
  version: 0.2.1
106
95
  - !ruby/object:Gem::Dependency
107
96
  name: rake
108
97
  requirement: !ruby/object:Gem::Requirement
109
- none: false
110
98
  requirements:
111
- - - ~>
99
+ - - "~>"
112
100
  - !ruby/object:Gem::Version
113
101
  version: '10.0'
114
102
  type: :development
115
103
  prerelease: false
116
104
  version_requirements: !ruby/object:Gem::Requirement
117
- none: false
118
105
  requirements:
119
- - - ~>
106
+ - - "~>"
120
107
  - !ruby/object:Gem::Version
121
108
  version: '10.0'
122
109
  - !ruby/object:Gem::Dependency
123
110
  name: rspec
124
111
  requirement: !ruby/object:Gem::Requirement
125
- none: false
126
112
  requirements:
127
- - - ! '>='
113
+ - - ">="
128
114
  - !ruby/object:Gem::Version
129
115
  version: 2.14.1
130
- - - <
116
+ - - "<"
131
117
  - !ruby/object:Gem::Version
132
118
  version: '4'
133
119
  type: :development
134
120
  prerelease: false
135
121
  version_requirements: !ruby/object:Gem::Requirement
136
- none: false
137
122
  requirements:
138
- - - ! '>='
123
+ - - ">="
139
124
  - !ruby/object:Gem::Version
140
125
  version: 2.14.1
141
- - - <
126
+ - - "<"
142
127
  - !ruby/object:Gem::Version
143
128
  version: '4'
144
129
  - !ruby/object:Gem::Dependency
145
130
  name: fakeweb
146
131
  requirement: !ruby/object:Gem::Requirement
147
- none: false
148
132
  requirements:
149
- - - ~>
133
+ - - "~>"
150
134
  - !ruby/object:Gem::Version
151
135
  version: '1.3'
152
136
  type: :development
153
137
  prerelease: false
154
138
  version_requirements: !ruby/object:Gem::Requirement
155
- none: false
156
139
  requirements:
157
- - - ~>
140
+ - - "~>"
158
141
  - !ruby/object:Gem::Version
159
142
  version: '1.3'
160
143
  - !ruby/object:Gem::Dependency
161
144
  name: guard-rspec
162
145
  requirement: !ruby/object:Gem::Requirement
163
- none: false
164
146
  requirements:
165
- - - ~>
147
+ - - "~>"
166
148
  - !ruby/object:Gem::Version
167
149
  version: '4.2'
168
- - - ! '>='
150
+ - - ">="
169
151
  - !ruby/object:Gem::Version
170
152
  version: 4.2.5
171
153
  type: :development
172
154
  prerelease: false
173
155
  version_requirements: !ruby/object:Gem::Requirement
174
- none: false
175
156
  requirements:
176
- - - ~>
157
+ - - "~>"
177
158
  - !ruby/object:Gem::Version
178
159
  version: '4.2'
179
- - - ! '>='
160
+ - - ">="
180
161
  - !ruby/object:Gem::Version
181
162
  version: 4.2.5
182
163
  - !ruby/object:Gem::Dependency
183
164
  name: rb-inotify
184
165
  requirement: !ruby/object:Gem::Requirement
185
- none: false
186
166
  requirements:
187
- - - ~>
167
+ - - "~>"
188
168
  - !ruby/object:Gem::Version
189
169
  version: '0.9'
190
170
  type: :development
191
171
  prerelease: false
192
172
  version_requirements: !ruby/object:Gem::Requirement
193
- none: false
194
173
  requirements:
195
- - - ~>
174
+ - - "~>"
196
175
  - !ruby/object:Gem::Version
197
176
  version: '0.9'
198
177
  - !ruby/object:Gem::Dependency
199
178
  name: coveralls
200
179
  requirement: !ruby/object:Gem::Requirement
201
- none: false
202
180
  requirements:
203
- - - ~>
181
+ - - "~>"
204
182
  - !ruby/object:Gem::Version
205
183
  version: '0.7'
206
184
  type: :development
207
185
  prerelease: false
208
186
  version_requirements: !ruby/object:Gem::Requirement
209
- none: false
210
187
  requirements:
211
- - - ~>
188
+ - - "~>"
212
189
  - !ruby/object:Gem::Version
213
190
  version: '0.7'
214
191
  - !ruby/object:Gem::Dependency
215
192
  name: simplecov
216
193
  requirement: !ruby/object:Gem::Requirement
217
- none: false
218
194
  requirements:
219
- - - ~>
195
+ - - "~>"
220
196
  - !ruby/object:Gem::Version
221
197
  version: '0.7'
222
198
  type: :development
223
199
  prerelease: false
224
200
  version_requirements: !ruby/object:Gem::Requirement
225
- none: false
226
201
  requirements:
227
- - - ~>
202
+ - - "~>"
228
203
  - !ruby/object:Gem::Version
229
204
  version: '0.7'
230
205
  description: Use the Online Scout Manager API (https://www.onlinescoutmanager.co.uk)
@@ -235,9 +210,9 @@ executables: []
235
210
  extensions: []
236
211
  extra_rdoc_files: []
237
212
  files:
238
- - .gitignore
239
- - .rspec
240
- - .travis.yml
213
+ - ".gitignore"
214
+ - ".rspec"
215
+ - ".travis.yml"
241
216
  - CHANGELOG.md
242
217
  - Gemfile
243
218
  - Guardfile
@@ -295,26 +270,25 @@ files:
295
270
  homepage: https://github.com/robertgauld/osm
296
271
  licenses:
297
272
  - BSD 3 clause
273
+ metadata: {}
298
274
  post_install_message:
299
275
  rdoc_options: []
300
276
  require_paths:
301
277
  - lib
302
278
  required_ruby_version: !ruby/object:Gem::Requirement
303
- none: false
304
279
  requirements:
305
- - - ! '>='
280
+ - - ">="
306
281
  - !ruby/object:Gem::Version
307
282
  version: '0'
308
283
  required_rubygems_version: !ruby/object:Gem::Requirement
309
- none: false
310
284
  requirements:
311
- - - ! '>='
285
+ - - ">="
312
286
  - !ruby/object:Gem::Version
313
287
  version: '0'
314
288
  requirements: []
315
289
  rubyforge_project: osm
316
- rubygems_version: 1.8.23.2
290
+ rubygems_version: 2.5.1
317
291
  signing_key:
318
- specification_version: 3
292
+ specification_version: 4
319
293
  summary: Use the Online Scout Manager API
320
294
  test_files: []