actv 1.3.0 → 1.3.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8da78447dff9dd1a83e2e9c300f12e28efb5d88c
4
+ data.tar.gz: dd9d52506820874bc1748868c73383d1a71e2c58
5
+ SHA512:
6
+ metadata.gz: 38b243b62e5acf54a92b3084b90ba3ae0fee935713836a259a01f00b3d6d38f4dc03d95720d4d8bc06e4682ee740c09eb3096248137f8cd71eedea0b46a44326
7
+ data.tar.gz: 333af51210a8500a3415e2917e2189a603b63c3037e0a955d037fc2fb78aeed55485be47eaaff8d77b3ec4a7295425ebe910e0bffb657f6a6190ddd6bc10b1c4
@@ -43,6 +43,12 @@ module ACTV
43
43
  alias maximum_age regReqMaxAge
44
44
  alias required_gender regReqGenderCd
45
45
 
46
+ def endurance_id
47
+ if self.awendurance?
48
+ Addressable::URI.parse(registrationUrlAdr.to_s).query_values.to_h.fetch 'e', nil
49
+ end
50
+ end
51
+
46
52
  def recurrences
47
53
  @recurrences ||= Array(@attrs[:activityRecurrences]).map do | recurrence |
48
54
  ACTV::Recurrence.new(recurrence)
@@ -4,5 +4,9 @@ module ACTV
4
4
  attr_reader :assetGuid
5
5
 
6
6
  alias asset_guid assetGuid
7
+
8
+ def prices
9
+ ACTV.asset(asset_guid).map(&:prices).first
10
+ end
7
11
  end
8
- end
12
+ end
@@ -123,6 +123,13 @@ module ACTV
123
123
  ACTV::Asset.from_response(response)
124
124
  end
125
125
 
126
+ def find_by_endurance_id endurance_id
127
+ response = get "/v2/search.json", find_by_endurance_id_params(endurance_id)
128
+ ACTV::SearchResults.from_response(response).results.select do |asset|
129
+ asset.registrationUrlAdr.end_with?(endurance_id.to_s) and asset.assetParentAsset[:assetGuid].nil?
130
+ end
131
+ end
132
+
126
133
  # Returns articles that match a specified query.
127
134
  #
128
135
  # @authentication_required No
@@ -366,7 +373,15 @@ module ACTV
366
373
  credentials.values.all?
367
374
  end
368
375
 
369
- private
376
+ private
377
+
378
+ def find_by_endurance_id_params endurance_id
379
+ awe_legacy_guid = 'DFAA997A-D591-44CA-9FB7-BF4A4C8984F1'
380
+ params = {
381
+ 'asset.registrationUrlAdr' => endurance_id.to_s,
382
+ 'asset.sourceSystem.legacyGuid' => awe_legacy_guid
383
+ }
384
+ end
370
385
 
371
386
  # Credentials hash
372
387
  #
@@ -1,3 +1,3 @@
1
1
  module ACTV
2
- VERSION = "1.3.0"
2
+ VERSION = "1.3.2"
3
3
  end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ describe ACTV::AssetComponent do
4
+
5
+ let(:asset_guid) { "6d92a2db-7ea5-4dfb-90e7-2b7d4dc839ae" }
6
+ subject { ACTV::AssetComponent.new asset_guid: asset_guid }
7
+
8
+ describe "#prices" do
9
+ before(:each) do
10
+ stub_post("/v2/assets.json").with(:body => {"id"=>true}).
11
+ to_return(body: fixture("valid_component_asset.json"), headers: { content_type: "application/json; charset=utf-8" })
12
+ end
13
+
14
+ it 'returns the prices associated with the component' do
15
+ expect(subject.prices).to be_an(Array)
16
+ expect(subject.prices.first).to be_an(ACTV::AssetPrice)
17
+ end
18
+ end
19
+
20
+ end
21
+
@@ -3,6 +3,27 @@ require 'pry'
3
3
 
4
4
  describe ACTV::Asset do
5
5
 
6
+ describe '#endurance_id' do
7
+ let(:endurance_id) { 'enduranceid' }
8
+ subject(:asset) { ACTV::Asset.new assetGuid: 'assetguid' }
9
+
10
+ context 'when asset is awe' do
11
+ before do
12
+ allow(asset).to receive(:registrationUrlAdr).and_return "https://endurancecui-vip.qa.aw.dev.activenetwork.com/event-reg/select-race?e=#{endurance_id}"
13
+ allow(asset).to receive(:awendurance?).and_return true
14
+ end
15
+ it 'returns the endurance id' do
16
+ expect(asset.endurance_id).to eq endurance_id
17
+ end
18
+ end
19
+ context 'when asset is not awe' do
20
+ before { allow(asset).to receive(:awendurance?).and_return false }
21
+ it 'is nil' do
22
+ expect(asset.endurance_id).to be_nil
23
+ end
24
+ end
25
+ end
26
+
6
27
  describe "#==" do
7
28
  it "return true when objects IDs are the same" do
8
29
  asset = ACTV::Asset.new(assetGuid: 1, assetName: "Title 1")
@@ -2,15 +2,70 @@ require 'spec_helper'
2
2
 
3
3
  describe ACTV::Client do
4
4
 
5
- subject do
6
- client = ACTV::Client.new
7
- # client.class_eval{public *ACTV::Client.private_instance_methods}
8
- client
5
+ let(:configuration) { {} }
6
+
7
+ subject(:client) { ACTV::Client.new configuration }
8
+
9
+ describe '#find_by_endurance_id' do
10
+ before { allow(client).to receive(:get).and_return response }
11
+
12
+ context 'when there are no results' do
13
+ let(:response) do
14
+ {method: :get, body: {results: []}}
15
+ end
16
+
17
+ it 'returns an empty array' do
18
+ allow(client).to receive(:get).and_return response
19
+ expect(client.find_by_endurance_id 1234).to eq []
20
+ end
21
+ end
22
+
23
+ context 'when there is one result' do
24
+ let(:response) do
25
+ {method: :get, body: {results: [
26
+ { assetGuid: "long ass guid",
27
+ registrationUrlAdr: 'blah?e=1234',
28
+ assetParentAsset: {} }
29
+ ]}}
30
+ end
31
+
32
+ it 'returns an array with one object' do
33
+ expect(client.find_by_endurance_id(1234).count).to eq 1
34
+ end
35
+
36
+ it 'returns an array of one asset' do
37
+ expect(client.find_by_endurance_id(1234).first).to be_an ACTV::Asset
38
+ end
39
+ end
40
+
41
+ context 'when there are more than result' do
42
+ let(:response) do
43
+ {method: :get, body: {results: [
44
+ { assetGuid: 'child asset guid',
45
+ registrationUrlAdr: 'blah?e=1234',
46
+ assetParentAsset: { assetGuid: 'parent asset guid' } },
47
+ { assetGuid: 'parent asset guid',
48
+ registrationUrlAdr: 'blah?e=1234',
49
+ assetParentAsset: {} }
50
+ ]}}
51
+ end
52
+
53
+ it 'returns an array with one object' do
54
+ expect(client.find_by_endurance_id(1234).count).to eq 1
55
+ end
56
+
57
+ it 'returns an array of one asset' do
58
+ expect(client.find_by_endurance_id(1234).first).to be_an ACTV::Asset
59
+ end
60
+
61
+ it 'returns the parent asset' do
62
+ expect(client.find_by_endurance_id(1234).first.assetGuid).to eq 'parent asset guid'
63
+ end
64
+ end
9
65
  end
10
66
 
11
67
  context "with module configuration" do
12
-
13
- before do
68
+ before do
14
69
  ACTV.configure do |config|
15
70
  ACTV::Configurable.keys.each do |key|
16
71
  config.send("#{key}=", key)
@@ -18,39 +73,33 @@ describe ACTV::Client do
18
73
  end
19
74
  end
20
75
 
21
- after do
22
- ACTV.reset!
23
- end
76
+ after { ACTV.reset! }
24
77
 
25
78
  it "inherits the module configuration" do
26
- client = ACTV::Client.new
27
79
  ACTV::Configurable.keys.each do |key|
28
- client.instance_variable_get("@#{key}").should eq key
80
+ expect(client.instance_variable_get "@#{key}").to eq key
29
81
  end
30
82
  end
31
83
 
32
84
  context "with class configuration" do
33
85
 
34
- before do
35
- @configuration = {
36
- :connection_options => {:timeout => 10},
37
- :consumer_key => 'CK',
38
- :consumer_secret => 'CS',
39
- :endpoint => 'http://tumblr.com/',
40
- :media_endpoint => 'http://upload.twitter.com',
41
- :middleware => Proc.new{},
42
- :oauth_token => 'OT',
43
- :oauth_token_secret => 'OS',
44
- :search_endpoint => 'http://search.twitter.com',
45
- :api_key => 'TEST'
46
- }
86
+ let(:configuration) do
87
+ { connection_options: {timeout: 10},
88
+ consumer_key: 'CK',
89
+ consumer_secret: 'CS',
90
+ endpoint: 'http://tumblr.com/',
91
+ media_endpoint: 'http://upload.twitter.com',
92
+ middleware: Proc.new{},
93
+ oauth_token: 'OT',
94
+ oauth_token_secret: 'OS',
95
+ search_endpoint: 'http://search.twitter.com',
96
+ api_key: 'TEST' }
47
97
  end
48
98
 
49
99
  context "during initialization" do
50
100
  it "overrides the module configuration" do
51
- client = ACTV::Client.new(@configuration)
52
101
  ACTV::Configurable.keys.each do |key|
53
- client.instance_variable_get("@#{key}").should eq @configuration[key]
102
+ expect(client.instance_variable_get "@#{key}").to eq configuration[key]
54
103
  end
55
104
  end
56
105
  end
@@ -59,80 +108,62 @@ describe ACTV::Client do
59
108
  it "overrides the module configuration after initialization" do
60
109
  client = ACTV::Client.new
61
110
  client.configure do |config|
62
- @configuration.each do |key, value|
111
+ configuration.each do |key, value|
63
112
  config.send("#{key}=", value)
64
113
  end
65
114
  end
66
115
  ACTV::Configurable.keys.each do |key|
67
- client.instance_variable_get("@#{key}").should eq @configuration[key]
116
+ expect(client.instance_variable_get "@#{key}").to eq configuration[key]
68
117
  end
69
118
  end
70
119
  end
71
120
 
72
121
  end
73
-
74
122
  end
75
123
 
76
124
  describe "#credentials?" do
77
125
  it "returns true if all credentials are present" do
78
- client = ACTV::Client.new(:consumer_key => 'CK', :consumer_secret => 'CS', :oauth_token => 'OT', :oauth_token_secret => 'OS')
79
- client.credentials?.should be_true
126
+ client = ACTV::Client.new(consumer_key: 'CK', consumer_secret: 'CS', oauth_token: 'OT', oauth_token_secret: 'OS')
127
+ expect(client.credentials?).to be_true
128
+ end
129
+ it "returns false if any credentials are missing" do
130
+ expect(client.credentials?).to be_false
80
131
  end
81
- # it "returns false if any credentials are missing" do
82
- # client = ACTV::Client.new(:consumer_key => 'CK', :consumer_secret => 'CS', :oauth_token => 'OT')
83
- # client.credentials?.should be_false
84
- # end
85
132
  end
86
133
 
87
134
  describe "#connection" do
88
135
  it "looks like Faraday connection" do
89
- subject.connection.should respond_to(:run_request)
136
+ expect(client.connection).to respond_to(:run_request)
90
137
  end
91
138
  it "memoizes the connection" do
92
- c1, c2 = subject.connection, subject.connection
93
- c1.object_id.should eq c2.object_id
139
+ expect(client.connection.object_id).to eq client.connection.object_id
94
140
  end
95
141
  end
96
142
 
97
143
  describe "#request" do
98
- before do
99
- @client = ACTV::Client.new({:consumer_key => "CK", :consumer_secret => "CS", :oauth_token => "OT", :oauth_token_secret => "OS"})
144
+ let(:configuration) do
145
+ { consumer_key: "CK",
146
+ consumer_secret: "CS",
147
+ oauth_token: "OT",
148
+ oauth_token_secret: "OS" }
100
149
  end
101
150
 
102
- it "does something" do
151
+ it "makes a request" do
103
152
  stub_request(:get, "http://api.amp.active.com/system_health").
104
- with(:headers => {'Accept'=>'application/json'}).
105
- to_return(:status => 200, :body => '{"status":"not implemented"}', :headers => {})
106
-
107
- @client.request(:get, "/system_health", {}, {})[:body].should eql({status: "not implemented"})
108
- end
109
-
110
- it "encodes the entire body when no uploaded media is present" do
111
- # stub_post("/1/statuses/update.json").
112
- # with(:body => {:status => "Update"}).
113
- # to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
114
- # @client.update("Update")
115
- # a_post("/1/statuses/update.json").
116
- # with(:body => {:status => "Update"}).
117
- # should have_been_made
118
- end
119
- # it "encodes none of the body when uploaded media is present" do
120
- # stub_post("/1/statuses/update_with_media.json", "https://upload.twitter.com").
121
- # to_return(:body => fixture("status_with_media.json"), :headers => {:content_type => "application/json; charset=utf-8"})
122
- # @client.update_with_media("Update", fixture("pbjt.gif"))
123
- # a_post("/1/statuses/update_with_media.json", "https://upload.twitter.com").
124
- # should have_been_made
125
- # end
126
- # it "catches Faraday errors" do
127
- # subject.stub!(:connection).and_raise(Faraday::Error::ClientError.new("Oups"))
128
- # lambda do
129
- # subject.request(:get, "/path", {}, {})
130
- # end.should raise_error(Twitter::Error::ClientError, "Oups")
131
- # end
153
+ with(headers: {'Accept'=>'application/json'}).
154
+ to_return(status: 200, body: '{"status":"not implemented"}', headers: {})
155
+
156
+ expect(client.request(:get, "/system_health", {}, {})[:body]).to eql status: "not implemented"
157
+ end
132
158
  end
133
159
 
134
160
  describe '#event' do
135
- let(:client) { ACTV::Client.new({:consumer_key => "CK", :consumer_secret => "CS", :oauth_token => "OT", :oauth_token_secret => "OS"}) }
161
+ let(:configuration) do
162
+ { consumer_key: "CK",
163
+ consumer_secret: "CS",
164
+ oauth_token: "OT",
165
+ oauth_token_secret: "OS"}
166
+ end
136
167
 
137
168
  context 'find event' do
138
169
  before do
@@ -140,8 +171,8 @@ describe ACTV::Client do
140
171
  to_return(body: fixture("valid_asset.json"), headers: { content_type: "application/json; charset=utf-8" })
141
172
  end
142
173
 
143
- it 'should make a normal asset call' do
144
- client.event('asset_id').should be_a ACTV::Event
174
+ it 'makes a normal asset call' do
175
+ expect(client.event 'asset_id').to be_an ACTV::Event
145
176
  end
146
177
  end
147
178
 
@@ -151,34 +182,33 @@ describe ACTV::Client do
151
182
  to_return(body: fixture("valid_assets.json"), headers: { content_type: "application/json; charset=utf-8" })
152
183
  end
153
184
 
154
- it 'returns an Array of Event' do
155
- client.event('asset_ids').should be_a Array
156
- client.event('asset_ids').first.should be_a ACTV::Event
157
- client.event('asset_ids').last.should be_a ACTV::Event
185
+ it 'returns an Array of Events' do
186
+ client.event('asset_ids').each do |asset|
187
+ expect(asset).to be_an ACTV::Event
188
+ end
158
189
  end
159
-
160
190
  end
161
191
 
162
192
  context 'preview event' do
163
- context 'when set to true' do
193
+ context 'when preview is true' do
164
194
  before do
165
195
  stub_request(:get, "http://api.amp.active.com/v2/assets/asset_id/preview.json").
166
196
  to_return(body: fixture("valid_asset.json"), headers: { content_type: "application/json; charset=utf-8" })
167
197
  end
168
198
 
169
- it 'should make preview call' do
170
- client.event('asset_id', {preview: 'true'}).should be_a ACTV::Event
199
+ it 'returns an event' do
200
+ expect(client.event 'asset_id', preview: 'true').to be_an ACTV::Event
171
201
  end
172
202
  end
173
203
 
174
- context 'when set to false' do
204
+ context 'when preview is false' do
175
205
  before do
176
206
  stub_request(:get, "http://api.amp.active.com/v2/assets/asset_id.json").
177
207
  to_return(body: fixture("valid_asset.json"), headers: { content_type: "application/json; charset=utf-8" })
178
208
  end
179
209
 
180
- it 'should make a normal asset call' do
181
- client.event('asset_id', {preview: 'false'}).should be_a ACTV::Event
210
+ it 'returns an event' do
211
+ expect(client.event 'asset_id', preview: 'false').to be_an ACTV::Event
182
212
  end
183
213
  end
184
214
  end
@@ -186,7 +216,7 @@ describe ACTV::Client do
186
216
 
187
217
  ACTV::Configurable::CONFIG_KEYS.each do |key|
188
218
  it "has a default #{key.to_s.gsub('_', ' ')}" do
189
- subject.send(key).should eq ACTV::Default.options[key]
219
+ expect(client.send key).to eq ACTV::Default.options[key]
190
220
  end
191
221
  end
192
222
 
@@ -0,0 +1,190 @@
1
+ {
2
+ "assetStatus": {
3
+ "assetStatusId": "2",
4
+ "assetStatusName": "VISIBLE",
5
+ "isSearchable": "true",
6
+ "isDeleted": "false",
7
+ "createdDate": "2012-05-17T18:19:49",
8
+ "modifiedDate": "2012-05-17T18:19:49"
9
+ },
10
+ "organization": {},
11
+ "place": {
12
+ "placeGuid": "3993F0DC-2168-4497-943D-C64334CC8714",
13
+ "placeName": "Kingwood Park New Jersey",
14
+ "placeDsc": "",
15
+ "placeUrlAdr": "",
16
+ "addressLine1Txt": "200 Union Road",
17
+ "addressLine2Txt": "",
18
+ "cityName": "Frenchtown",
19
+ "stateProvinceCode": "",
20
+ "localityName": "New Jersey",
21
+ "postalCode": "08825",
22
+ "countryName": "United States",
23
+ "countryCode": "",
24
+ "latitude": "40.504792",
25
+ "longitude": "-75.001827",
26
+ "directionsTxt": "",
27
+ "geoPoint": {
28
+ "lat": "40.504792",
29
+ "lon": "-75.001827"
30
+ }
31
+ },
32
+ "evergreenAsset": {},
33
+ "dma": {
34
+ "dmaId": "52",
35
+ "dmaName": "New York"
36
+ },
37
+ "sourceSystem": {
38
+ "sourceSystemName": "RegCenter",
39
+ "legacyGuid": "EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65"
40
+ },
41
+ "assetRootAsset": {},
42
+ "assetParentAsset": {},
43
+ "market": {},
44
+ "assetGuid": "BA288960-2718-4B20-B380-8F939596BB59",
45
+ "assetName": "Run Daddy Run 5k Race, 2 Mile Walk & Kids Fun Run",
46
+ "assetDsc": "The Run Daddy Run Event is the HCM Foundation way to bring the community together on Fathers Day Weekend to celebrate Fathers and their families. 100% of the proceeds will go to HCM service & scholarship programs.",
47
+ "alternateName": "",
48
+ "timezone": "",
49
+ "timezoneAbb": "",
50
+ "timezoneName": "",
51
+ "currencyCd": "",
52
+ "localeCd": "",
53
+ "salesStartDate": null,
54
+ "salesEndDate": null,
55
+ "urlAdr": "",
56
+ "detailPageTemplateId": "",
57
+ "preferredUrlAdr": "",
58
+ "logoUrlAdr": "",
59
+ "activityStartDate": "2012-06-24T00:00:00",
60
+ "activityStartTime": "9:00:00",
61
+ "activityEndDate": "2012-06-24T00:00:00",
62
+ "activityEndTime": "9:00:00",
63
+ "donationUrlAdr": "",
64
+ "teamUrlAdr": "",
65
+ "homePageUrlAdr": "http://www.hcmfoundation.org",
66
+ "registrationUrlAdr": "",
67
+ "regReqMinAge": "",
68
+ "regReqMaxAge": "",
69
+ "regReqGenderCd": "",
70
+ "resultsUrlAdr": "",
71
+ "isRecurring": "false",
72
+ "contactName": "Mike Marsteller",
73
+ "contactEmailAdr": "hcmfund@gmail.com",
74
+ "contactPhone": "484-347-3993",
75
+ "contactTxt": "",
76
+ "showContact": "true",
77
+ "sorId": "",
78
+ "sorCreateDtm": null,
79
+ "sorCreateUserId": "",
80
+ "authorName": "",
81
+ "publishDate": null,
82
+ "createdDate": "2012-04-19T18:16:06",
83
+ "modifiedDate": "2012-05-17T18:29:18",
84
+ "activityRecurrences": [],
85
+ "assetQuantity": {},
86
+ "assetLegacyData": {
87
+ "assetTypeId": "",
88
+ "typeName": "",
89
+ "uploadSearchUrlAdr": "",
90
+ "authorName": "",
91
+ "onlineRegistration": "true",
92
+ "onlineDonation": "",
93
+ "onlineMembership": "",
94
+ "onlineMembershipCostAmt": "",
95
+ "costAmt": "",
96
+ "avgUserRatingTxt": "",
97
+ "estParticipantNb": "",
98
+ "maxTeamNb": "",
99
+ "minGuaranteedGameNb": "",
100
+ "multipleStartDate": "",
101
+ "genderRequirementTxt": "",
102
+ "participationCriteriaTxt": "",
103
+ "userCommentTxt": "",
104
+ "priceExtensionTxt": "",
105
+ "searchWeight": "",
106
+ "seoUrl": "http://www.active.com/running/frenchtown-nj/run-daddy-run-5k-race-2-mile-walk-and-kids-fun-run-2012",
107
+ "substitutionUrl": "2028700",
108
+ "trackbackUrl": "",
109
+ "eventCategories": "",
110
+ "isSearchable": "true",
111
+ "createdDate": "2012-04-19T18:16:06",
112
+ "modifiedDate": "2012-05-17T18:29:19"
113
+ },
114
+ "assetTags": [],
115
+ "assetPrices": [{
116
+ "effectiveUntilDate" : "2970-01-01T00:00:00",
117
+ "priceAmt" : "75",
118
+ "maxPriceAmt" : null,
119
+ "minPriceAmt" : null},
120
+ {"effectiveUntilDate" : "2014-10-27T05:00:00",
121
+ "priceAmt" : "75",
122
+ "maxPriceAmt" : null,
123
+ "minPriceAmt" : null
124
+ }],
125
+ "assetDescriptions": [{
126
+ "descriptionType": {
127
+ "descriptionTypeId": "1",
128
+ "descriptionTypeName": "PRIMARY"
129
+ },
130
+ "description": "The Run Daddy Run Event is the HCM Foundation way to bring the community together on Fathers Day Weekend to celebrate Fathers and their families. 100% of the proceeds will go to HCM service & scholarship programs."
131
+ }],
132
+ "assetChannels": [{
133
+ "sequence": "1",
134
+ "channel": {
135
+ "channelId": "1020",
136
+ "channelName": "Running",
137
+ "channelDsc": "Running"
138
+ }
139
+ }, {
140
+ "sequence": "2",
141
+ "channel": {
142
+ "channelId": "1148",
143
+ "channelName": "Running\\Cross Country",
144
+ "channelDsc": ""
145
+ }
146
+ }],
147
+ "assetMediaTypes": [{
148
+ "sequence": "2",
149
+ "mediaType": {
150
+ "mediaTypeId": "256",
151
+ "mediaTypeName": "Event\\5K",
152
+ "mediaTypeDsc": ""
153
+ }
154
+ }, {
155
+ "sequence": "1",
156
+ "mediaType": {
157
+ "mediaTypeId": "2",
158
+ "mediaTypeName": "Event",
159
+ "mediaTypeDsc": ""
160
+ }
161
+ }],
162
+ "assetImages": [],
163
+ "assetTopics": [{
164
+ "sequence": "3",
165
+ "topic": {
166
+ "topicId": "26",
167
+ "topicTaxonomy": "Endurance/Duathlon",
168
+ "topicName": "Duathlon"
169
+ }
170
+ }],
171
+ "assetCategories": [],
172
+ "assetMetaInterests": [],
173
+ "assetComponents": [
174
+ {
175
+ "assetGuid": "63e030f3-3df4-402c-9617-d37f6fb2c11b"
176
+ },
177
+ {
178
+ "assetGuid": "63e030f3-3df4-402c-9617-d37f6fb2c11c"
179
+ }
180
+ ],
181
+ "assetServiceHostName": "asset-03",
182
+ "assetSeoUrls": [
183
+ {
184
+ "seoSystemName": "as3",
185
+ "statusCode": "true",
186
+ "urlAdr": "http://www.active.com/san-francisco-ca/running/crazy-eight-fall-2013"
187
+ }
188
+ ]
189
+ }
190
+
@@ -0,0 +1,12 @@
1
+ [{
2
+ "effectiveUntilDate" : "2970-01-01T00:00:00",
3
+ "priceAmt" : "75",
4
+ "maxPriceAmt" : null,
5
+ "minPriceAmt" : null
6
+ },
7
+ {
8
+ "effectiveUntilDate" : "2970-01-02T00:00:00",
9
+ "priceAmt" : "70",
10
+ "maxPriceAmt" : null,
11
+ "minPriceAmt" : null
12
+ }]
metadata CHANGED
@@ -1,270 +1,237 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: actv
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
5
- prerelease:
4
+ version: 1.3.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Nathaniel Barnes
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-10-24 00:00:00.000000000 Z
11
+ date: 2015-01-13 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: faraday
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
19
  version: 0.8.0
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
26
  version: 0.8.0
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: multi_json
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ~>
31
+ - - "~>"
36
32
  - !ruby/object:Gem::Version
37
33
  version: '1.3'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ~>
38
+ - - "~>"
44
39
  - !ruby/object:Gem::Version
45
40
  version: '1.3'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: simple_oauth
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ~>
45
+ - - "~>"
52
46
  - !ruby/object:Gem::Version
53
47
  version: 0.1.6
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ~>
52
+ - - "~>"
60
53
  - !ruby/object:Gem::Version
61
54
  version: 0.1.6
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: nokogiri
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ">="
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ">="
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: json
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - ">="
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - ">="
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: maruku
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - ">="
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - ">="
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: pry
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - ">="
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - ">="
124
109
  - !ruby/object:Gem::Version
125
110
  version: '0'
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: rake
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
- - - ! '>='
115
+ - - ">="
132
116
  - !ruby/object:Gem::Version
133
117
  version: '0'
134
118
  type: :development
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
- - - ! '>='
122
+ - - ">="
140
123
  - !ruby/object:Gem::Version
141
124
  version: '0'
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: rspec
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
- - - ~>
129
+ - - "~>"
148
130
  - !ruby/object:Gem::Version
149
131
  version: 2.14.1
150
132
  type: :development
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
- - - ~>
136
+ - - "~>"
156
137
  - !ruby/object:Gem::Version
157
138
  version: 2.14.1
158
139
  - !ruby/object:Gem::Dependency
159
140
  name: rspec-core
160
141
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
142
  requirements:
163
- - - ! '>='
143
+ - - ">="
164
144
  - !ruby/object:Gem::Version
165
145
  version: '0'
166
146
  type: :development
167
147
  prerelease: false
168
148
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
149
  requirements:
171
- - - ! '>='
150
+ - - ">="
172
151
  - !ruby/object:Gem::Version
173
152
  version: '0'
174
153
  - !ruby/object:Gem::Dependency
175
154
  name: simplecov
176
155
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
156
  requirements:
179
- - - ! '>='
157
+ - - ">="
180
158
  - !ruby/object:Gem::Version
181
159
  version: '0'
182
160
  type: :development
183
161
  prerelease: false
184
162
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
163
  requirements:
187
- - - ! '>='
164
+ - - ">="
188
165
  - !ruby/object:Gem::Version
189
166
  version: '0'
190
167
  - !ruby/object:Gem::Dependency
191
168
  name: timecop
192
169
  requirement: !ruby/object:Gem::Requirement
193
- none: false
194
170
  requirements:
195
- - - ! '>='
171
+ - - ">="
196
172
  - !ruby/object:Gem::Version
197
173
  version: '0'
198
174
  type: :development
199
175
  prerelease: false
200
176
  version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
177
  requirements:
203
- - - ! '>='
178
+ - - ">="
204
179
  - !ruby/object:Gem::Version
205
180
  version: '0'
206
181
  - !ruby/object:Gem::Dependency
207
182
  name: webmock
208
183
  requirement: !ruby/object:Gem::Requirement
209
- none: false
210
184
  requirements:
211
- - - ! '>='
185
+ - - ">="
212
186
  - !ruby/object:Gem::Version
213
187
  version: '0'
214
188
  type: :development
215
189
  prerelease: false
216
190
  version_requirements: !ruby/object:Gem::Requirement
217
- none: false
218
191
  requirements:
219
- - - ! '>='
192
+ - - ">="
220
193
  - !ruby/object:Gem::Version
221
194
  version: '0'
222
195
  - !ruby/object:Gem::Dependency
223
196
  name: yard
224
197
  requirement: !ruby/object:Gem::Requirement
225
- none: false
226
198
  requirements:
227
- - - ! '>='
199
+ - - ">="
228
200
  - !ruby/object:Gem::Version
229
201
  version: '0'
230
202
  type: :development
231
203
  prerelease: false
232
204
  version_requirements: !ruby/object:Gem::Requirement
233
- none: false
234
205
  requirements:
235
- - - ! '>='
206
+ - - ">="
236
207
  - !ruby/object:Gem::Version
237
208
  version: '0'
238
209
  - !ruby/object:Gem::Dependency
239
210
  name: guard-rspec
240
211
  requirement: !ruby/object:Gem::Requirement
241
- none: false
242
212
  requirements:
243
- - - ! '>='
213
+ - - ">="
244
214
  - !ruby/object:Gem::Version
245
215
  version: '0'
246
216
  type: :development
247
217
  prerelease: false
248
218
  version_requirements: !ruby/object:Gem::Requirement
249
- none: false
250
219
  requirements:
251
- - - ! '>='
220
+ - - ">="
252
221
  - !ruby/object:Gem::Version
253
222
  version: '0'
254
223
  - !ruby/object:Gem::Dependency
255
224
  name: activesupport
256
225
  requirement: !ruby/object:Gem::Requirement
257
- none: false
258
226
  requirements:
259
- - - ! '>='
227
+ - - ">="
260
228
  - !ruby/object:Gem::Version
261
229
  version: '0'
262
230
  type: :development
263
231
  prerelease: false
264
232
  version_requirements: !ruby/object:Gem::Requirement
265
- none: false
266
233
  requirements:
267
- - - ! '>='
234
+ - - ">="
268
235
  - !ruby/object:Gem::Version
269
236
  version: '0'
270
237
  description: A Ruby wrapper for the Active API
@@ -274,11 +241,11 @@ executables: []
274
241
  extensions: []
275
242
  extra_rdoc_files: []
276
243
  files:
277
- - .gitignore
278
- - .rspec
279
- - .ruby-gemset
280
- - .ruby-version
281
- - .travis.yml
244
+ - ".gitignore"
245
+ - ".rspec"
246
+ - ".ruby-gemset"
247
+ - ".ruby-version"
248
+ - ".travis.yml"
282
249
  - CHANGELOG.md
283
250
  - Gemfile
284
251
  - Guardfile
@@ -351,6 +318,7 @@ files:
351
318
  - spec/actv/article_search_results_spec.rb
352
319
  - spec/actv/article_spec.rb
353
320
  - spec/actv/asset_channel_spec.rb
321
+ - spec/actv/asset_component_spec.rb
354
322
  - spec/actv/asset_description_spec.rb
355
323
  - spec/actv/asset_image_spec.rb
356
324
  - spec/actv/asset_price_spec.rb
@@ -382,12 +350,14 @@ files:
382
350
  - spec/fixtures/valid_article.json
383
351
  - spec/fixtures/valid_asset.json
384
352
  - spec/fixtures/valid_assets.json
353
+ - spec/fixtures/valid_component_asset.json
385
354
  - spec/fixtures/valid_event.json
386
355
  - spec/fixtures/valid_event_results.json
387
356
  - spec/fixtures/valid_evergreen.json
388
357
  - spec/fixtures/valid_evergreen_child_1.json
389
358
  - spec/fixtures/valid_organizer.json
390
359
  - spec/fixtures/valid_organizers.json
360
+ - spec/fixtures/valid_price.json
391
361
  - spec/fixtures/valid_search.json
392
362
  - spec/fixtures/valid_search_no_event_results.json
393
363
  - spec/fixtures/valid_search_no_results.json
@@ -396,32 +366,32 @@ files:
396
366
  homepage: http://developer.active.com
397
367
  licenses:
398
368
  - MIT
369
+ metadata: {}
399
370
  post_install_message:
400
371
  rdoc_options: []
401
372
  require_paths:
402
373
  - lib
403
374
  required_ruby_version: !ruby/object:Gem::Requirement
404
- none: false
405
375
  requirements:
406
- - - ! '>='
376
+ - - ">="
407
377
  - !ruby/object:Gem::Version
408
378
  version: '0'
409
379
  required_rubygems_version: !ruby/object:Gem::Requirement
410
- none: false
411
380
  requirements:
412
- - - ! '>='
381
+ - - ">="
413
382
  - !ruby/object:Gem::Version
414
383
  version: '0'
415
384
  requirements: []
416
385
  rubyforge_project:
417
- rubygems_version: 1.8.23
386
+ rubygems_version: 2.2.2
418
387
  signing_key:
419
- specification_version: 3
388
+ specification_version: 4
420
389
  summary: Active API
421
390
  test_files:
422
391
  - spec/actv/article_search_results_spec.rb
423
392
  - spec/actv/article_spec.rb
424
393
  - spec/actv/asset_channel_spec.rb
394
+ - spec/actv/asset_component_spec.rb
425
395
  - spec/actv/asset_description_spec.rb
426
396
  - spec/actv/asset_image_spec.rb
427
397
  - spec/actv/asset_price_spec.rb
@@ -453,12 +423,14 @@ test_files:
453
423
  - spec/fixtures/valid_article.json
454
424
  - spec/fixtures/valid_asset.json
455
425
  - spec/fixtures/valid_assets.json
426
+ - spec/fixtures/valid_component_asset.json
456
427
  - spec/fixtures/valid_event.json
457
428
  - spec/fixtures/valid_event_results.json
458
429
  - spec/fixtures/valid_evergreen.json
459
430
  - spec/fixtures/valid_evergreen_child_1.json
460
431
  - spec/fixtures/valid_organizer.json
461
432
  - spec/fixtures/valid_organizers.json
433
+ - spec/fixtures/valid_price.json
462
434
  - spec/fixtures/valid_search.json
463
435
  - spec/fixtures/valid_search_no_event_results.json
464
436
  - spec/fixtures/valid_search_no_results.json