Active 0.0.42 → 0.1.7
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.
- data/.gitignore +6 -0
- data/.irbrc +21 -0
- data/.rspec +1 -0
- data/.rvmrc +2 -0
- data/Active.gemspec +28 -29
- data/Gemfile +4 -0
- data/History.txt +5 -2
- data/{README.txt → README.md} +4 -20
- data/Rakefile +11 -17
- data/lib/Active.rb +11 -79
- data/lib/active/activity.rb +7 -0
- data/lib/active/article.rb +7 -0
- data/lib/active/asset.rb +205 -0
- data/lib/active/errors.rb +9 -0
- data/lib/active/query.rb +225 -0
- data/lib/active/result.rb +7 -0
- data/lib/active/results.rb +6 -0
- data/lib/active/training.rb +7 -0
- data/lib/active/version.rb +3 -0
- data/lib/ext/hash_extensions.rb +8 -0
- data/spec/asset_spec.rb +47 -0
- data/spec/search_spec.rb +383 -432
- data/spec/spec_helper.rb +23 -2
- metadata +113 -116
- data/bin/Active +0 -7
- data/lib/.DS_Store +0 -0
- data/lib/services/.DS_Store +0 -0
- data/lib/services/IActivity.rb +0 -39
- data/lib/services/_ats.rb +0 -215
- data/lib/services/active_works.rb +0 -167
- data/lib/services/activity.rb +0 -512
- data/lib/services/address.rb +0 -17
- data/lib/services/ats.rb +0 -229
- data/lib/services/dto/user.rb +0 -9
- data/lib/services/gsa.rb +0 -205
- data/lib/services/reg_center.rb +0 -270
- data/lib/services/sanitize.rb +0 -108
- data/lib/services/search.rb +0 -494
- data/lib/services/validators.rb +0 -124
- data/rspec-tm +0 -1
- data/rvmrc +0 -1
- data/spec/.DS_Store +0 -0
- data/spec/Active_spec.rb +0 -28
- data/spec/activeworks_spec.rb +0 -60
- data/spec/activity_spec.rb +0 -421
- data/spec/ats_spec.rb +0 -106
- data/spec/benchmark/search_bench.rb +0 -55
- data/spec/custom_matchers_spec.rb +0 -27
- data/spec/gsa_spec.rb +0 -210
- data/spec/reg_spec.rb +0 -173
- data/spec/search_memcached_spec.rb +0 -42
- data/spec/validators_spec.rb +0 -19
- data/test/test_Active.rb +0 -0
- data/version.txt +0 -1
data/spec/spec_helper.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
|
2
1
|
require File.expand_path(File.join(File.dirname(__FILE__), %w[.. lib Active]))
|
2
|
+
require 'date'
|
3
3
|
|
4
|
-
|
4
|
+
RSpec.configure do |config|
|
5
5
|
# == Mock Framework
|
6
6
|
#
|
7
7
|
# RSpec uses it's own mocking framework by default. If you prefer to
|
@@ -12,3 +12,24 @@ Spec::Runner.configure do |config|
|
|
12
12
|
# config.mock_with :rr
|
13
13
|
end
|
14
14
|
|
15
|
+
RSpec::Matchers.define :have_param do |expected|
|
16
|
+
match do |actual|
|
17
|
+
actual.include?(expected)
|
18
|
+
end
|
19
|
+
|
20
|
+
failure_message_for_should do |actual|
|
21
|
+
"expected #{actual.inspect} to have param #{expected.inspect}, but it didn't"
|
22
|
+
end
|
23
|
+
|
24
|
+
failure_message_for_should_not do |actual|
|
25
|
+
"expected #{actual.inspect} not to have param #{expected.inspect}, but it did"
|
26
|
+
end
|
27
|
+
|
28
|
+
description do
|
29
|
+
"have param #{expected}"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def open_url(str)
|
34
|
+
system("open \"#{str}\"")
|
35
|
+
end
|
metadata
CHANGED
@@ -1,146 +1,143 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: Active
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 0
|
8
|
-
- 42
|
9
|
-
version: 0.0.42
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.7
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
12
|
-
- Jonathan Spooner,
|
7
|
+
authors:
|
8
|
+
- Jonathan Spooner, Marc Leglise
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
12
|
+
date: 2012-01-03 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: json
|
16
|
+
requirement: &70100667115100 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1'
|
22
|
+
type: :runtime
|
22
23
|
prerelease: false
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
version:
|
24
|
+
version_requirements: *70100667115100
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: hashie
|
27
|
+
requirement: &70100667114600 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '1'
|
32
33
|
type: :runtime
|
33
|
-
version_requirements: *id001
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: dalli
|
36
34
|
prerelease: false
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
version:
|
35
|
+
version_requirements: *70100667114600
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: activesupport
|
38
|
+
requirement: &70100667114140 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>'
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '3'
|
46
44
|
type: :runtime
|
47
|
-
version_requirements: *id002
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: bones
|
50
45
|
prerelease: false
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
version:
|
46
|
+
version_requirements: *70100667114140
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: htmlentities
|
49
|
+
requirement: &70100667113680 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>'
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '4'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70100667113680
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: rspec
|
60
|
+
requirement: &70100667113220 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ~>
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '2'
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *70100667113220
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: metric_fu
|
71
|
+
requirement: &70100667112760 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ~>
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '2'
|
60
77
|
type: :development
|
61
|
-
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *70100667112760
|
62
80
|
description: Search api for Active Network
|
63
|
-
email:
|
64
|
-
|
65
|
-
|
81
|
+
email:
|
82
|
+
- jspooner@gmail.com
|
83
|
+
executables: []
|
66
84
|
extensions: []
|
67
|
-
|
68
|
-
extra_rdoc_files:
|
85
|
+
extra_rdoc_files:
|
69
86
|
- History.txt
|
70
|
-
- README.
|
71
|
-
|
72
|
-
-
|
73
|
-
-
|
74
|
-
-
|
75
|
-
|
87
|
+
- README.md
|
88
|
+
files:
|
89
|
+
- .gitignore
|
90
|
+
- .irbrc
|
91
|
+
- .rspec
|
92
|
+
- .rvmrc
|
76
93
|
- Active.gemspec
|
94
|
+
- Gemfile
|
77
95
|
- History.txt
|
78
|
-
- README.
|
96
|
+
- README.md
|
79
97
|
- Rakefile
|
80
|
-
- bin/Active
|
81
|
-
- lib/.DS_Store
|
82
98
|
- lib/Active.rb
|
83
|
-
- lib/
|
84
|
-
- lib/
|
85
|
-
- lib/
|
86
|
-
- lib/
|
87
|
-
- lib/
|
88
|
-
- lib/
|
89
|
-
- lib/
|
90
|
-
- lib/
|
91
|
-
- lib/
|
92
|
-
- lib/
|
93
|
-
-
|
94
|
-
- lib/services/search.rb
|
95
|
-
- lib/services/validators.rb
|
96
|
-
- rspec-tm
|
97
|
-
- rvmrc
|
98
|
-
- spec/.DS_Store
|
99
|
-
- spec/Active_spec.rb
|
100
|
-
- spec/activeworks_spec.rb
|
101
|
-
- spec/activity_spec.rb
|
102
|
-
- spec/ats_spec.rb
|
103
|
-
- spec/benchmark/search_bench.rb
|
104
|
-
- spec/custom_matchers_spec.rb
|
105
|
-
- spec/gsa_spec.rb
|
106
|
-
- spec/reg_spec.rb
|
107
|
-
- spec/search_memcached_spec.rb
|
99
|
+
- lib/active/activity.rb
|
100
|
+
- lib/active/article.rb
|
101
|
+
- lib/active/asset.rb
|
102
|
+
- lib/active/errors.rb
|
103
|
+
- lib/active/query.rb
|
104
|
+
- lib/active/result.rb
|
105
|
+
- lib/active/results.rb
|
106
|
+
- lib/active/training.rb
|
107
|
+
- lib/active/version.rb
|
108
|
+
- lib/ext/hash_extensions.rb
|
109
|
+
- spec/asset_spec.rb
|
108
110
|
- spec/search_spec.rb
|
109
111
|
- spec/spec.opts
|
110
112
|
- spec/spec_helper.rb
|
111
|
-
- spec/validators_spec.rb
|
112
|
-
- test/test_Active.rb
|
113
|
-
- version.txt
|
114
|
-
has_rdoc: true
|
115
113
|
homepage: http://developer.active.com/docs/Activecom_Search_API_Reference
|
116
114
|
licenses: []
|
117
|
-
|
118
|
-
|
119
|
-
rdoc_options:
|
115
|
+
post_install_message:
|
116
|
+
rdoc_options:
|
120
117
|
- --main
|
121
|
-
- README.
|
122
|
-
require_paths:
|
118
|
+
- README.md
|
119
|
+
require_paths:
|
123
120
|
- lib
|
124
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
requirements:
|
133
|
-
- -
|
134
|
-
- !ruby/object:Gem::Version
|
135
|
-
|
136
|
-
- 0
|
137
|
-
version: "0"
|
121
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
122
|
+
none: false
|
123
|
+
requirements:
|
124
|
+
- - ! '>='
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
127
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
|
+
none: false
|
129
|
+
requirements:
|
130
|
+
- - ! '>='
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
138
133
|
requirements: []
|
139
|
-
|
140
134
|
rubyforge_project: Active
|
141
|
-
rubygems_version: 1.
|
135
|
+
rubygems_version: 1.8.10
|
142
136
|
signing_key:
|
143
137
|
specification_version: 3
|
144
138
|
summary: Search api for Active Network
|
145
|
-
test_files:
|
146
|
-
-
|
139
|
+
test_files:
|
140
|
+
- spec/asset_spec.rb
|
141
|
+
- spec/search_spec.rb
|
142
|
+
- spec/spec.opts
|
143
|
+
- spec/spec_helper.rb
|
data/bin/Active
DELETED
data/lib/.DS_Store
DELETED
Binary file
|
data/lib/services/.DS_Store
DELETED
Binary file
|
data/lib/services/IActivity.rb
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
# require './defaultDriver.rb'
|
2
|
-
|
3
|
-
module Active
|
4
|
-
module Services
|
5
|
-
|
6
|
-
class IActivity
|
7
|
-
|
8
|
-
attr_accessor
|
9
|
-
|
10
|
-
attr_accessor :title, :url, :categories, :address, :start_date, :start_time, :end_time, :end_date, :category, :desc,
|
11
|
-
:asset_id, :asset_type_id, :data, :online_registration
|
12
|
-
|
13
|
-
attr_reader :asset_type_id
|
14
|
-
|
15
|
-
def validated_address(address)
|
16
|
-
#ensure a hash with the proper keys
|
17
|
-
returnAddress = HashWithIndifferentAccess.new({ :name =>"", :address => "", :city => "", :state => "",:zip => "", :lat => "", :lng => "", :country => ""})
|
18
|
-
returnAddress.merge!(address)
|
19
|
-
# validations
|
20
|
-
|
21
|
-
returnAddress["zip"] = Validators.valid_zip(returnAddress["zip"])
|
22
|
-
returnAddress["state"] = Validators.valid_state(returnAddress["state"])
|
23
|
-
|
24
|
-
# ensure no nil
|
25
|
-
returnAddress.keys.each do |key|
|
26
|
-
returnAddress[key] = "" if returnAddress[key].nil?
|
27
|
-
end
|
28
|
-
returnAddress
|
29
|
-
end
|
30
|
-
|
31
|
-
def source
|
32
|
-
raise StandardError, "You must override this method"
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
data/lib/services/_ats.rb
DELETED
@@ -1,215 +0,0 @@
|
|
1
|
-
require 'digest/sha1'
|
2
|
-
module Active
|
3
|
-
module Services
|
4
|
-
|
5
|
-
class ATSError < StandardError; end
|
6
|
-
|
7
|
-
class ATS < IActivity
|
8
|
-
|
9
|
-
attr_reader :metadata_loaded
|
10
|
-
# EXAMPLE Data hash
|
11
|
-
# {"destinationID"=>"", "assetId"=>"A9EF9D79-F859-4443-A9BB-91E1833DF2D5", "substitutionUrl"=>"1878023", "city"=>"Antioch", "contactName"=>"City of Antioch", "trackbackurl"=>"http://www.active.com/page/Event_Details.htm?event_id=1878023&assetId=A9EF9D79-F859-4443-A9BB-91E1833DF2D5", "category"=>"Activities", "zip"=>"94531", "userCommentText"=>nil, "location"=>"Multi-use Room (prewett) - Prewett Family Park & Center", "latitude"=>"37.95761", :asset_id=>"A9EF9D79-F859-4443-A9BB-91E1833DF2D5", "searchWeight"=>"1", "country"=>"United States", "participationCriteria"=>"All", "dma"=>"San Francisco - Oakland - San Jose", "isSearchable"=>"true", :asset_name=>"Fitness, Pilates Mat Class (16 Yrs. & Up)", :substitution_url=>"1878023", :asset_type_id=>"EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65", "row"=>"1", "image1"=>"http://www.active.com/images/events/hotrace.gif", "startDate"=>"2010-09-13", "contactPhone"=>"925-779-7070", :asset_type_name=>"Active.com Event Registration", "onlineDonationAvailable"=>"0", "avgUserRating"=>nil, "market"=>"San Francisco - Oakland - San Jose", "assetTypeId"=>"EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65", "assetName"=>"Fitness, Pilates Mat Class (16 Yrs. & Up)", "channel"=>"Not Specified", "seourl"=>"http://www.active.com/not-specified-recware-activities/antioch-ca/fitness-pilates-mat-class-16-yrs-and-up-2010", :xmlns=>"http://api.asset.services.active.com", :url=>"http://www.active.com/page/Event_Details.htm?event_id=1878023", "mediaType"=>"Recware Activities", "startTime"=>"18:15:00", "endTime"=>"18:15:00", "contactEmail"=>"dadams@ci.antioch.ca.us", "eventResults"=>nil, "longitude"=>"-121.7936", "endDate"=>"2010-09-13", "onlineRegistrationAvailable"=>"true", "onlineMembershipAvailable"=>"0", "state"=>"California"}
|
12
|
-
# {"destinationID"=>"", "assetId"=>"D9A22F33-8A14-4175-8D5B-D11578212A98", "substitutionUrl"=>"1847738", "city"=>"Encino", "contactName"=>"Lilliane Ballesteros", "trackbackurl"=>"http://www.active.com/page/Event_Details.htm?event_id=1847738&assetId=D9A22F33-8A14-4175-8D5B-D11578212A98", "category"=>"Activities", "zip"=>"91406", "userCommentText"=>nil, "location"=>"Balboa Park/Lake Balboa", "latitude"=>"34.19933", :asset_id=>"D9A22F33-8A14-4175-8D5B-D11578212A98", "searchWeight"=>"1", "country"=>"United States", "participationCriteria"=>"All", "dma"=>"Los Angeles", "isSearchable"=>"1", :asset_name=>"2nd Annual weSPARK 10K Run & 5K Run Walk", :substitution_url=>"1847738", :asset_type_id=>"EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65", "row"=>"1", "image1"=>"http://www.active.com/images/events/hotrace.gif", "startDate"=>"2010-11-14", "contactPhone"=>"818-906-3022", :asset_type_name=>"Active.com Event Registration", "onlineDonationAvailable"=>"0", "avgUserRating"=>nil, "market"=>"Los Angeles", "assetTypeId"=>"EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65", "assetName"=>"2nd Annual weSPARK 10K Run & 5K Run Walk", "channel"=>["Running", "Walking"], "seourl"=>"http://www.active.com/running/encino-ca/2nd-annual-wespark-10k-run-and-5k-run-walk-2010", :xmlns=>"http://api.asset.services.active.com", :url=>"http://www.active.com/page/Event_Details.htm?event_id=1847738", "mediaType"=>["Event", "Event\\10K", "Event\\5K"], "startTime"=>"8:00:00", "endTime"=>"8:00:00", "contactEmail"=>"lilliane@wespark.org", "eventResults"=>nil, "longitude"=>"-118.4924", "endDate"=>"2010-11-14", "onlineRegistrationAvailable"=>"1", "onlineMembershipAvailable"=>"0", "state"=>"California", "estParticipants"=>"1400", "eventURL"=>"http://www.wespark.org"}
|
13
|
-
|
14
|
-
def initialize(data={},preload_metadata=false)
|
15
|
-
# need to hold on to original data
|
16
|
-
@data = data
|
17
|
-
@asset_id = data[:asset_id]
|
18
|
-
@url = data[:url]
|
19
|
-
@asset_type_id = data[:asset_type_id]
|
20
|
-
@title = data[:asset_name] if data[:asset_name]
|
21
|
-
@substitution_url = data[:substitution_url]
|
22
|
-
# @metadata_loaded = false
|
23
|
-
# load_metadata if preload_metadata
|
24
|
-
end
|
25
|
-
|
26
|
-
def source
|
27
|
-
:ats
|
28
|
-
end
|
29
|
-
|
30
|
-
|
31
|
-
def title
|
32
|
-
# load_metadata unless @metadata_loaded
|
33
|
-
# if @data.has_key?("assetName")
|
34
|
-
@data["assetName"]
|
35
|
-
# else
|
36
|
-
# @title
|
37
|
-
# end
|
38
|
-
end
|
39
|
-
|
40
|
-
def url
|
41
|
-
# load_metadata unless @metadata_loaded
|
42
|
-
if @data.has_key?("seourl")
|
43
|
-
@data["seourl"]
|
44
|
-
elsif @data.has_key?("trackbackurl")
|
45
|
-
@data["trackbackurl"]
|
46
|
-
else
|
47
|
-
@url
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def categories
|
52
|
-
# load_metadata unless @metadata_loaded
|
53
|
-
categories = @data["channel"]
|
54
|
-
if categories.class==String
|
55
|
-
[@data["channel"]]
|
56
|
-
else
|
57
|
-
@data["channel"]
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def address
|
62
|
-
# load_metadata unless @metadata_loaded
|
63
|
-
@address = validated_address({
|
64
|
-
:name => @data["location"],
|
65
|
-
:address => @data["address"],
|
66
|
-
:city => @data["city"],
|
67
|
-
:state => @data["state"],
|
68
|
-
:zip => @data["zip"],
|
69
|
-
:lat => @data["latitude"],
|
70
|
-
:lng => @data["longitude"],
|
71
|
-
:country => @data["country"]
|
72
|
-
})
|
73
|
-
end
|
74
|
-
|
75
|
-
def start_date
|
76
|
-
# load_metadata unless @metadata_loaded
|
77
|
-
if @data.has_key?("startDate")
|
78
|
-
if @data.has_key?("startTime")
|
79
|
-
(DateTime.parse "#{@data["startDate"]} #{@data["startTime"]}")
|
80
|
-
else
|
81
|
-
(DateTime.parse @data["startDate"])
|
82
|
-
end
|
83
|
-
else
|
84
|
-
nil
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
def start_time
|
89
|
-
start_date
|
90
|
-
end
|
91
|
-
|
92
|
-
def end_date
|
93
|
-
# load_metadata unless @metadata_loaded
|
94
|
-
if @data.has_key?("endDate")
|
95
|
-
if @data.has_key?("endTime")
|
96
|
-
(DateTime.parse "#{@data["endDate"]} #{@data["endTime"]}")
|
97
|
-
else
|
98
|
-
(DateTime.parse @data["endDate"])
|
99
|
-
end
|
100
|
-
else
|
101
|
-
nil
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
|
-
def end_time
|
106
|
-
end_date
|
107
|
-
end
|
108
|
-
|
109
|
-
|
110
|
-
def category
|
111
|
-
categories.first
|
112
|
-
end
|
113
|
-
|
114
|
-
def desc
|
115
|
-
# load_metadata unless @metadata_loaded
|
116
|
-
if @data.has_key?("allText")
|
117
|
-
@data["allText"]
|
118
|
-
elsif @data.has_key?("summary")
|
119
|
-
@data["summary"]
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
def contact_name
|
124
|
-
# load_metadata unless @metadata_loaded
|
125
|
-
@data["contactName"] if @data.has_key?("contactName")
|
126
|
-
end
|
127
|
-
|
128
|
-
def contact_email
|
129
|
-
# load_metadata unless @metadata_loaded
|
130
|
-
@data["contactEmail"] if @data.has_key?("contactEmail")
|
131
|
-
end
|
132
|
-
|
133
|
-
def substitutionUrl
|
134
|
-
@data[:substitution_url]
|
135
|
-
end
|
136
|
-
|
137
|
-
|
138
|
-
# EXAMPLE
|
139
|
-
# lazy load the data for some_crazy_method
|
140
|
-
# def some_crazy
|
141
|
-
# return @some_crazy unless @some_crazy.nil?
|
142
|
-
# @some_crazy = @data[:some_crazy_method_from_ats].split replace twist bla bla bla
|
143
|
-
# end
|
144
|
-
|
145
|
-
def self.find_by_id(id)
|
146
|
-
begin
|
147
|
-
c = Savon::Client.new("http://api.amp.active.com/asset-service/services/AssetService")
|
148
|
-
c.request.headers["Api-Key"] = "6npky9t57235vps5cetm3s7k"
|
149
|
-
r = c.get_asset_by_id! do |soap|
|
150
|
-
soap.namespace = "http://api.asset.services.active.com"
|
151
|
-
soap.body = "<context><userId></userId><applicationId></applicationId></context><assetId>#{id}</assetId>"
|
152
|
-
end
|
153
|
-
ats = ATS.new(r.to_hash[:get_asset_by_id_response][:out])
|
154
|
-
ats.load_metadata
|
155
|
-
|
156
|
-
return ats
|
157
|
-
|
158
|
-
rescue Savon::SOAPFault => e
|
159
|
-
raise ATSError, "Couldn't find activity with the id of #{id} error #{e.inspect}"
|
160
|
-
return
|
161
|
-
end
|
162
|
-
end
|
163
|
-
|
164
|
-
def load_metadata
|
165
|
-
metadata = ATS.get_asset_metadata(@asset_id)
|
166
|
-
@data.merge! Hash.from_xml(metadata.to_hash[:get_asset_metadata_response][:out])["importSource"]["asset"]
|
167
|
-
@metadata_loaded=true
|
168
|
-
end
|
169
|
-
|
170
|
-
private
|
171
|
-
|
172
|
-
def self.get_asset_metadata(id)
|
173
|
-
c = Savon::Client.new("http://api.amp.active.com/asset-service/services/AssetService")
|
174
|
-
c.request.headers["Api-Key"] = "6npky9t57235vps5cetm3s7k"
|
175
|
-
r = c.get_asset_metadata! do |soap|
|
176
|
-
soap.namespace = "http://api.asset.services.active.com"
|
177
|
-
soap.body = "<context><userId></userId><applicationId></applicationId></context><assetId>#{id}</assetId>"
|
178
|
-
end
|
179
|
-
return r
|
180
|
-
end
|
181
|
-
|
182
|
-
#
|
183
|
-
# def self.get_asset_metadata(id)
|
184
|
-
# search_hash = Digest::SHA1.hexdigest("ats_m_#{id}")
|
185
|
-
# if Active.CACHE
|
186
|
-
# cached_version = Active.CACHE.get(search_hash)
|
187
|
-
# return cached_version if cached_version
|
188
|
-
# end
|
189
|
-
#
|
190
|
-
# c = Savon::Client.new("http://api.amp.active.com/asset-service/services/AssetService")
|
191
|
-
# c.request.headers["Api-Key"] = "6npky9t57235vps5cetm3s7k"
|
192
|
-
# r = c.get_asset_metadata! do |soap|
|
193
|
-
# soap.namespace = "http://api.asset.services.active.com"
|
194
|
-
# soap.body = "<context><userId></userId><applicationId></applicationId></context><assetId>#{id}</assetId>"
|
195
|
-
# end
|
196
|
-
# ats = ATS.new(r.to_hash[:get_asset_metadata_response][:out])
|
197
|
-
# Active.CACHE.set(search_hash, ats) if Active.CACHE
|
198
|
-
# return ats
|
199
|
-
# end
|
200
|
-
|
201
|
-
def self.get_asset_by_id(id)
|
202
|
-
c = Savon::Client.new("http://api.amp.active.com/asset-service/services/AssetService")
|
203
|
-
c.request.headers["Api-Key"] = "6npky9t57235vps5cetm3s7k"
|
204
|
-
r = c.get_asset_by_id! do |soap|
|
205
|
-
soap.namespace = "http://api.asset.services.active.com"
|
206
|
-
soap.body = "<context><userId></userId><applicationId></applicationId></context><assetId>#{id}</assetId>"
|
207
|
-
end
|
208
|
-
ats = ATS.new(r.to_hash[:get_asset_by_id_response][:out])
|
209
|
-
return ats
|
210
|
-
end
|
211
|
-
|
212
|
-
|
213
|
-
end # end ats
|
214
|
-
end
|
215
|
-
end
|