osm 0.1.17 → 0.2.0

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.
@@ -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 User Permissions" do
103
+ describe "Get items from ids" do
96
104
 
97
- it "From cache" do
98
- permissions = {1 => {:a => [:read, :write]}, 2 => {:a => [:read]}}
99
- OsmTest::Cache.should_receive('exist?').with('OSMAPI-osm-permissions-user_id') { true }
100
- OsmTest::Cache.should_receive('read').with('OSMAPI-osm-permissions-user_id') { permissions }
101
- ModelTester.get_user_permissions(@api).should == permissions
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 "From API" do
105
- permissions = {1 => {:a => [:read, :write]}, 2 => {:a => [:read]}}
106
- OsmTest::Cache.should_receive('exist?').with('OSMAPI-osm-permissions-user_id') { false }
107
- Osm::Section.should_receive('fetch_user_permissions').with(@api) { permissions }
108
- ModelTester.get_user_permissions(@api).should == permissions
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 "Set User Permissions" do
123
-
124
- it "All Sections" do
125
- permissions = {1 => {:a => [:read, :write]}, 2 => {:a => [:read]}}
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
- it "Single section" do
131
- permissions = {1 => {:a => [:read, :write]}, 2 => {:a => [:read]}}
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
@@ -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),
@@ -9,7 +9,7 @@ describe "Section" do
9
9
  @attributes = {
10
10
  :id => 1,
11
11
  :name => 'Name',
12
- :subscription_level => :silver,
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 == :silver
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 == :unknown
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
- it "Gets all sections" do
107
- sections = Osm::Section.get_all(@api)
108
- sections.map{ |i| i.id }.should == [1, 2]
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
- section = sections[0]
111
- section.id.should == 1
112
- section.name.should == 'Section 1'
113
- section.subscription_level.should == :bronze
114
- section.subscription_expires.should == Date.new(2013, 1, 5)
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
@@ -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 then Term ID" do
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
- it "Gets all terms" do
135
- terms = Osm::Term.get_all(@api)
136
- terms.size.should == 3
137
- terms.map{ |i| i.id }.should == [1, 2, 3]
138
- term = terms[0]
139
- term.is_a?(Osm::Term).should be_true
140
- term.id.should == 1
141
- term.name.should == 'Term 1'
142
- term.start.should == (Date.today + 31)
143
- term.finish.should == (Date.today + 90)
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
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Osm
2
- VERSION = "0.1.17"
2
+ VERSION = "0.2.0"
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.17
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-05 00:00:00.000000000Z
12
+ date: 2013-02-21 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &80603000 !ruby/object:Gem::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: *80603000
24
+ version_requirements: *88142390
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: httparty
27
- requirement: &80601890 !ruby/object:Gem::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: *80601890
35
+ version_requirements: *88141970
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: active_attr
38
- requirement: &80600900 !ruby/object:Gem::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: *80600900
46
+ version_requirements: *88141440
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activemodel
49
- requirement: &80599810 !ruby/object:Gem::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: *80599810
57
+ version_requirements: *88141060
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rake
60
- requirement: &80599380 !ruby/object:Gem::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: *80599380
68
+ version_requirements: *88140610
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
- requirement: &80598830 !ruby/object:Gem::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: *80598830
79
+ version_requirements: *88122850
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: fakeweb
82
- requirement: &80596730 !ruby/object:Gem::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: *80596730
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