actv 2.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/lib/actv/asset.rb +13 -1
  3. data/lib/actv/asset_component.rb +1 -2
  4. data/lib/actv/asset_image.rb +6 -1
  5. data/lib/actv/asset_reference.rb +1 -0
  6. data/lib/actv/client.rb +13 -5
  7. data/lib/actv/event.rb +4 -2
  8. data/lib/actv/quiz.rb +15 -0
  9. data/lib/actv/quiz_outcome.rb +7 -0
  10. data/lib/actv/quiz_question.rb +11 -0
  11. data/lib/actv/quiz_question_answer.rb +12 -0
  12. data/lib/actv/search_results.rb +2 -2
  13. data/lib/actv/{article_validator.rb → validators/article_validator.rb} +1 -1
  14. data/lib/actv/{asset_validator.rb → validators/asset_validator.rb} +0 -0
  15. data/lib/actv/{author_validator.rb → validators/author_validator.rb} +1 -1
  16. data/lib/actv/{event_validator.rb → validators/event_validator.rb} +1 -1
  17. data/lib/actv/validators/quiz_outcome_validator.rb +8 -0
  18. data/lib/actv/validators/quiz_question_answer_validator.rb +8 -0
  19. data/lib/actv/validators/quiz_question_validator.rb +8 -0
  20. data/lib/actv/validators/quiz_validator.rb +8 -0
  21. data/lib/actv/version.rb +1 -1
  22. data/spec/actv/asset_component_spec.rb +0 -1
  23. data/spec/actv/asset_image_spec.rb +35 -10
  24. data/spec/actv/event_spec.rb +48 -0
  25. data/spec/actv/quiz_outcome_validator_spec.rb +17 -0
  26. data/spec/actv/quiz_question_answer_spec.rb +23 -0
  27. data/spec/actv/quiz_question_answer_validator_spec.rb +17 -0
  28. data/spec/actv/quiz_question_spec.rb +31 -0
  29. data/spec/actv/quiz_question_validator_spec.rb +17 -0
  30. data/spec/actv/quiz_spec.rb +51 -0
  31. data/spec/actv/quiz_validator_spec.rb +17 -0
  32. data/spec/fixtures/valid_search.json +6 -4
  33. metadata +29 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d7dacbf640d3b5ca331f5987fd72c4cfc547e97f
4
- data.tar.gz: 1a544dc1e1b2d3eff4e1fd34d258a5916dfb87fa
3
+ metadata.gz: 74f4019e9851376560c716f077954fc8fbc510ac
4
+ data.tar.gz: 82f503746ebbcf48a35a91dc396e5f6d7c2b77e9
5
5
  SHA512:
6
- metadata.gz: b1e5263fbc43da66257c88a391443616f0104127db650b7a24194bc733f4d3f9ee066c1ec4bfebb94527a874a25364111565796b5312d0a94cee3399962b7946
7
- data.tar.gz: 0e84e8532d6c86e9ba35be0f9a02444601b57a66be96384ebbaaf2c43b8bf38c03f99d713a40f7005beb7b298a48b3033c46ef397f923cc3d25326d7ce3af3a3
6
+ metadata.gz: d42f3db108dc0a42501e1ce17f083311271f16b1ba2c7771064a21baeb5849d76b1d50b3e30eaf518df506c675d9f697ce1613f9a13dac0a61077f62212fb374
7
+ data.tar.gz: 61604d4171beddaaa212ed2b61c50e78cd8b6702c5adf5e8830d3569ac87420cfde3b8681af6c8b61ffef49685c693118772ffe3e7208467675ff0df4fbbcf32
data/lib/actv/asset.rb CHANGED
@@ -373,8 +373,21 @@ module ACTV
373
373
  end
374
374
  end
375
375
 
376
+ def category_is? name
377
+ @attrs[:assetCategories].any? do |cat|
378
+ cat[:category][:categoryName].downcase == name.downcase
379
+ end
380
+ end
381
+
376
382
  private
377
383
 
384
+ def child_assets_filtered_by_category category
385
+ if components.any?
386
+ children = ACTV.asset components.map(&:assetGuid)
387
+ children.select { |child| child.category_is? category }
388
+ end || []
389
+ end
390
+
378
391
  def image_without_placeholder
379
392
  default_image = 'http://www.active.com/images/events/hotrace.gif'
380
393
  current_image = nil
@@ -414,6 +427,5 @@ module ACTV
414
427
  def kids_friendly_source_system?
415
428
  activenet? || awcamps30? || acm? || researched?
416
429
  end
417
-
418
430
  end
419
431
  end
@@ -1,12 +1,11 @@
1
1
  module ACTV
2
2
  class AssetComponent < Base
3
-
4
3
  attr_reader :assetGuid
5
-
6
4
  alias asset_guid assetGuid
7
5
 
8
6
  def prices
9
7
  ACTV.asset(asset_guid).map(&:prices).first
10
8
  end
9
+
11
10
  end
12
11
  end
@@ -1,11 +1,16 @@
1
1
  module ACTV
2
2
  class AssetImage < Base
3
- attr_reader :imageUrlAdr, :imageName, :imageCaptionTxt, :linkUrl, :linkTarget
3
+ attr_reader :imageUrlAdr, :imageName, :imageType, :imageCaptionTxt, :linkUrl, :linkTarget
4
4
 
5
5
  alias url imageUrlAdr
6
6
  alias name imageName
7
+ alias type imageType
7
8
  alias caption imageCaptionTxt
8
9
  alias link linkUrl
9
10
  alias target linkTarget
11
+
12
+ def video?
13
+ target == "VIDEO" || type == "VIDEO"
14
+ end
10
15
  end
11
16
  end
@@ -7,5 +7,6 @@ module ACTV
7
7
  def type
8
8
  @attrs[:referenceType][:referenceTypeName]
9
9
  end
10
+
10
11
  end
11
12
  end
data/lib/actv/client.rb CHANGED
@@ -1,18 +1,15 @@
1
1
  require 'faraday'
2
+ require 'active_support/core_ext/hash/indifferent_access'
2
3
  require 'actv/article'
3
4
  require 'actv/article_search_results'
4
- require 'actv/article_validator'
5
- require 'actv/asset_validator'
6
5
  require 'actv/asset'
7
6
  require 'actv/asset_factory'
8
7
  require 'actv/author'
9
- require 'actv/author_validator'
10
8
  require 'actv/configurable'
11
9
  require 'actv/error/forbidden'
12
10
  require 'actv/error/not_found'
13
11
  require 'actv/event'
14
12
  require 'actv/event_result'
15
- require 'actv/event_validator'
16
13
  require 'actv/asset_stats_result'
17
14
  require 'actv/evergreen'
18
15
  require 'actv/sub_event'
@@ -22,8 +19,19 @@ require 'actv/popular_interest_search_results'
22
19
  require 'actv/user'
23
20
  require 'actv/organizer'
24
21
  require 'actv/organizer_results'
22
+ require 'actv/quiz'
23
+ require 'actv/quiz_outcome'
24
+ require 'actv/quiz_question'
25
+ require 'actv/quiz_question_answer'
26
+ require 'actv/validators/article_validator'
27
+ require 'actv/validators/asset_validator'
28
+ require 'actv/validators/author_validator'
29
+ require 'actv/validators/event_validator'
30
+ require 'actv/validators/quiz_validator'
31
+ require 'actv/validators/quiz_outcome_validator'
32
+ require 'actv/validators/quiz_question_validator'
33
+ require 'actv/validators/quiz_question_answer_validator'
25
34
  require 'simple_oauth'
26
- require 'active_support/core_ext/hash/indifferent_access'
27
35
 
28
36
  module ACTV
29
37
  # Wrapper for the ACTV REST API
data/lib/actv/event.rb CHANGED
@@ -147,6 +147,10 @@ module ACTV
147
147
  true
148
148
  end
149
149
 
150
+ def video
151
+ self.images.detect { |i| i.video? }
152
+ end
153
+
150
154
  alias online_registration? online_registration_available?
151
155
  alias reg_open? registration_open?
152
156
  alias reg_closed? registration_closed?
@@ -212,5 +216,3 @@ module ACTV
212
216
  end
213
217
  end
214
218
  end
215
-
216
-
data/lib/actv/quiz.rb ADDED
@@ -0,0 +1,15 @@
1
+ module ACTV
2
+ class Quiz < Asset
3
+ def self.valid? response
4
+ ACTV::QuizValidator.new(response).valid?
5
+ end
6
+
7
+ def questions
8
+ @questions ||= child_assets_filtered_by_category 'question'
9
+ end
10
+
11
+ def outcomes
12
+ @outcomes ||= child_assets_filtered_by_category 'outcome'
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,7 @@
1
+ module ACTV
2
+ class QuizOutcome < Asset
3
+ def self.valid? response
4
+ ACTV::QuizOutcomeValidator.new(response).valid?
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,11 @@
1
+ module ACTV
2
+ class QuizQuestion < Asset
3
+ def self.valid? response
4
+ ACTV::QuizQuestionValidator.new(response).valid?
5
+ end
6
+
7
+ def answers
8
+ @answers ||= child_assets_filtered_by_category 'answer'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ module ACTV
2
+ class QuizQuestionAnswer < Asset
3
+ def self.valid? response
4
+ ACTV::QuizQuestionAnswerValidator.new(response).valid?
5
+ end
6
+
7
+ def outcome
8
+ reference = references.find { |ref| ref.type.downcase == 'outcome' }
9
+ @outcome ||= ACTV.asset(reference.id).first if reference
10
+ end
11
+ end
12
+ end
@@ -7,10 +7,10 @@ module ACTV
7
7
  class SearchResults < ACTV::Base
8
8
  attr_reader :items_per_page, :start_index, :total_results, :original_query, :actual_query
9
9
 
10
- # @return [Array<ACTV::Asset>]
11
10
  def results
12
11
  @results ||= Array(@attrs[:results]).map do |asset|
13
- ACTV::Asset.new(asset)
12
+ response = { body: asset }
13
+ ACTV::Asset.from_response response
14
14
  end
15
15
  end
16
16
  alias to_a results
@@ -1,4 +1,4 @@
1
- require 'actv/asset_validator'
1
+ require 'actv/validators/asset_validator'
2
2
  module ACTV
3
3
  class ArticleValidator < AssetValidator
4
4
  def valid?
@@ -1,4 +1,4 @@
1
- require 'actv/author_validator'
1
+ require 'actv/validators/asset_validator'
2
2
  module ACTV
3
3
  class AuthorValidator < AssetValidator
4
4
  def valid?
@@ -1,4 +1,4 @@
1
- require 'actv/asset_validator'
1
+ require 'actv/validators/asset_validator'
2
2
  module ACTV
3
3
  class EventValidator < AssetValidator
4
4
  def valid?
@@ -0,0 +1,8 @@
1
+ require 'actv/validators/asset_validator'
2
+ module ACTV
3
+ class QuizOutcomeValidator < AssetValidator
4
+ def valid?
5
+ category_is?('outcome')
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'actv/validators/asset_validator'
2
+ module ACTV
3
+ class QuizQuestionAnswerValidator < AssetValidator
4
+ def valid?
5
+ category_is?('answer')
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'actv/validators/asset_validator'
2
+ module ACTV
3
+ class QuizQuestionValidator < AssetValidator
4
+ def valid?
5
+ category_is?('question')
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'actv/validators/asset_validator'
2
+ module ACTV
3
+ class QuizValidator < AssetValidator
4
+ def valid?
5
+ category_is?('quiz')
6
+ end
7
+ end
8
+ end
data/lib/actv/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module ACTV
2
- VERSION = "2.0.0"
2
+ VERSION = "2.1.0"
3
3
  end
@@ -8,7 +8,6 @@ describe ACTV::AssetComponent do
8
8
  describe "#prices" do
9
9
  before(:each) do
10
10
  stub_request(:post, "http://api.amp.active.com/v2/assets.json").
11
- with(:body => {"id"=>""}, :headers => {'Accept'=>'application/json', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'Content-Type'=>'application/x-www-form-urlencoded', 'User-Agent'=>'Active Ruby Gem 1.4.4'}).
12
11
  to_return(body: fixture("valid_component_asset.json"), headers: { content_type: "application/json; charset=utf-8" })
13
12
  end
14
13
 
@@ -1,27 +1,52 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe ACTV::AssetImage do
4
-
5
- before(:each) do
6
- @img = ACTV::AssetImage.new(imageUrlAdr: 'http://test.com/1.jpg',
7
- imageName: 'image1', imageCaptionTxt: 'caption1', linkUrl: 'http://test.com/',
8
- linkTarget: '_blank')
9
- end
4
+ let(:imageType) { 'IMAGE' }
5
+ let(:linkTarget) { '_blank' }
6
+ subject(:img) { ACTV::AssetImage.new({
7
+ imageUrlAdr: 'http://test.com/1.jpg',
8
+ imageName: 'image1',
9
+ imageType: imageType,
10
+ imageCaptionTxt: 'caption1',
11
+ linkUrl: 'http://test.com/',
12
+ linkTarget: linkTarget
13
+ }) }
10
14
 
11
15
  describe "attribute accessors and aliases" do
12
- subject { @img }
13
-
14
16
  its(:url){ should eq 'http://test.com/1.jpg' }
15
17
  its(:name){ should eq 'image1' }
18
+ its(:type){ should eq 'IMAGE' }
16
19
  its(:caption){ should eq 'caption1' }
17
20
  its(:link){ should eq 'http://test.com/'}
18
21
  its(:target){ should eq '_blank' }
19
-
20
22
  its(:imageUrlAdr){ should eq 'http://test.com/1.jpg' }
21
23
  its(:imageName){ should eq 'image1' }
24
+ its(:imageType){ should eq 'IMAGE' }
22
25
  its(:imageCaptionTxt){ should eq 'caption1' }
23
26
  its(:linkUrl){ should eq 'http://test.com/'}
24
27
  its(:linkTarget){ should eq '_blank' }
25
28
  end
26
29
 
27
- end
30
+ describe "#video?" do
31
+ context "when neither imageType nor linkTarget are video" do
32
+ it "knows it's not a video AssetImage" do
33
+ expect(subject.video?).to be_false
34
+ end
35
+ end
36
+
37
+ context "when imageType is video" do
38
+ let(:imageType) { 'VIDEO' }
39
+ it "knows it's a video AssetImage" do
40
+ expect(subject.video?).to be_true
41
+ end
42
+ end
43
+
44
+ context "when linkTarget is video" do
45
+ let(:linkTarget) { 'VIDEO' }
46
+ it "knows it's a video AssetImage" do
47
+ expect(subject.video?).to be_true
48
+ end
49
+ end
50
+ end
51
+
52
+ end
@@ -336,4 +336,52 @@ describe ACTV::Event do
336
336
  end
337
337
  end
338
338
  end
339
+
340
+ describe '#video' do
341
+ context 'when the event has a video AssetImage' do
342
+
343
+ let(:image1) { ACTV::AssetImage.new({
344
+ imageUrlAdr: 'http://test.com/1.jpg',
345
+ imageName: 'image1',
346
+ imageType: 'VIDEO',
347
+ imageCaptionTxt: 'caption1',
348
+ linkUrl: 'http://test.com/',
349
+ linkTarget: 'VIDEO'
350
+ }) }
351
+
352
+ before do
353
+ allow(subject).to receive(:images).and_return([image1])
354
+ end
355
+
356
+ it 'returns the video AssetImage' do
357
+ subject.video.should eq image1
358
+ end
359
+
360
+ context 'when the event has more than one video AssetImage' do
361
+
362
+ let(:image2) { ACTV::AssetImage.new({
363
+ imageUrlAdr: 'http://test.com/2.jpg',
364
+ imageName: 'image2',
365
+ imageType: 'VIDEO',
366
+ imageCaptionTxt: 'caption2',
367
+ linkUrl: 'http://test.com/',
368
+ linkTarget: 'VIDEO'
369
+ }) }
370
+
371
+ before do
372
+ allow(subject).to receive(:images).and_return([image1, image2])
373
+ end
374
+
375
+ it 'returns the first video AssetImage' do
376
+ subject.video.should eq image1
377
+ end
378
+ end
379
+ end
380
+
381
+ context 'when the event has no video AssetImage' do
382
+ it 'returns nil' do
383
+ subject.video.should be_nil
384
+ end
385
+ end
386
+ end
339
387
  end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe ACTV::QuizOutcomeValidator do
4
+ let(:asset_categories) { [] }
5
+ let(:response) { { assetGuid: 1, assetCategories: asset_categories } }
6
+ subject(:validator) { ACTV::QuizOutcomeValidator.new(response).valid? }
7
+
8
+ describe '#valid?' do
9
+ context 'when the response is valid' do
10
+ let(:asset_categories) { [ { category: { categoryName: "Outcome", categoryTaxonomy: "Creative Work:Quiz:Outcome" } } ] }
11
+ it { should be_true }
12
+ end
13
+ context 'when the response is not valid' do
14
+ it { should be_false }
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+ describe ACTV::QuizQuestionAnswer do
3
+ let(:asset_categories) { [ { category: { categoryName: "Answer", categoryTaxonomy: "Creative Work:Quiz:Question:Answer" } } ] }
4
+ let(:response) { { body: { assetGuid: 1, assetCategories: asset_categories } } }
5
+ subject(:answer) { ACTV::Asset.from_response response }
6
+
7
+ describe '#outcome' do
8
+ subject(:outcome) { answer.outcome }
9
+ context 'when there is an outcome' do
10
+ it 'returns an outcome asset' do
11
+ outcome_asset = double :outcome, id: 1
12
+ references = [double(type:'outcome', id: 1),
13
+ double(type:'not_outcome', id: 2)]
14
+ allow(answer).to receive(:references) { references }
15
+ allow(ACTV).to receive(:asset).with(outcome_asset.id) { [outcome_asset] }
16
+ expect(outcome.id).to eq outcome_asset.id
17
+ end
18
+ end
19
+ context 'when there is not an outcome' do
20
+ it { should be_nil }
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe ACTV::QuizQuestionAnswerValidator do
4
+ let(:asset_categories) { [] }
5
+ let(:response) { { assetGuid: 1, assetCategories: asset_categories } }
6
+ subject(:validator) { ACTV::QuizQuestionAnswerValidator.new(response).valid? }
7
+
8
+ describe '#valid?' do
9
+ context 'when the response is valid' do
10
+ let(:asset_categories) { [ { category: { categoryName: "Answer", categoryTaxonomy: "Creative Work:Quiz:Question:Answer" } } ] }
11
+ it { should be_true }
12
+ end
13
+ context 'when the response is not valid' do
14
+ it { should be_false }
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,31 @@
1
+ require "spec_helper"
2
+
3
+ describe ACTV::QuizQuestion do
4
+ let(:asset_categories) { [ { category: { categoryName: "Question", categoryTaxonomy: "Creative Work:Quiz:Question" } } ] }
5
+ let(:response) { { body: { assetGuid: 1, assetCategories: asset_categories } } }
6
+ subject(:question) { ACTV::Asset.from_response response }
7
+
8
+ describe '#answers' do
9
+ subject(:answers) { question.answers }
10
+ context 'when there are answer assets' do
11
+ it 'returns an array of quiz answers' do
12
+ answer = double(:answer, assetGuid: 123)
13
+ allow(answer).to receive(:category_is?).with('answer') { true }
14
+ not_answer = double(:not_answer, assetGuid: 234)
15
+ allow(not_answer).to receive(:category_is?).with('answer') { false }
16
+ components = [answer, not_answer]
17
+ allow(question).to receive(:components) { components }
18
+ allow(ACTV).to receive(:asset) { components }
19
+
20
+ expect(answers).to eq [answer]
21
+ end
22
+ end
23
+
24
+ context 'when there are not answer assets' do
25
+ it 'should be empty' do
26
+ allow(question).to receive(:components) { [] }
27
+ expect(answers).to eq []
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe ACTV::QuizQuestionValidator do
4
+ let(:asset_categories) { [] }
5
+ let(:response) { { assetGuid: 1, assetCategories: asset_categories } }
6
+ subject(:validator) { ACTV::QuizQuestionValidator.new(response).valid? }
7
+
8
+ describe '#valid?' do
9
+ context 'when the response is valid' do
10
+ let(:asset_categories) { [ { category: { categoryName: "Question", categoryTaxonomy: "Creative Work:Quiz:Question" } } ] }
11
+ it { should be_true }
12
+ end
13
+ context 'when the response is not valid' do
14
+ it { should be_false }
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,51 @@
1
+ require "spec_helper"
2
+
3
+ describe ACTV::Quiz do
4
+ let(:asset_categories) { [ { category: { categoryName: "Quiz", categoryTaxonomy: "Creative Work:Quiz" } } ] }
5
+ let(:response) { { body: { assetGuid: 1, assetCategories: asset_categories } } }
6
+ subject(:quiz) { ACTV::Asset.from_response response }
7
+
8
+ describe '#questions' do
9
+ subject(:questions) { quiz.questions }
10
+
11
+ context 'when there are question assets' do
12
+ it 'returns an array of quiz questions' do
13
+ question = double(:question, assetGuid: 123)
14
+ allow(question).to receive(:category_is?).with('question') { true }
15
+ not_question = double(:not_question, assetGuid: 234)
16
+ allow(not_question).to receive(:category_is?).with('question') { false }
17
+ components = [question, not_question]
18
+ allow(quiz).to receive(:components) { components }
19
+ allow(ACTV).to receive(:asset) { components }
20
+
21
+ expect(questions).to eq [question]
22
+ end
23
+ end
24
+
25
+ context 'when there are not question assets' do
26
+ it { should be_empty }
27
+ end
28
+ end
29
+
30
+ describe '#outcomes' do
31
+ subject(:outcomes) { quiz.outcomes }
32
+
33
+ context 'when there are outcome assets' do
34
+ it 'returns an array of quiz outcomes' do
35
+ outcome = double(:outcome, assetGuid: 123)
36
+ allow(outcome).to receive(:category_is?).with('outcome') { true }
37
+ not_outcome = double(:not_outcome, assetGuid: 234)
38
+ allow(not_outcome).to receive(:category_is?).with('outcome') { false }
39
+ components = [outcome, not_outcome]
40
+ allow(quiz).to receive(:components) { components }
41
+ allow(ACTV).to receive(:asset) { components }
42
+
43
+ expect(outcomes).to eq [outcome]
44
+ end
45
+ end
46
+
47
+ context 'when there are no outcome assets' do
48
+ it { should be_empty }
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe ACTV::QuizValidator do
4
+ let(:asset_categories) { [] }
5
+ let(:response) { { assetGuid: 1, assetCategories: asset_categories } }
6
+ subject(:validator) { ACTV::QuizValidator.new(response).valid? }
7
+
8
+ describe '#valid?' do
9
+ context 'when the response is valid' do
10
+ let(:asset_categories) { [ { category: { categoryName: "Quiz", categoryTaxonomy: "Creative Work:Quiz" } } ] }
11
+ it { should be_true }
12
+ end
13
+ context 'when the response is not valid' do
14
+ it { should be_false }
15
+ end
16
+ end
17
+ end
@@ -186,7 +186,8 @@
186
186
  "sequence": "2",
187
187
  "category": {
188
188
  "categoryId": "28",
189
- "categoryName": "Experts"
189
+ "categoryName": "Experts",
190
+ "categoryTaxonomy": "Person/Experts"
190
191
  }
191
192
  }
192
193
  ],
@@ -411,7 +412,7 @@
411
412
  }
412
413
  }
413
414
  ],
414
- "assetCategories": "",
415
+ "assetCategories": [ ],
415
416
  "assetMetaInterests": "",
416
417
  "assetComponents": [ ],
417
418
  "assetServiceHostName": "asset-01"
@@ -1207,7 +1208,8 @@
1207
1208
  "sequence": "2",
1208
1209
  "category": {
1209
1210
  "categoryId": "22",
1210
- "categoryName": "Races"
1211
+ "categoryName": "Races",
1212
+ "categoryTaxonomy": "Event/Races"
1211
1213
  }
1212
1214
  }
1213
1215
  ],
@@ -1279,4 +1281,4 @@
1279
1281
  "start_index": 0,
1280
1282
  "total_results": 211
1281
1283
 
1282
- }
1284
+ }
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: 2.0.0
4
+ version: 2.1.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: 2015-07-07 00:00:00.000000000 Z
11
+ date: 2015-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -255,7 +255,6 @@ files:
255
255
  - lib/actv/address.rb
256
256
  - lib/actv/article.rb
257
257
  - lib/actv/article_search_results.rb
258
- - lib/actv/article_validator.rb
259
258
  - lib/actv/asset.rb
260
259
  - lib/actv/asset_channel.rb
261
260
  - lib/actv/asset_component.rb
@@ -271,9 +270,7 @@ files:
271
270
  - lib/actv/asset_status.rb
272
271
  - lib/actv/asset_tag.rb
273
272
  - lib/actv/asset_topic.rb
274
- - lib/actv/asset_validator.rb
275
273
  - lib/actv/author.rb
276
- - lib/actv/author_validator.rb
277
274
  - lib/actv/base.rb
278
275
  - lib/actv/channel.rb
279
276
  - lib/actv/client.rb
@@ -294,7 +291,6 @@ files:
294
291
  - lib/actv/event.rb
295
292
  - lib/actv/event_result.rb
296
293
  - lib/actv/event_search_results.rb
297
- - lib/actv/event_validator.rb
298
294
  - lib/actv/evergreen.rb
299
295
  - lib/actv/facet.rb
300
296
  - lib/actv/facet_term.rb
@@ -308,6 +304,10 @@ files:
308
304
  - lib/actv/place.rb
309
305
  - lib/actv/popular_interest.rb
310
306
  - lib/actv/popular_interest_search_results.rb
307
+ - lib/actv/quiz.rb
308
+ - lib/actv/quiz_outcome.rb
309
+ - lib/actv/quiz_question.rb
310
+ - lib/actv/quiz_question_answer.rb
311
311
  - lib/actv/recurrence.rb
312
312
  - lib/actv/request/multipart_with_file.rb
313
313
  - lib/actv/response/parse_json.rb
@@ -319,6 +319,14 @@ files:
319
319
  - lib/actv/tag.rb
320
320
  - lib/actv/topic.rb
321
321
  - lib/actv/user.rb
322
+ - lib/actv/validators/article_validator.rb
323
+ - lib/actv/validators/asset_validator.rb
324
+ - lib/actv/validators/author_validator.rb
325
+ - lib/actv/validators/event_validator.rb
326
+ - lib/actv/validators/quiz_outcome_validator.rb
327
+ - lib/actv/validators/quiz_question_answer_validator.rb
328
+ - lib/actv/validators/quiz_question_validator.rb
329
+ - lib/actv/validators/quiz_validator.rb
322
330
  - lib/actv/version.rb
323
331
  - spec/actv/article_search_results_spec.rb
324
332
  - spec/actv/article_spec.rb
@@ -353,6 +361,13 @@ files:
353
361
  - spec/actv/identifiable_spec.rb
354
362
  - spec/actv/null_object_spec.rb
355
363
  - spec/actv/place_spec.rb
364
+ - spec/actv/quiz_outcome_validator_spec.rb
365
+ - spec/actv/quiz_question_answer_spec.rb
366
+ - spec/actv/quiz_question_answer_validator_spec.rb
367
+ - spec/actv/quiz_question_spec.rb
368
+ - spec/actv/quiz_question_validator_spec.rb
369
+ - spec/actv/quiz_spec.rb
370
+ - spec/actv/quiz_validator_spec.rb
356
371
  - spec/actv/search_results_spec.rb
357
372
  - spec/actv/user_spec.rb
358
373
  - spec/actv_spec.rb
@@ -397,7 +412,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
397
412
  version: '0'
398
413
  requirements: []
399
414
  rubyforge_project:
400
- rubygems_version: 2.0.14
415
+ rubygems_version: 2.1.11
401
416
  signing_key:
402
417
  specification_version: 4
403
418
  summary: Active API
@@ -435,6 +450,13 @@ test_files:
435
450
  - spec/actv/identifiable_spec.rb
436
451
  - spec/actv/null_object_spec.rb
437
452
  - spec/actv/place_spec.rb
453
+ - spec/actv/quiz_outcome_validator_spec.rb
454
+ - spec/actv/quiz_question_answer_spec.rb
455
+ - spec/actv/quiz_question_answer_validator_spec.rb
456
+ - spec/actv/quiz_question_spec.rb
457
+ - spec/actv/quiz_question_validator_spec.rb
458
+ - spec/actv/quiz_spec.rb
459
+ - spec/actv/quiz_validator_spec.rb
438
460
  - spec/actv/search_results_spec.rb
439
461
  - spec/actv/user_spec.rb
440
462
  - spec/actv_spec.rb