osm 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## version 0.0.7.dev
2
+
3
+ * Work on documentation:
4
+ * Clarify use of 'mystery' attributes
5
+ * Rename ProgrammeItem to Evening (and move ProgrammeActivity to Evening->EveningActivity)
6
+
1
7
  ## Version 0.0.6
2
8
 
3
9
  * Usage changes:
data/lib/osm/activity.rb CHANGED
@@ -22,27 +22,27 @@ module Osm
22
22
  # @!attribute [r] running_time
23
23
  # @return [FixNum] duration of the activity in minutes
24
24
  # @!attribute [r] location
25
- # @return [Symbol] :indoors or :outdoors
25
+ # @return [Symbol] :indoors, :outdoors or :both
26
26
  # @!attribute [r] shared
27
- # @return [FixNum] ?
27
+ # @return [FixNum] 2 - Public, 0 - Private
28
28
  # @!attribute [r] rating
29
29
  # @return [FixNum] ?
30
30
  # @!attribute [r] editable
31
- # @return [Boolean] ?
31
+ # @return [Boolean] Wether the current API user can edit this activity
32
32
  # @!attribute [r] deletable
33
- # @return [Boolean] ?
33
+ # @return [Boolean] Wether the current API user can delete this activity
34
34
  # @!attribute [r] used
35
- # @return [FixNum] ?
35
+ # @return [FixNum] How many times this activity has been used (total accross all of OSM)
36
36
  # @!attribute [r] versions
37
- # @return [Hash] ?
37
+ # @return [Array<Hash>] ? (:value - version, :firstname - created by, :label - label, :user_id - OSM user ID of creator)
38
38
  # @!attribute [r] sections
39
39
  # @return [Array<Symbol>] the sections the activity is appropriate for
40
40
  # @!attribute [r] tags
41
41
  # @return [Array<String>] the tags attached to the activity
42
42
  # @!attribute [r] files
43
- # @return [Array] ?
43
+ # @return [Array<Hash> ? ('fileid', 'filename', 'name')
44
44
  # @!attribute [r] badges
45
- # @return [Array] ?
45
+ # @return [Array<Hash> ? ('section', 'badgetype', 'badge', 'columnname', 'label')
46
46
 
47
47
 
48
48
  # Initialize a new Activity using the hash returned by the API call
@@ -61,7 +61,7 @@ module Osm
61
61
  @shared = data['details']['shared'].to_i
62
62
  @rating = data['details']['rating'].to_i
63
63
  @editable = data['editable']
64
- @deletable = data['deletable']
64
+ @deletable = data['deletable'] ? true : false
65
65
  @used = data['used'].to_i
66
66
  @versions = data['versions']
67
67
  @sections = Osm::make_array_of_symbols(data['sections'] || [])
data/lib/osm/api.rb CHANGED
@@ -252,7 +252,7 @@ module Osm
252
252
  # @param [FixNum] term_id the term to get the programme for
253
253
  # @!macro options_get
254
254
  # @!macro options_api_data
255
- # @return [Array<Osm::ProgrammeItem>]
255
+ # @return [Array<Osm::Evening>]
256
256
  def get_programme(section_id, term_id, options={}, api_data={})
257
257
  if !options[:no_cache] && Rails.cache.exist?("OSMAPI-programme-#{section_id}-#{term_id}") && self.user_can_access?(:programme, section_id, api_data)
258
258
  return Rails.cache.read("OSMAPI-programme-#{section_id}-#{term_id}")
@@ -267,9 +267,9 @@ module Osm
267
267
  activities = data['activities'] || {}
268
268
 
269
269
  items.each do |item|
270
- programme_item = Osm::ProgrammeItem.new(item, activities[item['eveningid']])
271
- result.push programme_item
272
- programme_item.activities.each do |activity|
270
+ evening = Osm::Evening.new(item, activities[item['eveningid']])
271
+ result.push evening
272
+ evening.activities.each do |activity|
273
273
  self.user_can_access :activity, activity.activity_id, api_data
274
274
  end
275
275
  end
@@ -495,25 +495,11 @@ module Osm
495
495
  end
496
496
 
497
497
  # Update an evening in OSM
498
- # @param [Osm::ProgrammeItem] programme_item is the Osm::ProgrammeItem object to update
498
+ # @param [Osm::Evening] evening the evening to update
499
499
  # @!macro options_api_data
500
500
  # @return [Boolean] if the operation suceeded or not
501
- def update_evening(programme_item, api_data={})
502
- response = perform_query("programme.php?action=editEvening", api_data.merge({
503
- 'eveningid' => programme_item.evening_id,
504
- 'sectionid' => programme_item.section_id,
505
- 'meetingdate' => programme_item.meeting_date.try(:strftime, '%Y-%m-%d'),
506
- 'starttime' => programme_item.start_time,
507
- 'endtime' => programme_item.end_time,
508
- 'title' => programme_item.title,
509
- 'notesforparents' => programme_item.notes_for_parents,
510
- 'prenotes' => programme_item.pre_notes,
511
- 'postnotes' => programme_item.post_notes,
512
- 'games' => programme_item.games,
513
- 'leaders' => programme_item.leaders,
514
- 'activity' => programme_item.activities_for_saving,
515
- 'googlecalendar' => programme_item.google_calendar || '',
516
- }))
501
+ def update_evening(evening, api_data={})
502
+ response = perform_query("programme.php?action=editEvening", api_data.merge(evening.data_for_saving))
517
503
 
518
504
  # The cached programmes for the section will be out of date - remove them
519
505
  get_terms(api_data).each do |term|
@@ -1,8 +1,8 @@
1
1
  module Osm
2
2
 
3
- class ProgrammeItem
3
+ class Evening
4
4
 
5
- attr_accessor :evening_id, :section_id, :title, :notes_for_parents, :games, :pre_notes, :post_notes, :leaders, :meeting_date, :activities, :google_calendar
5
+ attr_accessor :evening_id, :section_id, :title, :notes_for_parents, :games, :pre_notes, :post_notes, :leaders, :meeting_date, :activities
6
6
  attr_reader :start_time, :end_time
7
7
  # @!attribute [rw] evening_id
8
8
  # @return [FixNum] the id of the evening
@@ -23,9 +23,7 @@ module Osm
23
23
  # @!attribute [rw] meeting_date
24
24
  # @return [Date] the date of the evening
25
25
  # @!attribute [rw] activities
26
- # @return [Array<ProgrammeActivity>] tlist of activities being done during the evening
27
- # @!attribute [rw] google_calendar
28
- # @return [String] ?
26
+ # @return [Array<EveningActivity>] list of activities being done during the evening
29
27
  # @!attribute [rw] start_time
30
28
  # @return [String] the start time (hh:mm)
31
29
  # @!attribute [rw] end_time
@@ -46,14 +44,14 @@ module Osm
46
44
  @start_time = data['starttime'].nil? ? nil : data['starttime'][0..4]
47
45
  @end_time = data['endtime'].nil? ? nil : data['endtime'][0..4]
48
46
  @meeting_date = Osm::parse_date(data['meetingdate'])
49
- @google_calendar = data['googlecalendar']
50
47
 
51
48
  @activities = Array.new
52
49
  unless activities.nil?
53
50
  activities.each do |item|
54
- @activities.push Osm::ProgrammeActivity.new(item)
51
+ @activities.push EveningActivity.new(item)
55
52
  end
56
53
  end
54
+ @activities.freeze
57
55
  end
58
56
 
59
57
  # Custom setters for times
@@ -67,7 +65,27 @@ module Osm
67
65
  end
68
66
  end
69
67
 
68
+ # Get the evening's data for use with the API
69
+ # @return [Hash]
70
+ def data_for_saving
71
+ {
72
+ 'eveningid' => evening_id,
73
+ 'sectionid' => section_id,
74
+ 'meetingdate' => meeting_date.try(:strftime, '%Y-%m-%d'),
75
+ 'starttime' => start_time,
76
+ 'endtime' => end_time,
77
+ 'title' => title,
78
+ 'notesforparents' => notes_for_parents,
79
+ 'prenotes' => pre_notes,
80
+ 'postnotes' => post_notes,
81
+ 'games' => games,
82
+ 'leaders' => leaders,
83
+ 'activity' => activities_for_saving,
84
+ }
85
+ end
86
+
70
87
 
88
+ private
71
89
  # Get the JSON for the activitied to pass to the OSM API
72
90
  # @return [String]
73
91
  def activities_for_saving
@@ -82,6 +100,28 @@ module Osm
82
100
  return ActiveSupport::JSON.encode(to_save)
83
101
  end
84
102
 
103
+
104
+ class EveningActivity
105
+
106
+ attr_reader :activity_id, :title, :notes
107
+ # @!attribute [r] activity_id
108
+ # @return [FixNum] the activity being done
109
+ # @!attribute [r] title
110
+ # @return [String] the activity's title
111
+ # @!attribute [r] notes
112
+ # @return [String] notes relevant to doing this activity on this evening
113
+
114
+ # Initialize a new EveningActivity using the hash returned by the API call
115
+ # @param data the hash of data for the object returned by the API
116
+ def initialize(data)
117
+ @activity_id = Osm::to_i_or_nil(data['activityid'])
118
+ @title = data['title']
119
+ @notes = data['notes']
120
+ end
121
+
122
+ end
123
+
124
+
85
125
  end
86
126
 
87
127
  end
data/lib/osm/event.rb CHANGED
@@ -14,7 +14,7 @@ module Osm
14
14
  # @!attribute [r] end
15
15
  # @return [DateTime] when the event ends
16
16
  # @!attribute [r] cost
17
- # @return [?] the cost of the event
17
+ # @return [String] the cost of the event
18
18
  # @!attribute [r] location
19
19
  # @return [String] where the event is
20
20
  # @!attribute [r] notes
data/lib/osm/member.rb CHANGED
@@ -12,7 +12,7 @@ module Osm
12
12
  # @!attribute [r] first_name
13
13
  # @return [String] the member's first name
14
14
  # @!attribute [r] last_name
15
- # @return [String] the imember's last name
15
+ # @return [String] the member's last name
16
16
  # @!attribute [r] email1
17
17
  # @return [String] the 1st email address for the member
18
18
  # @!attribute [r] email2
@@ -38,7 +38,7 @@ module Osm
38
38
  # @!attribute [r] started
39
39
  # @return [Date] when the member started Scouting
40
40
  # @!attribute [r] joined_in_years
41
- # @return [FixNum] thow many full years the member has been in Scouting
41
+ # @return [FixNum] ?
42
42
  # @!attribute [r] parents
43
43
  # @return [String] the member's parent's names
44
44
  # @!attribute [r] notes
@@ -62,7 +62,7 @@ module Osm
62
62
  # @!attribute [r] age
63
63
  # @return [String] the member's current age (yy/mm)
64
64
  # @!attribute [r] joined_years
65
- # @return [FixNum] ?
65
+ # @return [FixNum] how many years the member has been in Scouting
66
66
 
67
67
 
68
68
  # Initialize a new Member using the hash returned by the API call
data/lib/osm/role.rb CHANGED
@@ -2,17 +2,13 @@ module Osm
2
2
 
3
3
  class Role
4
4
 
5
- attr_reader :section, :group_name, :group_id, :group_normalized, :default, :permissions
5
+ attr_reader :section, :group_name, :group_id, :permissions
6
6
  # @!attribute [r] section
7
7
  # @return [Osm::Section] the section this role related to
8
8
  # @!attribute [r] group_name
9
9
  # @return [String] the name of the group the section is in
10
10
  # @!attribute [r] group_id
11
11
  # @return [FixNum] the group the section is in
12
- # @!attribute [r] group_normalized
13
- # @return [FixNum] ?
14
- # @!attribute [r] default
15
- # @return [Boolean] was this the last section this user used in OSM
16
12
  # @!attribute [r] permissions
17
13
  # @return [Hash] the permissions the user has in this role
18
14
 
@@ -22,8 +18,6 @@ module Osm
22
18
  @section = Osm::Section.new(data['sectionid'], data['sectionname'], ActiveSupport::JSON.decode(data['sectionConfig']), self)
23
19
  @group_name = data['groupname']
24
20
  @group_id = Osm::to_i_or_nil(data['groupid'])
25
- @group_normalized = Osm::to_i_or_nil(data['groupNormalised'])
26
- @default = data['isDefault'].eql?('1') ? true : false
27
21
  @permissions = Osm::symbolize_hash(data['permissions'] || {})
28
22
 
29
23
  # Convert permission values to a number
data/lib/osm/section.rb CHANGED
@@ -2,7 +2,7 @@ module Osm
2
2
 
3
3
  class Section
4
4
 
5
- attr_reader :id, :name, :subscription_level, :subscription_expires, :type, :num_scouts, :has_badge_records, :has_programme, :wizard, :column_names, :fields, :intouch_fields, :mobile_fields, :extra_records, :role
5
+ attr_reader :id, :name, :subscription_level, :subscription_expires, :type, :num_scouts, :column_names, :fields, :intouch_fields, :mobile_fields, :extra_records, :role
6
6
  # @!attribute [r] id
7
7
  # @return [FixNum] the id for the section
8
8
  # @!attribute [r] name
@@ -15,12 +15,6 @@ module Osm
15
15
  # @return [Symbol] the section type (:beavers, :cubs, :scouts, :exporers, :adults, :waiting, :unknown)
16
16
  # @!attribute [r] num_scouts
17
17
  # @return [FixNum] how many members the section has
18
- # @!attribute [r] has_badge_records
19
- # @return [Boolean] ?
20
- # @!attribute [r] has_programme
21
- # @return [Boolean] ?
22
- # @!attribute [r] wizard
23
- # @return [Boolean] ?
24
18
  # @!attribute [r] column_names
25
19
  # @return [Hash] custom names to use for the data columns
26
20
  # @!attribute [r] fields
@@ -48,9 +42,6 @@ module Osm
48
42
  @subscription_expires = data['subscription_expires'] ? Date.parse(data['subscription_expires'], 'yyyy-mm-dd') : nil
49
43
  @type = !data['sectionType'].nil? ? data['sectionType'].to_sym : :unknown
50
44
  @num_scouts = data['numscouts']
51
- @has_badge_records = data['hasUsedBadgeRecords'].eql?('1') ? true : false
52
- @has_programme = data['hasProgramme']
53
- @wizard = (data['wizard'] || '').downcase.eql?('true') ? true : false
54
45
  @column_names = Osm::symbolize_hash(data['columnNames'] || {})
55
46
  @fields = Osm::symbolize_hash(data['fields'] || {})
56
47
  @intouch_fields = Osm::symbolize_hash(data['intouch'] || {})
data/spec/osm/api_spec.rb CHANGED
@@ -188,7 +188,7 @@ describe "API" do
188
188
 
189
189
  programme = Osm::Api.new('1', '2').get_programme(3, 4)
190
190
  programme.size.should == 1
191
- programme[0].is_a?(Osm::ProgrammeItem).should be_true
191
+ programme[0].is_a?(Osm::Evening).should be_true
192
192
  programme[0].activities.size.should == 2
193
193
  end
194
194
 
@@ -410,14 +410,14 @@ describe "API" do
410
410
  'secret' => 'secret',
411
411
  'eveningid' => nil, 'sectionid' => nil, 'meetingdate' => nil, 'starttime' => nil,
412
412
  'endtime' => nil, 'title' => 'Unnamed meeting', 'notesforparents' =>'', 'prenotes' => '',
413
- 'postnotes' => '', 'games' => '', 'leaders' => '', 'activity' => '[]', 'googlecalendar' => '',
413
+ 'postnotes' => '', 'games' => '', 'leaders' => '', 'activity' => '[]',
414
414
  }
415
415
  api = Osm::Api.new('user', 'secret')
416
416
  api.stub(:get_terms) { [] }
417
417
  HTTParty.should_receive(:post).with(url, {:body => post_data}) { DummyHttpResult.new(:response=>{:code=>'200', :body=>'{"result":0}'}) }
418
418
 
419
- programme_item = Osm::ProgrammeItem.new({}, [])
420
- api.update_evening(programme_item).should be_true
419
+ evening = Osm::Evening.new({}, [])
420
+ api.update_evening(evening).should be_true
421
421
  end
422
422
 
423
423
  it "Update an evening (failed)" do
@@ -429,14 +429,14 @@ describe "API" do
429
429
  'secret' => 'secret',
430
430
  'eveningid' => nil, 'sectionid' => nil, 'meetingdate' => nil, 'starttime' => nil,
431
431
  'endtime' => nil, 'title' => 'Unnamed meeting', 'notesforparents' =>'', 'prenotes' => '',
432
- 'postnotes' => '', 'games' => '', 'leaders' => '', 'activity' => '[]', 'googlecalendar' => '',
432
+ 'postnotes' => '', 'games' => '', 'leaders' => '', 'activity' => '[]',
433
433
  }
434
434
  api = Osm::Api.new('user', 'secret')
435
435
  api.stub(:get_terms) { [] }
436
436
  HTTParty.should_receive(:post).with(url, {:body => post_data}) { DummyHttpResult.new(:response=>{:code=>'200', :body=>'{"result":1}'}) }
437
437
 
438
- programme_item = Osm::ProgrammeItem.new({}, [])
439
- api.update_evening(programme_item).should be_false
438
+ evening = Osm::Evening.new({}, [])
439
+ api.update_evening(evening).should be_false
440
440
  end
441
441
  end
442
442
 
@@ -0,0 +1,103 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'date'
4
+
5
+ describe "Evening" do
6
+
7
+ it "Create" do
8
+ data = {
9
+ 'eveningid' => 1,
10
+ 'sectionid' => 2,
11
+ 'title' => 'Evening Name',
12
+ 'notesforparents' => 'Notes for parents',
13
+ 'games' => 'Games',
14
+ 'prenotes' => 'Before',
15
+ 'postnotes' => 'After',
16
+ 'leaders' => 'Leaders',
17
+ 'starttime' => '19:00',
18
+ 'endtime' => '21:00',
19
+ 'meetingdate' => '2000-01-02',
20
+ }
21
+ activities = [{
22
+ 'eveningid' => 1,
23
+ 'activityid' => 2,
24
+ 'title' => 'Activity Name',
25
+ 'notes' => 'Notes',
26
+ }]
27
+ e = Osm::Evening.new(data, activities)
28
+
29
+ e.evening_id.should == 1
30
+ e.section_id.should == 2
31
+ e.title.should == 'Evening Name'
32
+ e.notes_for_parents.should == 'Notes for parents'
33
+ e.games.should == 'Games'
34
+ e.pre_notes.should == 'Before'
35
+ e.post_notes.should == 'After'
36
+ e.leaders.should == 'Leaders'
37
+ e.start_time.should == '19:00'
38
+ e.end_time.should == '21:00'
39
+ e.meeting_date.should == Date.new(2000, 1, 2)
40
+
41
+ e.activities.frozen?.should be_true
42
+ ea = e.activities[0]
43
+ ea.activity_id.should == 2
44
+ ea.title.should == 'Activity Name'
45
+ ea.notes.should == 'Notes'
46
+ end
47
+
48
+
49
+ it "Raises exceptions when trying to set invalid times" do
50
+ e = Osm::Evening.new({}, [])
51
+
52
+ expect{ e.start_time = 'abcde' }.to raise_error(ArgumentError)
53
+ expect{ e.start_time = '24:00' }.to raise_error(ArgumentError)
54
+ expect{ e.start_time = '10:61' }.to raise_error(ArgumentError)
55
+ e.start_time = '12:34'
56
+ e.start_time.should == '12:34'
57
+
58
+ expect{ e.end_time = 'abcde' }.to raise_error(ArgumentError)
59
+ expect{ e.end_time = '24:00' }.to raise_error(ArgumentError)
60
+ expect{ e.end_time = '10:61' }.to raise_error(ArgumentError)
61
+ e.end_time = '23:45'
62
+ e.end_time.should == '23:45'
63
+ end
64
+
65
+
66
+ it "Creates the data for saving through the API" do
67
+ data = {
68
+ 'eveningid' => 1,
69
+ 'sectionid' => 2,
70
+ 'title' => 'Evening Name',
71
+ 'notesforparents' => 'Notes for parents',
72
+ 'games' => 'Games',
73
+ 'prenotes' => 'Before',
74
+ 'postnotes' => 'After',
75
+ 'leaders' => 'Leaders',
76
+ 'starttime' => '19:00',
77
+ 'endtime' => '21:00',
78
+ 'meetingdate' => '2000-01-02',
79
+ }
80
+ activities = [{
81
+ 'eveningid' => 3,
82
+ 'activityid' => 4,
83
+ 'title' => 'Activity Name',
84
+ 'notes' => 'Notes',
85
+ }]
86
+ e = Osm::Evening.new(data, activities)
87
+ e.data_for_saving.should == {
88
+ 'eveningid' => 1,
89
+ 'sectionid' => 2,
90
+ 'meetingdate' => '2000-01-02',
91
+ 'starttime' => '19:00',
92
+ 'endtime' => '21:00',
93
+ 'title' => 'Evening Name',
94
+ 'notesforparents' => 'Notes for parents',
95
+ 'prenotes' => 'Before',
96
+ 'postnotes' => 'After',
97
+ 'games' => 'Games',
98
+ 'leaders' => 'Leaders',
99
+ 'activity' => '[{"activityid":4,"notes":"Notes"}]',
100
+ }
101
+ end
102
+
103
+ end
@@ -23,9 +23,6 @@ describe "Section" do
23
23
  'subscription_expires' => (Date.today + 60).strftime('%Y-%m-%d'),
24
24
  'sectionType' => 'cubs',
25
25
  'numscouts' => 10,
26
- 'hasUsedBadgeRecords' => '1',
27
- 'hasProgramme' => true,
28
- 'wizard' => 'False',
29
26
  'columnNames' => {},
30
27
  'fields' => {},
31
28
  'intouch' => {},
@@ -41,9 +38,6 @@ describe "Section" do
41
38
  section.subscription_expires.should == Date.today + 60
42
39
  section.type.should == :cubs
43
40
  section.num_scouts.should == 10
44
- section.has_badge_records.should == true
45
- section.has_programme.should == true
46
- section.wizard.should == false
47
41
  section.column_names.should == {}
48
42
  section.fields.should == {}
49
43
  section.intouch_fields.should == {}
data/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Osm
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
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.0.6
4
+ version: 0.0.7
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-08-01 00:00:00.000000000Z
12
+ date: 2012-08-08 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &80730730 !ruby/object:Gem::Requirement
16
+ requirement: &76902620 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.2.5
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *80730730
24
+ version_requirements: *76902620
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activesupport
27
- requirement: &80713860 !ruby/object:Gem::Requirement
27
+ requirement: &76892140 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '3.2'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *80713860
35
+ version_requirements: *76892140
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: httparty
38
- requirement: &80710730 !ruby/object:Gem::Requirement
38
+ requirement: &76890970 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *80710730
46
+ version_requirements: *76890970
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &80697000 !ruby/object:Gem::Requirement
49
+ requirement: &76889000 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *80697000
57
+ version_requirements: *76889000
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rspec
60
- requirement: &80694320 !ruby/object:Gem::Requirement
60
+ requirement: &76886900 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *80694320
68
+ version_requirements: *76886900
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: fakeweb
71
- requirement: &80680900 !ruby/object:Gem::Requirement
71
+ requirement: &76883060 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *80680900
79
+ version_requirements: *76883060
80
80
  description: Use the Online Scout Manager API (https://www.onlinescoutmanager.co.uk)
81
81
  to retrieve and save data.
82
82
  email:
@@ -98,11 +98,10 @@ files:
98
98
  - lib/osm/api.rb
99
99
  - lib/osm/api_access.rb
100
100
  - lib/osm/due_badges.rb
101
+ - lib/osm/evening.rb
101
102
  - lib/osm/event.rb
102
103
  - lib/osm/grouping.rb
103
104
  - lib/osm/member.rb
104
- - lib/osm/programme_activity.rb
105
- - lib/osm/programme_item.rb
106
105
  - lib/osm/role.rb
107
106
  - lib/osm/section.rb
108
107
  - lib/osm/term.rb
@@ -112,12 +111,11 @@ files:
112
111
  - spec/osm/api_spec.rb
113
112
  - spec/osm/api_strangeness_spec.rb
114
113
  - spec/osm/due_badges_spec.rb
114
+ - spec/osm/evening_spec.rb
115
115
  - spec/osm/event_spec.rb
116
116
  - spec/osm/grouping_spec.rb
117
117
  - spec/osm/member_spec.rb
118
118
  - spec/osm/osm_spec.rb
119
- - spec/osm/programme_activity_spec.rb
120
- - spec/osm/programme_item_spec.rb
121
119
  - spec/osm/role_spec.rb
122
120
  - spec/osm/section_spec.rb
123
121
  - spec/osm/term_spec.rb
@@ -1,26 +0,0 @@
1
- module Osm
2
-
3
- class ProgrammeActivity
4
-
5
- attr_reader :evening_id, :activity_id, :title, :notes
6
- # @!attribute [r] eveing_id
7
- # @return [FixNum] the evening the activity is being done
8
- # @!attribute [r] activity_id
9
- # @return [FixNum] the activity being done
10
- # @!attribute [r] title
11
- # @return [String] the activity's title
12
- # @!attribute [r] notes
13
- # @return [String] tnotes relevant to doing this activity on this evening
14
-
15
- # Initialize a new EveningActivity using the hash returned by the API call
16
- # @param data the hash of data for the object returned by the API
17
- def initialize(data)
18
- @evening_id = Osm::to_i_or_nil(data['eveningid'])
19
- @activity_id = Osm::to_i_or_nil(data['activityid'])
20
- @title = data['title']
21
- @notes = data['notes']
22
- end
23
-
24
- end
25
-
26
- end
@@ -1,21 +0,0 @@
1
- # encoding: utf-8
2
- require 'spec_helper'
3
-
4
- describe "Programme Activity" do
5
-
6
- it "Create" do
7
- data = {
8
- 'eveningid' => 1,
9
- 'activityid' => 2,
10
- 'title' => 'Activity Name',
11
- 'notes' => 'Notes',
12
- }
13
- pa = Osm::ProgrammeActivity.new(data)
14
-
15
- pa.evening_id.should == 1
16
- pa.activity_id.should == 2
17
- pa.title.should == 'Activity Name'
18
- pa.notes.should == 'Notes'
19
- end
20
-
21
- end
@@ -1,64 +0,0 @@
1
- # encoding: utf-8
2
- require 'spec_helper'
3
- require 'date'
4
-
5
- describe "Programme Item" do
6
-
7
- it "Create" do
8
- data = {
9
- 'eveningid' => 1,
10
- 'sectionid' => 2,
11
- 'title' => 'Evening Name',
12
- 'notesforparents' => 'Notes for parents',
13
- 'games' => 'Games',
14
- 'prenotes' => 'Before',
15
- 'postnotes' => 'After',
16
- 'leaders' => 'Leaders',
17
- 'starttime' => '19:00',
18
- 'endtime' => '21:00',
19
- 'meetingdate' => '2000-01-02',
20
- }
21
- pi = Osm::ProgrammeItem.new(data, [])
22
-
23
- pi.evening_id.should == 1
24
- pi.section_id.should == 2
25
- pi.title.should == 'Evening Name'
26
- pi.notes_for_parents.should == 'Notes for parents'
27
- pi.games.should == 'Games'
28
- pi.pre_notes.should == 'Before'
29
- pi.post_notes.should == 'After'
30
- pi.leaders.should == 'Leaders'
31
- pi.start_time.should == '19:00'
32
- pi.end_time.should == '21:00'
33
- pi.meeting_date.should == Date.new(2000, 1, 2)
34
- end
35
-
36
-
37
- it "Raises exceptions when trying to set invalid times" do
38
- pi = Osm::ProgrammeItem.new({}, [])
39
-
40
- expect{ pi.start_time = 'abcde' }.to raise_error(ArgumentError)
41
- expect{ pi.start_time = '24:00' }.to raise_error(ArgumentError)
42
- expect{ pi.start_time = '10:61' }.to raise_error(ArgumentError)
43
- pi.start_time = '12:34'
44
- pi.start_time.should == '12:34'
45
-
46
- expect{ pi.end_time = 'abcde' }.to raise_error(ArgumentError)
47
- expect{ pi.end_time = '24:00' }.to raise_error(ArgumentError)
48
- expect{ pi.end_time = '10:61' }.to raise_error(ArgumentError)
49
- pi.end_time = '23:45'
50
- pi.end_time.should == '23:45'
51
- end
52
-
53
-
54
- it "Makes a list of activities to save for OSM's API" do
55
- pi = Osm::ProgrammeItem.new({}, [{
56
- 'eveningid' => 1,
57
- 'activityid' => 2,
58
- 'title' => 'Activity Name',
59
- 'notes' => 'Notes',
60
- }])
61
- pi.activities_for_saving.should == '[{"activityid":2,"notes":"Notes"}]'
62
- end
63
-
64
- end