osm 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## Version 0.1.9
2
+
3
+ * Fix fetching of members for a waiting list
4
+ * Fix 'undefuned method' when creating an event without a start or finish datetime
5
+
1
6
  ## Version 0.1.8
2
7
 
3
8
  * Fix 'undefined local variable' when getting a section's notepad from the cache
data/lib/osm/event.rb CHANGED
@@ -135,12 +135,12 @@ module Osm
135
135
  data = api.perform_query("events.php?action=addEvent&sectionid=#{event.section_id}", {
136
136
  'name' => event.name,
137
137
  'location' => event.location,
138
- 'startdate' => event.start.strftime(Osm::OSM_DATE_FORMAT),
139
- 'enddate' => event.finish.strftime(Osm::OSM_DATE_FORMAT),
138
+ 'startdate' => event.start? ? event.start.strftime(Osm::OSM_DATE_FORMAT) : '',
139
+ 'enddate' => event.finish? ? event.finish.strftime(Osm::OSM_DATE_FORMAT) : '',
140
140
  'cost' => event.cost,
141
141
  'notes' => event.notes,
142
- 'starttime' => event.start.strftime(Osm::OSM_TIME_FORMAT),
143
- 'endtime' => event.finish.strftime(Osm::OSM_TIME_FORMAT),
142
+ 'starttime' => event.start? ? event.start.strftime(Osm::OSM_TIME_FORMAT) : '',
143
+ 'endtime' => event.finish? ? event.finish.strftime(Osm::OSM_TIME_FORMAT) : '',
144
144
  })
145
145
 
146
146
  # The cached events for the section will be out of date - remove them
data/lib/osm/member.rb CHANGED
@@ -148,20 +148,21 @@ module Osm
148
148
  # @!macro options_get
149
149
  # @return [Array<Osm::Member>]
150
150
  def self.get_for_section(api, section, term=nil, options={})
151
+ section = Osm::Section.get(api, section) if section.is_a?(Fixnum)
152
+ term = -1 if section.waiting?
151
153
  term_id = term.nil? ? Osm::Term.get_current_term_for_section(api, section).id : term.to_i
152
- section_id = section.to_i
153
- cache_key = ['members', section_id, term_id]
154
+ cache_key = ['members', section.id, term_id]
154
155
 
155
- if !options[:no_cache] && cache_exist?(api, cache_key) && get_user_permission(api, section_id, :member).include?(:read)
156
+ if !options[:no_cache] && cache_exist?(api, cache_key) && get_user_permission(api, section.id, :member).include?(:read)
156
157
  return cache_read(api, cache_key)
157
158
  end
158
159
 
159
- data = api.perform_query("users.php?action=getUserDetails&sectionid=#{section_id}&termid=#{term_id}")
160
+ data = api.perform_query("users.php?action=getUserDetails&sectionid=#{section.id}&termid=#{term_id}")
160
161
 
161
162
  result = Array.new
162
163
  data['items'].each do |item|
