osm 1.2.14 → 1.2.15.dev
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/CHANGELOG.md +32 -0
- data/lib/osm/activity.rb +66 -35
- data/lib/osm/api.rb +7 -5
- data/lib/osm/badge.rb +371 -182
- data/lib/osm/badges.rb +28 -20
- data/lib/osm/event.rb +63 -55
- data/lib/osm/meeting.rb +56 -43
- data/lib/osm/member.rb +2 -2
- data/lib/osm/model.rb +1 -1
- data/spec/osm/activity_spec.rb +33 -17
- data/spec/osm/api_spec.rb +1 -1
- data/spec/osm/badge_spec.rb +562 -642
- data/spec/osm/badges_spec.rb +92 -51
- data/spec/osm/event_spec.rb +95 -75
- data/spec/osm/meeting_spec.rb +53 -50
- data/spec/osm/member_spec.rb +10 -0
- data/version.rb +1 -1
- metadata +4 -4
data/spec/osm/meeting_spec.rb
CHANGED
@@ -76,36 +76,6 @@ describe "Meeting" do
|
|
76
76
|
end
|
77
77
|
|
78
78
|
|
79
|
-
describe "Meeting::BadgeLink" do
|
80
|
-
|
81
|
-
it "Create" do
|
82
|
-
bl = Osm::Meeting::BadgeLink.new(
|
83
|
-
:badge_key => 'artist',
|
84
|
-
:badge_type => :activity,
|
85
|
-
:requirement_key => 'a_01',
|
86
|
-
:badge_section => :cubs,
|
87
|
-
:label => 'Cubs Artist Activity - A: Poster',
|
88
|
-
)
|
89
|
-
|
90
|
-
bl.badge_key.should == 'artist'
|
91
|
-
bl.badge_type.should == :activity
|
92
|
-
bl.requirement_key.should == 'a_01'
|
93
|
-
bl.badge_section.should == :cubs
|
94
|
-
bl.label.should == 'Cubs Artist Activity - A: Poster'
|
95
|
-
bl.valid?.should be_true
|
96
|
-
end
|
97
|
-
|
98
|
-
it "Sorts by label" do
|
99
|
-
a1 = Osm::Meeting::BadgeLink.new(:label => 'a')
|
100
|
-
a2 = Osm::Meeting::BadgeLink.new(:label => 'b')
|
101
|
-
|
102
|
-
data = [a2, a1]
|
103
|
-
data.sort.should == [a1, a2]
|
104
|
-
end
|
105
|
-
|
106
|
-
end
|
107
|
-
|
108
|
-
|
109
79
|
describe 'Using the API' do
|
110
80
|
|
111
81
|
it "Fetch the term's programme for a section" do
|
@@ -116,13 +86,19 @@ describe "Meeting" do
|
|
116
86
|
{"activityid" => "7", "title" => "Activity 7", "notes" => "", "eveningid" => "5"}
|
117
87
|
]},
|
118
88
|
"badgelinks" => {"5" => [{
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
89
|
+
'badge' => 'artist',
|
90
|
+
'badgeLongName' => 'Artist',
|
91
|
+
'badge_id' => '180',
|
92
|
+
'badge_version' => '0',
|
93
|
+
'badgetype' => 'activity',
|
94
|
+
'badgetypeLongName' => 'Activity',
|
95
|
+
'column_id' => '1234',
|
96
|
+
'columnname' => '1234',
|
97
|
+
'columnnameLongName' => 'Guide Dogs',
|
98
|
+
'data' => '',
|
99
|
+
'label' => 'Disability Awareness Activity Guide dogs',
|
100
|
+
'section' => 'cubs',
|
101
|
+
'sectionLongName' => 'Cubs',
|
126
102
|
}]},
|
127
103
|
}
|
128
104
|
FakeWeb.register_uri(:post, "https://www.onlinescoutmanager.co.uk/programme.php?action=getProgramme§ionid=3&termid=4", :body => body.to_json, :content_type => 'application/json')
|
@@ -149,11 +125,14 @@ describe "Meeting" do
|
|
149
125
|
activity.notes.should == 'Some notes'
|
150
126
|
meeting.badge_links.size.should == 1
|
151
127
|
badge_link = meeting.badge_links[0]
|
152
|
-
badge_link.badge_key.should == 'artist'
|
153
128
|
badge_link.badge_type.should == :activity
|
154
|
-
badge_link.requirement_key.should == 'a_01'
|
155
129
|
badge_link.badge_section.should == :cubs
|
156
|
-
badge_link.
|
130
|
+
badge_link.badge_name.should == 'Artist'
|
131
|
+
badge_link.badge_id.should == 180
|
132
|
+
badge_link.badge_version.should == 0
|
133
|
+
badge_link.requirement_id.should == 1234
|
134
|
+
badge_link.requirement_label.should == 'Guide Dogs'
|
135
|
+
badge_link.data.should == ''
|
157
136
|
end
|
158
137
|
|
159
138
|
it "Fetch badge requirements for a meeting (from API)" do
|
@@ -216,19 +195,34 @@ describe "Meeting" do
|
|
216
195
|
],
|
217
196
|
'badges' => [
|
218
197
|
{
|
219
|
-
'
|
220
|
-
'
|
221
|
-
'
|
222
|
-
'
|
223
|
-
'
|
224
|
-
'
|
198
|
+
'badge' => 'activity_firesafety',
|
199
|
+
'badgeLongName' => 'Fire Safety',
|
200
|
+
'badge_id' => '181',
|
201
|
+
'badge_version' => '0',
|
202
|
+
'badgetype' => 'activity',
|
203
|
+
'badgetypeLongName' => 'Activity',
|
204
|
+
'column_id' => '12345',
|
205
|
+
'columnname' => 'b_01',
|
206
|
+
'columnnameLongName' => 'B: Fire drill',
|
207
|
+
'data' => 'Yes',
|
208
|
+
'section' => 'cubs',
|
209
|
+
'sectionLongName' => 'Cubs',
|
225
210
|
}
|
226
211
|
]
|
227
212
|
}
|
213
|
+
|
228
214
|
FakeWeb.register_uri(:post, "https://www.onlinescoutmanager.co.uk/programme.php?action=getActivity&id=4", :body => activity_body.to_json, :content_type => 'application/json')
|
215
|
+
Osm::Activity.stub(:get) { Osm::Activity.new(:badges => [3]) }
|
229
216
|
|
230
|
-
meeting = Osm::Meeting.new(
|
231
|
-
|
217
|
+
meeting = Osm::Meeting.new(
|
218
|
+
:id => 2,
|
219
|
+
:date => Date.new(2000, 1, 2),
|
220
|
+
:section_id => 3,
|
221
|
+
:activities => [Osm::Meeting::Activity.new(:activity_id => 4)],
|
222
|
+
:badge_links => [1, 2],
|
223
|
+
)
|
224
|
+
|
225
|
+
meeting.get_badge_requirements(@api).should == [1, 2, 3]
|
232
226
|
end
|
233
227
|
|
234
228
|
it "Create a meeting (succeded)" do
|
@@ -311,7 +305,7 @@ describe "Meeting" do
|
|
311
305
|
'endtime' => nil, 'title' => 'Unnamed meeting', 'notesforparents' =>'', 'prenotes' => '',
|
312
306
|
'postnotes' => '', 'games' => '', 'leaders' => '',
|
313
307
|
'activity' => '[{"activityid":3,"notes":"Some notes"}]',
|
314
|
-
'badgelinks' => '[{"
|
308
|
+
'badgelinks' => '[{"badge_id":"181","badge_version":"0","column_id":"93384","badge":null,"badgeLongName":"Badge name","columnname":null,"columnnameLongName":"l","data":"","section":"beavers","sectionLongName":null,"badgetype":"activity","badgetypeLongName":null}]',
|
315
309
|
}
|
316
310
|
Osm::Term.stub(:get_for_section) { [] }
|
317
311
|
HTTParty.should_receive(:post).with(url, {:body => post_data}) { OsmTest::DummyHttpResult.new(:response=>{:code=>'200', :body=>'{"result":0}'}) }
|
@@ -321,7 +315,16 @@ describe "Meeting" do
|
|
321
315
|
:section_id=>2,
|
322
316
|
:date=>Date.new(2000, 01, 02),
|
323
317
|
:activities => [Osm::Meeting::Activity.new(:activity_id => 3, :title => 'Activity Title', :notes => 'Some notes')],
|
324
|
-
:badge_links => [Osm::Meeting::BadgeLink.new(
|
318
|
+
:badge_links => [Osm::Meeting::BadgeLink.new(
|
319
|
+
:badge_type => :activity,
|
320
|
+
:badge_section => :beavers,
|
321
|
+
:requirement_label => 'l',
|
322
|
+
:data => '',
|
323
|
+
:badge_name => 'Badge name',
|
324
|
+
:badge_id => 181,
|
325
|
+
:badge_version => 0,
|
326
|
+
:requirement_id => 93384,
|
327
|
+
)]
|
325
328
|
)
|
326
329
|
meeting.update(@api).should be_true
|
327
330
|
end
|
data/spec/osm/member_spec.rb
CHANGED
@@ -601,6 +601,16 @@ describe "Member" do
|
|
601
601
|
@member.myscout_link(@api, :details).should == 'https://www.onlinescoutmanager.co.uk/parents/details.php?sc=1&se=2&c=KEY-HERE'
|
602
602
|
end
|
603
603
|
|
604
|
+
it "Census detail entry" do
|
605
|
+
@member.stub(:myscout_link_key) { 'KEY-HERE' }
|
606
|
+
@member.myscout_link(@api, :census).should == 'https://www.onlinescoutmanager.co.uk/parents/census.php?sc=1&se=2&c=KEY-HERE'
|
607
|
+
end
|
608
|
+
|
609
|
+
it "Gift Aid consent" do
|
610
|
+
@member.stub(:myscout_link_key) { 'KEY-HERE' }
|
611
|
+
@member.myscout_link(@api, :giftaid).should == 'https://www.onlinescoutmanager.co.uk/parents/giftaid.php?sc=1&se=2&c=KEY-HERE'
|
612
|
+
end
|
613
|
+
|
604
614
|
end
|
605
615
|
|
606
616
|
end
|
data/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: osm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.15.dev
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Gauld
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -279,9 +279,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
279
279
|
version: '0'
|
280
280
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
281
281
|
requirements:
|
282
|
-
- - ! '
|
282
|
+
- - ! '>'
|
283
283
|
- !ruby/object:Gem::Version
|
284
|
-
version:
|
284
|
+
version: 1.3.1
|
285
285
|
requirements: []
|
286
286
|
rubyforge_project: osm
|
287
287
|
rubygems_version: 2.2.2
|