actv 2.9.2 → 2.10.0
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.
- checksums.yaml +4 -4
- data/actv.gemspec +1 -1
- data/lib/actv/client.rb +15 -1
- data/lib/actv/validators/video_validator.rb +8 -0
- data/lib/actv/version.rb +1 -1
- data/lib/actv/video.rb +56 -0
- data/lib/actv/video_search_results.rb +11 -0
- data/spec/actv/client/videos_spec.rb +53 -0
- data/spec/actv/video_search_result_spec.rb +22 -0
- data/spec/actv/video_spec.rb +122 -0
- data/spec/fixtures/valid_video.json +247 -0
- metadata +17 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2175a917870794aed398b55920c82bedc319d86
|
4
|
+
data.tar.gz: a58b0431c34232399372295aae2e0be43941285e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec4f7d7995271be28577d6fe4bc54478c3ea7e49e04df697835778f1d769a16086799be92f11c0508751f5daae988bea0e0943458e45d7506c46e6fad2647826
|
7
|
+
data.tar.gz: 74a01c857356437dbfbbe4ebbc4625136e32964049b050827c06fb18d330a4f6048026d6e8466e09075aa13e1613021badf1d42c23a42c9fbaf481eec1b414df
|
data/actv.gemspec
CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.add_development_dependency 'timecop'
|
17
17
|
gem.add_development_dependency 'webmock'
|
18
18
|
gem.add_development_dependency 'yard'
|
19
|
-
gem.add_development_dependency 'activesupport'
|
19
|
+
gem.add_development_dependency 'activesupport', '4.2.6'
|
20
20
|
|
21
21
|
|
22
22
|
gem.authors = ["Nathaniel Barnes"]
|
data/lib/actv/client.rb
CHANGED
@@ -23,6 +23,8 @@ require 'actv/quiz'
|
|
23
23
|
require 'actv/quiz_outcome'
|
24
24
|
require 'actv/quiz_question'
|
25
25
|
require 'actv/quiz_question_answer'
|
26
|
+
require 'actv/video'
|
27
|
+
require 'actv/video_search_results'
|
26
28
|
require 'actv/validators/article_validator'
|
27
29
|
require 'actv/validators/asset_validator'
|
28
30
|
require 'actv/validators/author_validator'
|
@@ -31,8 +33,8 @@ require 'actv/validators/quiz_validator'
|
|
31
33
|
require 'actv/validators/quiz_outcome_validator'
|
32
34
|
require 'actv/validators/quiz_question_validator'
|
33
35
|
require 'actv/validators/quiz_question_answer_validator'
|
36
|
+
require 'actv/validators/video_validator'
|
34
37
|
require 'simple_oauth'
|
35
|
-
|
36
38
|
module ACTV
|
37
39
|
# Wrapper for the ACTV REST API
|
38
40
|
#
|
@@ -178,6 +180,18 @@ module ACTV
|
|
178
180
|
end
|
179
181
|
end
|
180
182
|
|
183
|
+
def video(id, params={})
|
184
|
+
request_string = "/v2/assets/#{id}"
|
185
|
+
response = get "#{request_string}.json", params
|
186
|
+
|
187
|
+
ACTV::Video.new response[:body]
|
188
|
+
end
|
189
|
+
|
190
|
+
def videos(q, params={})
|
191
|
+
response = get("/v2/search.json", params.merge({query: q, category: 'videos'}))
|
192
|
+
ACTV::VideoSearchResults.from_response(response)
|
193
|
+
end
|
194
|
+
|
181
195
|
# Returns popular assets that match a specified query.
|
182
196
|
#
|
183
197
|
# @authentication_required No
|
data/lib/actv/version.rb
CHANGED
data/lib/actv/video.rb
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'actv/asset'
|
2
|
+
|
3
|
+
module ACTV
|
4
|
+
class Video < Asset
|
5
|
+
attr_reader :sorCreateDtm, :urlAdr
|
6
|
+
alias publish_date sorCreateDtm
|
7
|
+
alias source urlAdr
|
8
|
+
alias channel sub_topic
|
9
|
+
|
10
|
+
def self.valid? response
|
11
|
+
ACTV::VideoValidator.new(response).valid?
|
12
|
+
end
|
13
|
+
|
14
|
+
def keywords
|
15
|
+
@keywords ||= tag_by_description 'keywords'
|
16
|
+
end
|
17
|
+
|
18
|
+
def duration
|
19
|
+
@duration ||= tag_by_description 'duration'
|
20
|
+
end
|
21
|
+
|
22
|
+
def height
|
23
|
+
@height ||= tag_by_description 'height'
|
24
|
+
end
|
25
|
+
|
26
|
+
def type
|
27
|
+
@type ||= tag_by_description 'type'
|
28
|
+
end
|
29
|
+
|
30
|
+
def width
|
31
|
+
@width ||= tag_by_description 'width'
|
32
|
+
end
|
33
|
+
|
34
|
+
def filesize
|
35
|
+
@filesize ||= tag_by_description 'filesize'
|
36
|
+
end
|
37
|
+
|
38
|
+
def bitrate
|
39
|
+
@bitrate ||= tag_by_description 'bitrate'
|
40
|
+
end
|
41
|
+
|
42
|
+
def canonicalUrl
|
43
|
+
@canonical_url ||= tag_by_description 'canonicalUrl'
|
44
|
+
end
|
45
|
+
|
46
|
+
alias canonical_url canonicalUrl
|
47
|
+
|
48
|
+
def image
|
49
|
+
@image ||= image_by_name 'videoImage'
|
50
|
+
end
|
51
|
+
|
52
|
+
def cover
|
53
|
+
image.url if image
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ACTV::Client do
|
4
|
+
let(:client){ ACTV::Client.new }
|
5
|
+
|
6
|
+
describe "#video" do
|
7
|
+
before do
|
8
|
+
stub_get("/v2/assets/valid_video.json").
|
9
|
+
to_return(body: fixture("valid_video.json"), headers: {content_type: "application/json; charset=utf-8"})
|
10
|
+
end
|
11
|
+
let(:video){ client.video("valid_video") }
|
12
|
+
|
13
|
+
context "with a valid video ID passed" do
|
14
|
+
|
15
|
+
it "should return the correct type" do
|
16
|
+
expect(video.type).to eq("video/mp4")
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should return the correct source" do
|
20
|
+
expect(video.source).to eq("http://rodale.videodownload.worldnow.com/RODALE_2505201618134176078AA.mp4")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "#videos" do
|
26
|
+
context "performs a video search with no results" do
|
27
|
+
|
28
|
+
before do
|
29
|
+
stub_get("/v2/search.json?query=test&category=videos").
|
30
|
+
to_return(body: fixture("valid_search_no_results.json"), headers: {content_type: "application/json; charset=utf-8"})
|
31
|
+
end
|
32
|
+
|
33
|
+
let(:search_results){ client.videos('test') }
|
34
|
+
|
35
|
+
it 'returns an empty array of assets in results' do
|
36
|
+
expect(search_results.results.size).to eq(0)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
context "performs a search with results" do
|
41
|
+
before do
|
42
|
+
stub_get("/v2/search.json?query=running&category=videos").
|
43
|
+
to_return(body: fixture("valid_search.json"), headers: {content_type: "application/json; charset=utf-8"})
|
44
|
+
end
|
45
|
+
let(:search_results){ client.videos('running') }
|
46
|
+
|
47
|
+
it 'returns the correct array of assets in the results' do
|
48
|
+
expect(search_results.results.first.assetName).to eq('Running 5K')
|
49
|
+
expect(search_results.results.size).to eq(5)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ACTV::VideoSearchResults do
|
4
|
+
describe '#results' do
|
5
|
+
context "when results is set" do
|
6
|
+
let(:assets){ [{assetGuid: '4cfb7657-6f5a-4a2a-adf3-c2b6986cb1eb', assetName: 'QA test'}, {assetGuid: 'eeb5a96a-dc6c-4a22-ad42-c0ce18832669', assetName: 'QA test2'}] }
|
7
|
+
let(:results){ ACTV::VideoSearchResults.new({results: assets}).results }
|
8
|
+
|
9
|
+
it 'should return an array of ACTV::Video' do
|
10
|
+
expect(results).to be_a Array
|
11
|
+
expect(results.first).to be_a ACTV::Video
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
context "when results is not set" do
|
16
|
+
let(:results){ ACTV::VideoSearchResults.new({}).results }
|
17
|
+
it "should return an empty array" do
|
18
|
+
expect(results).to eq([])
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,122 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ACTV::Video do
|
4
|
+
let(:asset_images) { [{:imageUrlAdr => "http://RODALE.images.worldnow.com/images/12508455_vtf.jpg", :imageName => "videoImage"}] }
|
5
|
+
let(:urlAdr) { "http://rodale.videodownload.worldnow.com/RODALE_0906201614333627818AA.mp4" }
|
6
|
+
let(:asset_tags) { [{:tag => {:tagId => "1794337", :tagName => "video/mp4", :tagDescription => "type"}},
|
7
|
+
{:tag => {:tagId => "1794525", :tagName => "640", :tagDescription => "width"}},
|
8
|
+
{:tag => {:tagId => "1794598", :tagName => "997", :tagDescription => "bitrate"}},
|
9
|
+
{:tag => {:tagId => "1794597", :tagName => "training,fitness,health & injuries", :tagDescription => "keywords"}},
|
10
|
+
{:tag => {:tagId => "1794599", :tagName => "140", :tagDescription => "duration"}},
|
11
|
+
{:tag => {:tagId => "1794526", :tagName => "360", :tagDescription => "height"}},
|
12
|
+
{:tag => {:tagId => "1794600", :tagName => "18370674", :tagDescription => "filesize"}},
|
13
|
+
{:tag => {:tagId => "1795103", :tagName => "http://rodale.worldnow.com/clip/12508455/these-foam-rolling-moves-can-help-you-recover-faster", :tagDescription => "canonicalUrl"}}] }
|
14
|
+
let(:asset_categories) { [{:sequence => "1", :category => {:categoryId => "8", :categoryTaxonomy => "Creative Work/Videos", :categoryName => "Videos"}}] }
|
15
|
+
|
16
|
+
let(:response) { {assetGuid: 1,
|
17
|
+
urlAdr: urlAdr,
|
18
|
+
assetTags: asset_tags,
|
19
|
+
assetImages: asset_images,
|
20
|
+
assetCategories: asset_categories} }
|
21
|
+
let(:video) { ACTV::Video.new response }
|
22
|
+
|
23
|
+
describe "#self.valid?" do
|
24
|
+
let(:valid) { ACTV::Video.valid? response }
|
25
|
+
|
26
|
+
context "when the category name is videos" do
|
27
|
+
let(:asset_categories) { [{category: {categoryName: "Videos", categoryTaxonomy: ""}}] }
|
28
|
+
|
29
|
+
it "should return true" do
|
30
|
+
expect(valid).to be true
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context "when the category name is articles" do
|
35
|
+
|
36
|
+
let(:asset_categories) { [{category: {categoryName: "Articles", categoryTaxonomy: ""}}] }
|
37
|
+
it "should return false" do
|
38
|
+
expect(valid).to be false
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "#source" do
|
44
|
+
context "when a video source is exists" do
|
45
|
+
it "should return video play source" do
|
46
|
+
expect(video.source).to eq(urlAdr)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe "#keywords" do
|
52
|
+
context "when a video tag with tagDescription equal keywords exists" do
|
53
|
+
it "should return keywords" do
|
54
|
+
expect(video.keywords).to eq("training,fitness,health & injuries")
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe "#type" do
|
60
|
+
context "when a video tag with tagDescription equal type exists" do
|
61
|
+
it "should return video type as 'video/mp4'" do
|
62
|
+
expect(video.type).to eq("video/mp4")
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe "#width" do
|
68
|
+
context "when a video tag with tagDescription equal width exists" do
|
69
|
+
it "should return video width" do
|
70
|
+
expect(video.width).to eq("640")
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
describe "#height" do
|
76
|
+
context "when a video tag with tagDescription equal height exists" do
|
77
|
+
it "should return video height" do
|
78
|
+
expect(video.height).to eq("360")
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
describe "#bitrate" do
|
84
|
+
context "when a video tag with tagDescription equal bitrate exists" do
|
85
|
+
it "should return bitrate" do
|
86
|
+
expect(video.bitrate).to eq("997")
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
describe "#duration" do
|
92
|
+
context 'when a video tag with tagDescription equal duration exists' do
|
93
|
+
it "should return duration" do
|
94
|
+
expect(video.duration).to eq("140")
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
describe "#filesize" do
|
100
|
+
context "when a video tag with tagDescription equal filesize exists" do
|
101
|
+
it "should return filesize" do
|
102
|
+
expect(video.filesize).to eq("18370674")
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
describe "#canonical_url" do
|
108
|
+
context "when a video tag with tagDescription equal canonical_url exists" do
|
109
|
+
it "should return canonical url" do
|
110
|
+
expect(video.canonical_url).to eq("http://rodale.worldnow.com/clip/12508455/these-foam-rolling-moves-can-help-you-recover-faster")
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
describe "#cover" do
|
116
|
+
context "when a video image exists" do
|
117
|
+
it "should return video cover" do
|
118
|
+
expect(video.cover).to eq("http://RODALE.images.worldnow.com/images/12508455_vtf.jpg")
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
@@ -0,0 +1,247 @@
|
|
1
|
+
{
|
2
|
+
"assetStatus": {
|
3
|
+
"assetStatusId": "2",
|
4
|
+
"assetStatusName": "VISIBLE"
|
5
|
+
},
|
6
|
+
"organization": {},
|
7
|
+
"place": {
|
8
|
+
"placeGuid": "b61c3acf-97b2-4411-ace6-62cef6dfc006",
|
9
|
+
"placeName": "Article",
|
10
|
+
"placeDsc": "",
|
11
|
+
"placeUrlAdr": "",
|
12
|
+
"addressLine1Txt": " ",
|
13
|
+
"addressLine2Txt": "",
|
14
|
+
"cityName": " ",
|
15
|
+
"stateProvinceCode": "AP",
|
16
|
+
"localityName": "",
|
17
|
+
"postalCode": "96373",
|
18
|
+
"countryName": "United States",
|
19
|
+
"countryCode": "USA",
|
20
|
+
"timezone": "",
|
21
|
+
"timezoneOffset": -10,
|
22
|
+
"timezoneDST": 0,
|
23
|
+
"latitude": "",
|
24
|
+
"longitude": "",
|
25
|
+
"directionsTxt": ""
|
26
|
+
},
|
27
|
+
"evergreenParentAsset": {},
|
28
|
+
"sourceSystem": {
|
29
|
+
"sourceSystemName": "Active.com Video",
|
30
|
+
"legacyGuid": "4D08F839-FC7B-4EA5-968F-E93BEB0894E7",
|
31
|
+
"affiliate": "false"
|
32
|
+
},
|
33
|
+
"assetRootAsset": {},
|
34
|
+
"assetParentAsset": {},
|
35
|
+
"market": {
|
36
|
+
"marketId": "5",
|
37
|
+
"marketName": "endurance-cycling"
|
38
|
+
},
|
39
|
+
"assetGuid": "6d3048c8-32eb-4920-8d9b-65c66baf3f52",
|
40
|
+
"assetName": "How the Topeak JoeBlow Booster Works",
|
41
|
+
"assetDsc": "",
|
42
|
+
"alternateName": "",
|
43
|
+
"timezone": "",
|
44
|
+
"localTimeZoneId": "",
|
45
|
+
"timezoneAbb": "",
|
46
|
+
"timezoneName": "",
|
47
|
+
"currencyCd": "",
|
48
|
+
"localeCd": "",
|
49
|
+
"salesStartDate": null,
|
50
|
+
"salesEndDate": null,
|
51
|
+
"urlAdr": "http://rodale.videodownload.worldnow.com/RODALE_2505201618134176078AA.mp4",
|
52
|
+
"detailPageTemplateId": "",
|
53
|
+
"preferredUrlAdr": "",
|
54
|
+
"logoUrlAdr": "",
|
55
|
+
"activityStartDate": null,
|
56
|
+
"activityEndDate": null,
|
57
|
+
"donationUrlAdr": "",
|
58
|
+
"teamUrlAdr": "",
|
59
|
+
"homePageUrlAdr": "",
|
60
|
+
"registrationUrlAdr": "",
|
61
|
+
"registrantSearchUrlAdr": "",
|
62
|
+
"regReqMinAge": null,
|
63
|
+
"regReqMaxAge": null,
|
64
|
+
"regReqGenderCd": "",
|
65
|
+
"resultsUrlAdr": "",
|
66
|
+
"contactName": "",
|
67
|
+
"contactEmailAdr": "",
|
68
|
+
"contactPhone": "",
|
69
|
+
"contactTxt": "",
|
70
|
+
"showContact": "false",
|
71
|
+
"sorId": "",
|
72
|
+
"sorCreateDtm": "2016-05-26T06:13:47",
|
73
|
+
"sorCreateUserId": "",
|
74
|
+
"authorName": "",
|
75
|
+
"childIndex": "",
|
76
|
+
"publishDate": null,
|
77
|
+
"createdDate": "2016-07-05T02:45:06",
|
78
|
+
"modifiedDate": "2016-07-05T02:45:06",
|
79
|
+
"retryDate": "2016-07-04T22:55:32",
|
80
|
+
"retryCounter": "2",
|
81
|
+
"activityRecurrences": [],
|
82
|
+
"assetQuantity": {},
|
83
|
+
"assetLegacyData": {},
|
84
|
+
"assetTags": [
|
85
|
+
{
|
86
|
+
"tag": {
|
87
|
+
"tagId": "1794498",
|
88
|
+
"tagName": "404",
|
89
|
+
"tagDescription": "height"
|
90
|
+
}
|
91
|
+
},
|
92
|
+
{
|
93
|
+
"tag": {
|
94
|
+
"tagId": "1794505",
|
95
|
+
"tagName": "tools,Topeak,Reviews",
|
96
|
+
"tagDescription": "keywords"
|
97
|
+
}
|
98
|
+
},
|
99
|
+
{
|
100
|
+
"tag": {
|
101
|
+
"tagId": "1794497",
|
102
|
+
"tagName": "720",
|
103
|
+
"tagDescription": "width"
|
104
|
+
}
|
105
|
+
},
|
106
|
+
{
|
107
|
+
"tag": {
|
108
|
+
"tagId": "1795507",
|
109
|
+
"tagName": "12463347",
|
110
|
+
"tagDescription": "clipid"
|
111
|
+
}
|
112
|
+
},
|
113
|
+
{
|
114
|
+
"tag": {
|
115
|
+
"tagId": "1795508",
|
116
|
+
"tagName": "http://rodale.worldnow.com/clip/12463347/how-the-topeak-joeblow-booster-works",
|
117
|
+
"tagDescription": "canonicalUrl"
|
118
|
+
}
|
119
|
+
},
|
120
|
+
{
|
121
|
+
"tag": {
|
122
|
+
"tagId": "1794337",
|
123
|
+
"tagName": "video/mp4",
|
124
|
+
"tagDescription": "type"
|
125
|
+
}
|
126
|
+
},
|
127
|
+
{
|
128
|
+
"tag": {
|
129
|
+
"tagId": "1794504",
|
130
|
+
"tagName": "8288063",
|
131
|
+
"tagDescription": "filesize"
|
132
|
+
}
|
133
|
+
},
|
134
|
+
{
|
135
|
+
"tag": {
|
136
|
+
"tagId": "1794506",
|
137
|
+
"tagName": "48",
|
138
|
+
"tagDescription": "duration"
|
139
|
+
}
|
140
|
+
},
|
141
|
+
{
|
142
|
+
"tag": {
|
143
|
+
"tagId": "1794496",
|
144
|
+
"tagName": "1296",
|
145
|
+
"tagDescription": "bitrate"
|
146
|
+
}
|
147
|
+
}
|
148
|
+
],
|
149
|
+
"assetAttributes": [],
|
150
|
+
"assetPrices": [],
|
151
|
+
"assetDescriptions": [
|
152
|
+
{
|
153
|
+
"descriptionType": {
|
154
|
+
"descriptionTypeId": "6",
|
155
|
+
"descriptionTypeName": "Standard"
|
156
|
+
},
|
157
|
+
"description": "This floor pump has two modes: one that pumps up your tires normally, and another that acts like an air compressor to seat tubeless tires"
|
158
|
+
}
|
159
|
+
],
|
160
|
+
"assetChannels": [
|
161
|
+
{
|
162
|
+
"sequence": "1",
|
163
|
+
"channel": {
|
164
|
+
"channelId": "1005",
|
165
|
+
"channelName": "Cycling",
|
166
|
+
"channelDsc": "Cycling"
|
167
|
+
}
|
168
|
+
}
|
169
|
+
],
|
170
|
+
"assetMediaTypes": [
|
171
|
+
{
|
172
|
+
"sequence": "1",
|
173
|
+
"mediaType": {
|
174
|
+
"mediaTypeId": "2",
|
175
|
+
"mediaTypeName": "Event",
|
176
|
+
"mediaTypeDsc": ""
|
177
|
+
}
|
178
|
+
}
|
179
|
+
],
|
180
|
+
"assetImages": [
|
181
|
+
{
|
182
|
+
"imageUrlAdr": "http://RODALE.images.worldnow.com/images/12463347_vtf.jpg",
|
183
|
+
"imageName": "videoImage",
|
184
|
+
"linkUrl": "",
|
185
|
+
"linkTarget": "",
|
186
|
+
"imageCaptionTxt": "",
|
187
|
+
"imageType": "IMAGE"
|
188
|
+
}
|
189
|
+
],
|
190
|
+
"assetTopics": [
|
191
|
+
{
|
192
|
+
"sequence": "1",
|
193
|
+
"topic": {
|
194
|
+
"topicId": "25",
|
195
|
+
"topicTaxonomy": "Endurance/Cycling",
|
196
|
+
"topicName": "Cycling"
|
197
|
+
}
|
198
|
+
}
|
199
|
+
],
|
200
|
+
"assetCategories": [
|
201
|
+
{
|
202
|
+
"sequence": "1",
|
203
|
+
"category": {
|
204
|
+
"categoryId": "8",
|
205
|
+
"categoryTaxonomy": "Creative Work/Videos",
|
206
|
+
"categoryName": "Videos"
|
207
|
+
}
|
208
|
+
},
|
209
|
+
{
|
210
|
+
"sequence": "2",
|
211
|
+
"category": {
|
212
|
+
"categoryId": "2",
|
213
|
+
"categoryTaxonomy": "Event",
|
214
|
+
"categoryName": "Event"
|
215
|
+
}
|
216
|
+
},
|
217
|
+
{
|
218
|
+
"sequence": "3",
|
219
|
+
"category": {
|
220
|
+
"categoryId": "13",
|
221
|
+
"categoryTaxonomy": "Event/Classes",
|
222
|
+
"categoryName": "Classes"
|
223
|
+
}
|
224
|
+
}
|
225
|
+
],
|
226
|
+
"assetMetaInterests": [],
|
227
|
+
"assetInterests": [],
|
228
|
+
"assetDeals": [],
|
229
|
+
"socialMedia": [],
|
230
|
+
"assetComponents": [],
|
231
|
+
"assetServiceHostName": "as-app-qa01",
|
232
|
+
"componentInUrlAdr": {},
|
233
|
+
"assetSeoUrls": [
|
234
|
+
{
|
235
|
+
"seoSystemName": "as3",
|
236
|
+
"statusCode": "true",
|
237
|
+
"urlAdr": "http://www.active.com/ap/cycling/videos/how-the-topeak-joeblow-booster-works"
|
238
|
+
}
|
239
|
+
],
|
240
|
+
"overrideSeourlFlag": "false",
|
241
|
+
"activenetTopGraphic": {},
|
242
|
+
"evergreenAssetFlag": "false",
|
243
|
+
"evergreenAssets": [],
|
244
|
+
"assetReferences": [],
|
245
|
+
"assetVersion": 3,
|
246
|
+
"salesStatus": "registration-unavailable"
|
247
|
+
}
|
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.
|
4
|
+
version: 2.10.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: 2016-07-
|
11
|
+
date: 2016-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -210,16 +210,16 @@ dependencies:
|
|
210
210
|
name: activesupport
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
212
212
|
requirements:
|
213
|
-
- -
|
213
|
+
- - '='
|
214
214
|
- !ruby/object:Gem::Version
|
215
|
-
version:
|
215
|
+
version: 4.2.6
|
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
|
-
version:
|
222
|
+
version: 4.2.6
|
223
223
|
description: A Ruby wrapper for the Active API
|
224
224
|
email:
|
225
225
|
- Nathaniel.Barnes@activenetwork.com
|
@@ -315,7 +315,10 @@ files:
|
|
315
315
|
- lib/actv/validators/quiz_question_answer_validator.rb
|
316
316
|
- lib/actv/validators/quiz_question_validator.rb
|
317
317
|
- lib/actv/validators/quiz_validator.rb
|
318
|
+
- lib/actv/validators/video_validator.rb
|
318
319
|
- lib/actv/version.rb
|
320
|
+
- lib/actv/video.rb
|
321
|
+
- lib/actv/video_search_results.rb
|
319
322
|
- spec/actv/article_search_results_spec.rb
|
320
323
|
- spec/actv/article_spec.rb
|
321
324
|
- spec/actv/article_validator_spec.rb
|
@@ -342,6 +345,7 @@ files:
|
|
342
345
|
- spec/actv/client/search_spec.rb
|
343
346
|
- spec/actv/client/system_health_spec.rb
|
344
347
|
- spec/actv/client/users_spec.rb
|
348
|
+
- spec/actv/client/videos_spec.rb
|
345
349
|
- spec/actv/client_spec.rb
|
346
350
|
- spec/actv/event_spec.rb
|
347
351
|
- spec/actv/event_validator_spec.rb
|
@@ -358,6 +362,8 @@ files:
|
|
358
362
|
- spec/actv/quiz_validator_spec.rb
|
359
363
|
- spec/actv/search_results_spec.rb
|
360
364
|
- spec/actv/user_spec.rb
|
365
|
+
- spec/actv/video_search_result_spec.rb
|
366
|
+
- spec/actv/video_spec.rb
|
361
367
|
- spec/actv_spec.rb
|
362
368
|
- spec/faraday/response_spec.rb
|
363
369
|
- spec/fixtures/me.json
|
@@ -378,6 +384,7 @@ files:
|
|
378
384
|
- spec/fixtures/valid_search.json
|
379
385
|
- spec/fixtures/valid_search_no_event_results.json
|
380
386
|
- spec/fixtures/valid_search_no_results.json
|
387
|
+
- spec/fixtures/valid_video.json
|
381
388
|
- spec/spec_helper.rb
|
382
389
|
- spec/support/helper.rb
|
383
390
|
homepage: http://developer.active.com
|
@@ -431,6 +438,7 @@ test_files:
|
|
431
438
|
- spec/actv/client/search_spec.rb
|
432
439
|
- spec/actv/client/system_health_spec.rb
|
433
440
|
- spec/actv/client/users_spec.rb
|
441
|
+
- spec/actv/client/videos_spec.rb
|
434
442
|
- spec/actv/client_spec.rb
|
435
443
|
- spec/actv/event_spec.rb
|
436
444
|
- spec/actv/event_validator_spec.rb
|
@@ -447,6 +455,8 @@ test_files:
|
|
447
455
|
- spec/actv/quiz_validator_spec.rb
|
448
456
|
- spec/actv/search_results_spec.rb
|
449
457
|
- spec/actv/user_spec.rb
|
458
|
+
- spec/actv/video_search_result_spec.rb
|
459
|
+
- spec/actv/video_spec.rb
|
450
460
|
- spec/actv_spec.rb
|
451
461
|
- spec/faraday/response_spec.rb
|
452
462
|
- spec/fixtures/me.json
|
@@ -467,6 +477,7 @@ test_files:
|
|
467
477
|
- spec/fixtures/valid_search.json
|
468
478
|
- spec/fixtures/valid_search_no_event_results.json
|
469
479
|
- spec/fixtures/valid_search_no_results.json
|
480
|
+
- spec/fixtures/valid_video.json
|
470
481
|
- spec/spec_helper.rb
|
471
482
|
- spec/support/helper.rb
|
472
483
|
has_rdoc:
|