163
164
  result.push Osm::Member.new(
164
- :section_id => section_id,
165
+ :section_id => section.id,
165
166
  :id => Osm::to_i_or_nil(item['scoutid']),
166
167
  :type => item['type'],
167
168
  :first_name => item['firstname'],
@@ -116,6 +116,11 @@ describe "Member" do
116
116
  describe "Using the API" do
117
117
 
118
118
  it "Create from API data" do
119
+ body = [
120
+ {"sectionConfig"=>"{\"subscription_level\":1,\"subscription_expires\":\"2013-01-05\",\"sectionType\":\"beavers\",\"columnNames\":{\"column_names\":\"names\"},\"numscouts\":10,\"hasUsedBadgeRecords\":true,\"hasProgramme\":true,\"extraRecords\":[],\"wizard\":\"false\",\"fields\":{\"fields\":true},\"intouch\":{\"intouch_fields\":true},\"mobFields\":{\"mobile_fields\":true}}", "groupname"=>"3rd Somewhere", "groupid"=>"3", "groupNormalised"=>"1", "sectionid"=>"1", "sectionname"=>"Section 1", "section"=>"beavers", "isDefault"=>"1", "permissions"=>{"badge"=>10, "member"=>20, "user"=>100, "register"=>100, "contact"=>100, "programme"=>100, "originator"=>1, "events"=>100, "finance"=>100, "flexi"=>100}},
121
+ ]
122
+ FakeWeb.register_uri(:post, "https://www.onlinescoutmanager.co.uk/api.php?action=getUserRoles", :body => body.to_json)
123
+
119
124
  body = {
120
125
  'identifier' => 'scoutid',
121
126
  'items' => [{
@@ -170,6 +175,22 @@ describe "Member" do
170
175
  members[0].id.should == 1
171
176
  end
172
177
 
178
+ it "Create from API data (Waiting list)" do
179
+ body = [
180
+ {"sectionConfig"=>"{\"subscription_level\":1,\"subscription_expires\":\"2013-01-05\",\"sectionType\":\"waiting\",\"columnNames\":{\"column_names\":\"names\"},\"numscouts\":10,\"hasUsedBadgeRecords\":true,\"hasProgramme\":true,\"extraRecords\":[],\"wizard\":\"false\",\"fields\":{\"fields\":true},\"intouch\":{\"intouch_fields\":true},\"mobFields\":{\"mobile_fields\":true}}", "groupname"=>"3rd Somewhere", "groupid"=>"3", "groupNormalised"=>"1", "sectionid"=>"1", "sectionname"=>"Section 1", "section"=>"waiting", "isDefault"=>"1", "permissions"=>{"badge"=>10, "member"=>20, "user"=>100, "register"=>100, "contact"=>100, "programme"=>100, "originator"=>1, "events"=>100, "finance"=>100, "flexi"=>100}},
181
+ ]
182
+ FakeWeb.register_uri(:post, "https://www.onlinescoutmanager.co.uk/api.php?action=getUserRoles", :body => body.to_json)
183
+
184
+ body = {
185
+ 'identifier' => 'scoutid',
186
+ 'items' => []
187
+ }
188
+
189
+ FakeWeb.register_uri(:post, "https://www.onlinescoutmanager.co.uk/users.php?action=getUserDetails&sectionid=1&termid=-1", :body => body.to_json)
190
+ members = Osm::Member.get_for_section(@api, 1, 2)
191
+ members.size.should == 0
192
+ end
193
+
173
194
  end
174
195
 
175
196
  end
data/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Osm
2
- VERSION = "0.1.8"
2
+ VERSION = "0.1.9"
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.8
4
+ version: 0.1.9
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: 2012-11-28 00:00:00.000000000Z
12
+ date: 2012-12-19 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &78658520 !ruby/object:Gem::Requirement
16
+ requirement: &74299010 !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: *78658520
24
+ version_requirements: *74299010
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: httparty
27
- requirement: &78657990 !ruby/object:Gem::Requirement
27
+ requirement: &74298560 !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: *78657990
35
+ version_requirements: *74298560
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: active_attr
38
- requirement: &78657380 !ruby/object:Gem::Requirement
38
+ requirement: &74297850 !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: *78657380
46
+ version_requirements: *74297850
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activemodel
49
- requirement: &78657030 !ruby/object:Gem::Requirement
49
+ requirement: &74296950 !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: *78657030
57
+ version_requirements: *74296950
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rake
60
- requirement: &78656680 !ruby/object:Gem::Requirement
60
+ requirement: &74296610 !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: *78656680
68
+ version_requirements: *74296610
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
- requirement: &78656170 !ruby/object:Gem::Requirement
71
+ requirement: &74296090 !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: *78656170
79
+ version_requirements: *74296090
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: fakeweb
82
- requirement: &78655640 !ruby/object:Gem::Requirement
82
+ requirement: &74295670 !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: *78655640
90
+ version_requirements: *74295670
91
91
  description: Use the Online Scout Manager API (https://www.onlinescoutmanager.co.uk)
92
92
  to retrieve and save data.
93
93
  email:
@@ -149,12 +149,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
149
149
  - - ! '>='
150
150
  - !ruby/object:Gem::Version
151
151
  version: '0'
152
+ segments:
153
+ - 0
154
+ hash: -414349837
152
155
  required_rubygems_version: !ruby/object:Gem::Requirement
153
156
  none: false
154
157
  requirements:
155
158
  - - ! '>='
156
159
  - !ruby/object:Gem::Version
157
160
  version: '0'
161
+ segments:
162
+ - 0
163
+ hash: -414349837
158
164
  requirements: []
159
165
  rubyforge_project: osm
160
166
  rubygems_version: 1.8.10
@@ -162,4 +168,3 @@ signing_key:
162
168
  specification_version: 3
163
169
  summary: Use the Online Scout Manager API
164
170
  test_files: []
165
- has_rdoc: