actv 1.1.23 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YWJiNGQ1NWUxMGJmYjQxMTc1OTllMzg3YmVjN2I1MTFiZmNhNWRkMg==
5
- data.tar.gz: !binary |-
6
- MDc1ZjE0OWI1MmY5MjVlNTJhOTRlYmQ4M2RiZWMwNTE3YTdmNTA0MQ==
2
+ SHA1:
3
+ metadata.gz: f208a15c6ccb65eb735092373b15a23307820947
4
+ data.tar.gz: cd2443757c2d5d08ac9860dfe9fc1f47c72c2ff8
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ODBkZTc1NGU4ZGVkMzMzZjlkOTU3NDE2OTg5OTg0Mjk3ZjBlOTljNDhlZDRh
10
- ZThmNjU0N2UwMjA5YWY2YzNkNDFhYzhlMWMzNmM0OTUxMTRkNTkzNzRhMDM0
11
- NjZkNWUxNzU5MzgyNDRkZDliZjdkYzc2NTRhYjMzNDk0MGY4MjQ=
12
- data.tar.gz: !binary |-
13
- NzEzNmE1YzYyYjNiYThjM2M2NzU3MjA5ZDk0ODM4Njk1OWJlYWZlMWRkYTlh
14
- ZDA4ZWVjOWI3MjU2ODEzODQ3YzhjYjliMzlhMjUwMGQ1ZDQxMGVlZmU0ODQx
15
- ZGVlM2ViOGJhODRiZGI5NDQ3ODAwYTI2NjI5YzkzZWZjYmFhODk=
6
+ metadata.gz: ddcefc53ecff5fc9cd9cbff78fd7258396f577d01db7804203d67fed88a1fc41c889eb4dbf8736193f8024914b282c39fbaad0818a301183e23f7207445717b3
7
+ data.tar.gz: a6ed5972b4ca7505a4407d04ac4d935edf30d65279d64314579e32dfff7da644ddf85a4fdda0fc1b5284aa366e018f79d590dfd0c089f44db66c20666a8e7f61
data/.travis.yml CHANGED
@@ -1,8 +1,8 @@
1
1
  language: ruby
2
2
  rvm:
3
- - "1.9.2"
4
3
  - "1.9.3"
5
- - "2.0.0"
4
+ - "2.0"
5
+ - "2.1"
6
6
  - jruby-19mode # JRuby in 1.9 mode
7
7
  - rbx-19mode
8
8
  script: bundle exec rspec spec
data/actv.gemspec CHANGED
@@ -10,13 +10,13 @@ Gem::Specification.new do |gem|
10
10
  gem.add_development_dependency 'maruku'
11
11
  gem.add_development_dependency 'pry'
12
12
  gem.add_development_dependency 'rake'
13
- gem.add_development_dependency 'rspec'
13
+ gem.add_development_dependency 'rspec', '~> 2.14.1'
14
14
  gem.add_development_dependency 'simplecov'
15
15
  gem.add_development_dependency 'timecop'
16
16
  gem.add_development_dependency 'webmock'
17
17
  gem.add_development_dependency 'yard'
18
18
  gem.add_development_dependency 'guard-rspec'
19
- gem.add_development_dependency 'active_support'
19
+ gem.add_development_dependency 'activesupport'
20
20
 
21
21
 
22
22
  gem.authors = ["Nathaniel Barnes"]
data/lib/actv/asset.rb CHANGED
@@ -10,13 +10,14 @@ require 'actv/asset_topic'
10
10
  require 'actv/asset_seo_url'
11
11
  require 'actv/identity'
12
12
  require 'actv/place'
13
+ require 'actv/recurrence'
13
14
 
14
15
  module ACTV
15
16
  class Asset < ACTV::Identity
16
17
 
17
18
  attr_reader :assetGuid, :assetName, :assetDsc, :activityStartDate, :activityStartTime, :activityEndDate, :activityEndTime,
18
19
  :homePageUrlAdr, :isRecurring, :contactName, :contactEmailAdr, :contactPhone, :showContact, :publishDate, :createdDate, :modifiedDate,
19
- :authorName, :is_event, :is_article, :currencyCd
20
+ :authorName, :is_event, :is_article, :currencyCd, :contactTxt, :regReqMinAge, :regReqMaxAge, :regReqGenderCd
20
21
 
21
22
  alias id assetGuid
22
23
  alias title assetName
@@ -29,6 +30,7 @@ module ACTV
29
30
  alias contact_name contactName
30
31
  alias contact_email contactEmailAdr
31
32
  alias contact_phone contactPhone
33
+ alias contact_txt contactTxt
32
34
  alias show_contact? showContact
33
35
  alias published_at publishDate
34
36
  alias created_at createdDate
@@ -37,6 +39,15 @@ module ACTV
37
39
  alias activity_start_date activityStartDate
38
40
  alias activity_end_date activityEndDate
39
41
  alias currency_code currencyCd
42
+ alias minimum_age regReqMinAge
43
+ alias maximum_age regReqMaxAge
44
+ alias required_gender regReqGenderCd
45
+
46
+ def recurrences
47
+ @recurrences ||= Array(@attrs[:activityRecurrences]).map do | recurrence |
48
+ ACTV::Recurrence.new(recurrence)
49
+ end
50
+ end
40
51
 
41
52
  def place
42
53
  @place ||= ACTV::Place.new(@attrs[:place]) unless @attrs[:place].nil?
@@ -217,6 +228,10 @@ module ACTV
217
228
  self.sourceSystem[:legacyGuid].upcase == "2B22B4E6-5AA4-44D7-BF06-F7A71F9FA8A6" rescue false
218
229
  end
219
230
 
231
+ def awcamps30?
232
+ self.sourceSystem[:legacyGuid].upcase == "89208DBA-F535-4950-880A-34A6888A184C" rescue false
233
+ end
234
+
220
235
  def thriva?
221
236
  self.sourceSystem[:legacyGuid].upcase == "2BA50ABA-080E-4E3D-A01C-1B4F56648A2E" rescue false
222
237
  end
@@ -225,6 +240,16 @@ module ACTV
225
240
  self.sourceSystem[:legacyGuid].upcase == "FB27C928-54DB-4ECD-B42F-482FC3C8681F" rescue false
226
241
  end
227
242
 
243
+ def kids?
244
+ return false if Rails.env == 'production'
245
+ (activenet? || awcamps? || awcamps30?) && kidsinterest?
246
+ end
247
+
248
+ def kidsinterest?
249
+ interests = meta_interests.to_a.map(&:downcase)
250
+ ['kids', 'family'].any? { |tag| interests.include? tag }
251
+ end
252
+
228
253
  def registration_status
229
254
  @registration_status ||= nil
230
255
  end
data/lib/actv/client.rb CHANGED
@@ -62,11 +62,16 @@ module ACTV
62
62
  # @example Return the asset with the id BA288960-2718-4B20-B380-8F939596B123
63
63
  # ACTV.asset("BA288960-2718-4B20-B380-8F939596B123")
64
64
  def asset(id, params={})
65
- request_string = "/v2/assets/#{id}"
66
65
  is_preview, params = params_include_preview? params
67
- request_string += '/preview' if is_preview
68
66
 
69
- response = get("#{request_string}.json", params)
67
+ if is_preview
68
+ request_string = "/v2/assets/#{id}/preview"
69
+ response = get("#{request_string}.json", params)
70
+ else
71
+ request_string = "/v2/assets"
72
+ params = params.merge :id => id
73
+ response = post("#{request_string}.json", params)
74
+ end
70
75
 
71
76
  if response[:body].is_a? Array
72
77
  results = []
@@ -0,0 +1,17 @@
1
+ require 'actv/identity'
2
+
3
+ module ACTV
4
+ class Recurrence < Base
5
+
6
+ attr_reader :activityStartDate, :startTime, :activityEndDate, :endTime, :frequencyInterval, :frequency,
7
+ :days, :monthWeekInterval, :activityExclusions
8
+
9
+ alias start_date activityStartDate
10
+ alias start_time startTime
11
+ alias end_date activityEndDate
12
+ alias end_time endTime
13
+ alias frequency_interval frequencyInterval
14
+ alias month_week_interval monthWeekInterval
15
+ alias exclusions activityExclusions
16
+ end
17
+ end
data/lib/actv/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module ACTV
2
- VERSION = "1.1.23"
2
+ VERSION = "1.2.0"
3
3
  end
@@ -61,13 +61,34 @@ describe ACTV::Asset do
61
61
  end
62
62
  end
63
63
 
64
- describe "#legacy_data" do
65
- it "returns a Asset Legacy Data when assetLegacyData is set" do
66
- legacy_data = ACTV::Asset.new(assetGuid: 1, assetName: "Asset #1", assetLegacyData: { assetTypeId: 1, typeName: "Legacy Data", isSearchable: true }).legacy_data
67
- legacy_data.should be_a ACTV::AssetLegacyData
64
+ describe "#recurrences" do
65
+ context 'when recurrences are set' do
66
+ let (:recurrences) { ACTV::Asset.new(assetGuid: 1, assetName: "Asset #1",
67
+ activityRecurrences: [ {activityStartDate: '2014-09-16T08:30:00', activityEndDate: '2014-11-16T15:30:00',
68
+ days: 'Mon, Wed, Fri' } ]).recurrences }
69
+
70
+ it "returns a Recurrences" do
71
+ recurrences[0].should be_a ACTV::Recurrence
72
+ end
68
73
  end
69
74
 
70
- it "returns nil when assetLegacyData is not set" do
75
+
76
+ context 'when recurrences are not set' do
77
+ let (:recurrences) {recurrences = ACTV::Asset.new(assetGuid: 1, assetName: "Asset #1").recurrences }
78
+
79
+ it "returns nil " do
80
+ recurrences[0].should be_nil
81
+ end
82
+ end
83
+ end
84
+
85
+ describe "#legacy_data" do
86
+ it "returns a Asset Legacy Data when assetLegacyData is set" do
87
+ legacy_data = ACTV::Asset.new(assetGuid: 1, assetName: "Asset #1", assetLegacyData: { assetTypeId: 1, typeName: "Legacy Data", isSearchable: true }).legacy_data
88
+ legacy_data.should be_a ACTV::AssetLegacyData
89
+ end
90
+
91
+ it "returns nil when assetLegacyData is not set" do
71
92
  legacy_data = ACTV::Asset.new(assetGuid: 1, assetName: "Asset #1").legacy_data
72
93
  legacy_data.should be_nil
73
94
  end
@@ -179,6 +200,105 @@ describe ACTV::Asset do
179
200
  end
180
201
  end
181
202
 
203
+ describe "#kids?" do
204
+ let(:asset) { ACTV::Asset.new assetGuid: 1 }
205
+ context 'when kidsinterest? is true' do
206
+ before do
207
+ asset.stub kidsinterest?: true
208
+ class Rails
209
+ def self.env
210
+ "development"
211
+ end
212
+ end
213
+ end
214
+
215
+ context "when source system is Active Net" do
216
+ before { asset.stub activenet?: true }
217
+
218
+ context 'when source system is AW Camps' do
219
+ before do
220
+ asset.stub awcamps?: true
221
+ asset.stub awcamps30?: true
222
+ end
223
+ it "evaluates to true" do
224
+ asset.kids?.should eq true
225
+ end
226
+ end
227
+
228
+ context 'when source system is not AW Camps' do
229
+ before do
230
+ asset.stub awcamps?: false
231
+ asset.stub awcamps30?: false
232
+ end
233
+ it "evaluates to true" do
234
+ asset.kids?.should eq true
235
+ end
236
+ end
237
+ end
238
+
239
+ context 'when source system is not Active Net' do
240
+ before { asset.stub activenet?: false }
241
+
242
+ context 'when source system is AW Camps' do
243
+ before do
244
+ asset.stub awcamps?: true
245
+ asset.stub awcamps30?: true
246
+ end
247
+ it "evaluates to true" do
248
+ asset.kids?.should eq true
249
+ end
250
+ end
251
+
252
+ context 'when source system is not AW Camps' do
253
+ before do
254
+ asset.stub awcamps?: false
255
+ asset.stub awcamps30?: false
256
+ end
257
+ it "evaluates to false" do
258
+ asset.kids?.should eq false
259
+ end
260
+ end
261
+ end
262
+ end
263
+
264
+ context 'when kidsinterest? is false' do
265
+ before { asset.stub kidsinterest?: false }
266
+ it 'evaluates to false' do
267
+ asset.kids?.should eq false
268
+ end
269
+ end
270
+ end
271
+
272
+ describe "#kidsinterest?" do
273
+ let(:asset) { ACTV::Asset.new assetGuid: 1, assetMetaInterests: meta_interests }
274
+ context "when kids meta-interest" do
275
+ let(:meta_interests) do
276
+ [ { sequence: '2', metaInterest: { metaInterestName: 'Family' } },
277
+ { sequence: '1', metaInterest: { metaInterestName: 'Kids' } } ]
278
+ end
279
+ it "evaluates to true" do
280
+ asset.kidsinterest?.should eq true
281
+ end
282
+ end
283
+
284
+ context "when other meta-interest" do
285
+ let(:meta_interests) do
286
+ [ { sequence: '2', metaInterest: { metaInterestName: 'NoFamily' } },
287
+ { sequence: '1', metaInterest: { metaInterestName: 'NoKids' } } ]
288
+ end
289
+ it "evaluates to false" do
290
+ asset.kidsinterest?.should eq false
291
+ end
292
+ end
293
+
294
+ context "when no meta-interest" do
295
+ let(:meta_interests) {[]}
296
+ it "evaluates to false" do
297
+ asset.kidsinterest?.should eq false
298
+ end
299
+ end
300
+ end
301
+
182
302
  describe "#meta_interest_paths" do
183
303
  it "returns the meta interest names ordered by sequence" do
184
304
  meta_interests = [ { sequence: '2', metaInterest: { metaInterestName: 'Sq2' } },
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: actv
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.23
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathaniel Barnes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-02 00:00:00.000000000 Z
11
+ date: 2014-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -56,168 +56,168 @@ dependencies:
56
56
  name: nokogiri
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: json
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ! '>='
73
+ - - '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ! '>='
80
+ - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: maruku
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ! '>='
87
+ - - '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ! '>='
94
+ - - '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: pry
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ! '>='
101
+ - - '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ! '>='
108
+ - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rake
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ! '>='
115
+ - - '>='
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ! '>='
122
+ - - '>='
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rspec
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ! '>='
129
+ - - ~>
130
130
  - !ruby/object:Gem::Version
131
- version: '0'
131
+ version: 2.14.1
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ! '>='
136
+ - - ~>
137
137
  - !ruby/object:Gem::Version
138
- version: '0'
138
+ version: 2.14.1
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: simplecov
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ! '>='
143
+ - - '>='
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ! '>='
150
+ - - '>='
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: timecop
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ! '>='
157
+ - - '>='
158
158
  - !ruby/object:Gem::Version
159
159
  version: '0'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ! '>='
164
+ - - '>='
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: webmock
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - ! '>='
171
+ - - '>='
172
172
  - !ruby/object:Gem::Version
173
173
  version: '0'
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - ! '>='
178
+ - - '>='
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: yard
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
- - - ! '>='
185
+ - - '>='
186
186
  - !ruby/object:Gem::Version
187
187
  version: '0'
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - ! '>='
192
+ - - '>='
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0'
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: guard-rspec
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
- - - ! '>='
199
+ - - '>='
200
200
  - !ruby/object:Gem::Version
201
201
  version: '0'
202
202
  type: :development
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
- - - ! '>='
206
+ - - '>='
207
207
  - !ruby/object:Gem::Version
208
208
  version: '0'
209
209
  - !ruby/object:Gem::Dependency
210
- name: active_support
210
+ name: activesupport
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
- - - ! '>='
213
+ - - '>='
214
214
  - !ruby/object:Gem::Version
215
215
  version: '0'
216
216
  type: :development
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
- - - ! '>='
220
+ - - '>='
221
221
  - !ruby/object:Gem::Version
222
222
  version: '0'
223
223
  description: A Ruby wrapper for the Active API
@@ -289,6 +289,7 @@ files:
289
289
  - lib/actv/place.rb
290
290
  - lib/actv/popular_interest.rb
291
291
  - lib/actv/popular_interest_search_results.rb
292
+ - lib/actv/recurrence.rb
292
293
  - lib/actv/request/multipart_with_file.rb
293
294
  - lib/actv/response/parse_json.rb
294
295
  - lib/actv/response/raise_client_error.rb
@@ -353,17 +354,17 @@ require_paths:
353
354
  - lib
354
355
  required_ruby_version: !ruby/object:Gem::Requirement
355
356
  requirements:
356
- - - ! '>='
357
+ - - '>='
357
358
  - !ruby/object:Gem::Version
358
359
  version: '0'
359
360
  required_rubygems_version: !ruby/object:Gem::Requirement
360
361
  requirements:
361
- - - ! '>='
362
+ - - '>='
362
363
  - !ruby/object:Gem::Version
363
364
  version: '0'
364
365
  requirements: []
365
366
  rubyforge_project:
366
- rubygems_version: 2.1.4
367
+ rubygems_version: 2.0.5
367
368
  signing_key:
368
369
  specification_version: 4
369
370
  summary: Active API
@@ -411,4 +412,3 @@ test_files:
411
412
  - spec/fixtures/valid_search_no_results.json
412
413
  - spec/spec_helper.rb
413
414
  - spec/support/helper.rb
414
- has_rdoc: