osm 0.6.0 → 0.6.1
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.
- data/CHANGELOG.md +4 -0
- data/lib/osm/badge.rb +17 -5
- data/spec/osm/badge_spec.rb +25 -0
- data/version.rb +1 -1
- metadata +2 -2
data/CHANGELOG.md
CHANGED
data/lib/osm/badge.rb
CHANGED
@@ -326,9 +326,14 @@ module Osm
|
|
326
326
|
count = {}
|
327
327
|
requirements.each do |field, data|
|
328
328
|
field = field.split('_')[0]
|
329
|
-
|
330
|
-
|
331
|
-
|
329
|
+
unless field.eql?('y')
|
330
|
+
count[field] ||= 0
|
331
|
+
next if data.blank? || data[0].downcase.eql?('x')
|
332
|
+
count[field] += 1
|
333
|
+
else
|
334
|
+
# A total 'section'
|
335
|
+
count['a'] = data.to_i
|
336
|
+
end
|
332
337
|
end
|
333
338
|
return count
|
334
339
|
end
|
@@ -344,8 +349,14 @@ module Osm
|
|
344
349
|
def started?
|
345
350
|
unless badge.type == :staged
|
346
351
|
return false if completed?
|
347
|
-
|
348
|
-
|
352
|
+
if badge.osm_key == 'adventure'
|
353
|
+
# Badge requires completing a number of activities
|
354
|
+
return (requirements['y_01'].to_i > 0)
|
355
|
+
else
|
356
|
+
# 'Normal' nonstaged badge
|
357
|
+
requirements.each do |key, value|
|
358
|
+
return true unless value.blank? || value[0].downcase.eql?('x')
|
359
|
+
end
|
349
360
|
end
|
350
361
|
else
|
351
362
|
# Staged badge
|
@@ -373,6 +384,7 @@ module Osm
|
|
373
384
|
end
|
374
385
|
end
|
375
386
|
else
|
387
|
+
# 'Normal' staged badge
|
376
388
|
start_group = 'abcde'[completed] # Requirements use the group letter to denote stage
|
377
389
|
started = 'z'
|
378
390
|
requirements.each do |key, value|
|
data/spec/osm/badge_spec.rb
CHANGED
@@ -146,6 +146,7 @@ describe "Badge" do
|
|
146
146
|
Osm::Badge::Data.new(:badge => Osm::CoreBadge.new, :requirements => {'a_01' => 'Yes', 'a_02' => ''}, :completed => 1).started?.should be_false
|
147
147
|
Osm::Badge::Data.new(:badge => Osm::CoreBadge.new, :requirements => {'a_01' => 'xNo', 'a_02' => ''}).started?.should be_false
|
148
148
|
Osm::Badge::Data.new(:badge => Osm::CoreBadge.new, :requirements => {'a_01' => '', 'a_02' => ''}).started?.should be_false
|
149
|
+
|
149
150
|
# Staged Badge
|
150
151
|
Osm::Badge::Data.new(
|
151
152
|
:badge => Osm::StagedBadge.new,
|
@@ -162,6 +163,30 @@ describe "Badge" do
|
|
162
163
|
:requirements => {'a_01' => 2, 'y_01' => '2', 'custom_26695' => ''},
|
163
164
|
:completed => 1,
|
164
165
|
).started?.should be_true
|
166
|
+
|
167
|
+
# Scout's adventure challenge
|
168
|
+
Osm::Badge::Data.new(
|
169
|
+
:badge => Osm::ChallengeBadge.new(:osm_key => 'adventure'),
|
170
|
+
:requirements => {'y_01' => 5, 'custom_26695' => 'Text'},
|
171
|
+
:completed => 0,
|
172
|
+
).started?.should be_true
|
173
|
+
Osm::Badge::Data.new(
|
174
|
+
:badge => Osm::ChallengeBadge.new(:osm_key => 'adventure'),
|
175
|
+
:requirements => {'y_01' => '', 'custom_26695' => ''},
|
176
|
+
:completed => 0,
|
177
|
+
).started?.should be_false
|
178
|
+
|
179
|
+
# Beaver's adventure activity
|
180
|
+
Osm::Badge::Data.new(
|
181
|
+
:badge => Osm::ActivityBadge.new(:osm_key => 'adventure'),
|
182
|
+
:requirements => {'y_01' => 5, 'custom_26695' => 'Text'},
|
183
|
+
:completed => 0,
|
184
|
+
).started?.should be_true
|
185
|
+
Osm::Badge::Data.new(
|
186
|
+
:badge => Osm::ActivityBadge.new(:osm_key => 'adventure'),
|
187
|
+
:requirements => {'y_01' => '', 'custom_26695' => ''},
|
188
|
+
:completed => 0,
|
189
|
+
).started?.should be_false
|
165
190
|
end
|
166
191
|
|
167
192
|
it "Works out what stage of the badge has been started" do
|
data/version.rb
CHANGED
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.6.
|
4
|
+
version: 0.6.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-04-
|
12
|
+
date: 2013-04-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|