osm 0.1.16 → 0.1.17

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.
@@ -1,3 +1,8 @@
1
+ ## Version 0.1.17
2
+
3
+ * Add comparison to Evening
4
+ * Passing a Term to the get\_programme method of Evening is now optional
5
+
1
6
  ## Version 0.1.16
2
7
 
3
8
  * Member's grouping attribute:
data/README.md CHANGED
@@ -134,9 +134,10 @@ however it should be noted that when the OSM API adds a feature it can be diffic
134
134
  * Retreive [issue 21]
135
135
  * Update [issue 22]
136
136
  * Retrieve details for each badge (stock, short column names etc.) [issue 20]
137
+ * Update badge stock [issue 56]
137
138
  * SMS:
138
- * Retreival of delivery reports
139
- * Sending a message
139
+ * Retrieval of delivery reports [issue 54]
140
+ * Sending a message [issue 54]
140
141
  * Gift aid (Everything)
141
142
  * Finances (Everything)
142
143
  * MyScout (Everything) (Maybe)
@@ -1,3 +1,5 @@
1
+ # TODO with next version bump - rename to Meeting, also rename meeting_date to date
2
+
1
3
  module Osm
2
4
 
3
5
  class Evening < Osm::Model
@@ -64,7 +66,7 @@ module Osm
64
66
  # @!macro options_get
65
67
  # @return [Array<Osm::Evening>]
66
68
  # TODO Change to get_all in next version bump
67
- def self.get_programme(api, section, term, options={})
69
+ def self.get_programme(api, section, term=nil, options={})
68
70
  section_id = section.to_i
69
71
  term_id = term.nil? ? Osm::Term.get_current_term_for_section(api, section).id : term.to_i
70
72
  cache_key = ['programme', section_id, term_id]
@@ -233,6 +235,28 @@ module Osm
233
235
  end
234
236
 
235
237
 
238
+ def <=>(another)
239
+ begin
240
+ compare = self.section_id <=> another.section_id
241
+ return compare unless compare == 0
242
+
243
+ compare = self.meeting_date <=> another.meeting_date
244
+ return compare unless compare == 0
245
+
246
+ my_start_time = self.start_time.split(':').map{ |i| i.to_i }
247
+ another_start_time = another.start_time.split(':').map{ |i| i.to_i }
248
+ compare = my_start_time[0] <=> another_start_time[0]
249
+ return compare unless compare == 0
250
+ compare = my_start_time[1] <=> another_start_time[1]
251
+ return compare unless compare == 0
252
+
253
+ return self.id <=> another.id
254
+ rescue NoMethodError
255
+ return 0
256
+ end
257
+ end
258
+
259
+
236
260
  private
237
261
  class Activity
238
262
  include ::ActiveAttr::MassAssignmentSecurity
@@ -221,7 +221,7 @@ module Osm
221
221
 
222
222
  return self.id <=> another_term.id
223
223
  rescue NoMethodError
224
- return false
224
+ return 0
225
225
  end
226
226
  end
227
227
 
@@ -34,7 +34,19 @@ describe "Evening" do
34
34
  e.activities.should == []
35
35
  e.valid?.should be_true
36
36
  end
37
-
37
+
38
+ it "Sorts by Section ID, Meeting date, Start time and then Evening ID" do
39
+ evening1 = Osm::Evening.new(:section_id => 1, :id => 1, :meeting_date => (Date.today - 1), :start_time => '18:00')
40
+ evening2 = Osm::Evening.new(:section_id => 2, :id => 1, :meeting_date => (Date.today - 1), :start_time => '18:00')
41
+ evening3 = Osm::Evening.new(:section_id => 2, :id => 1, :meeting_date => (Date.today + 1), :start_time => '18:00')
42
+ evening4 = Osm::Evening.new(:section_id => 2, :id => 1, :meeting_date => (Date.today + 1), :start_time => '19:00')
43
+ evening5 = Osm::Evening.new(:section_id => 2, :id => 2, :meeting_date => (Date.today + 1), :start_time => '19:00')
44
+
45
+ data = [evening5, evening3, evening2, evening4, evening1]
46
+ data.sort.should == [evening1, evening2, evening3, evening4, evening5]
47
+ end
48
+
49
+
38
50
  it "Create Evening::Activity" do
39
51
  ea = Osm::Evening::Activity.new(
40
52
  :activity_id => 2,
data/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Osm
2
- VERSION = "0.1.16"
2
+ VERSION = "0.1.17"
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.16
4
+ version: 0.1.17
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-02 00:00:00.000000000Z
12
+ date: 2013-02-05 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &88296760 !ruby/object:Gem::Requirement
16
+ requirement: &80603000 !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: *88296760
24
+ version_requirements: *80603000
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: httparty
27
- requirement: &88296420 !ruby/object:Gem::Requirement
27
+ requirement: &80601890 !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: *88296420
35
+ version_requirements: *80601890
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: active_attr
38
- requirement: &88296130 !ruby/object:Gem::Requirement
38
+ requirement: &80600900 !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: *88296130
46
+ version_requirements: *80600900
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activemodel
49
- requirement: &88295670 !ruby/object:Gem::Requirement
49
+ requirement: &80599810 !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: *88295670
57
+ version_requirements: *80599810
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rake
60
- requirement: &88295400 !ruby/object:Gem::Requirement
60
+ requirement: &80599380 !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: *88295400
68
+ version_requirements: *80599380
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
- requirement: &88295160 !ruby/object:Gem::Requirement
71
+ requirement: &80598830 !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: *88295160
79
+ version_requirements: *80598830
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: fakeweb
82
- requirement: &88294750 !ruby/object:Gem::Requirement
82
+ requirement: &80596730 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: '1.3'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *88294750
90
+ version_requirements: *80596730
91
91
  description: Use the Online Scout Manager API (https://www.onlinescoutmanager.co.uk)
92
92
  to retrieve and save data.
93
93
  email: