osm 0.1.17 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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