helix 0.0.2.5.pre → 0.0.2.6.pre
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/helix/album.rb +2 -2
- data/lib/helix/base.rb +13 -9
- data/lib/helix/config.rb +5 -5
- data/lib/helix/durationed_media.rb +7 -7
- data/lib/helix/image.rb +2 -2
- data/lib/helix/library.rb +6 -6
- data/lib/helix/media.rb +8 -8
- data/lib/helix/statistics.rb +14 -14
- data/lib/helix/tag.rb +3 -3
- data/lib/helix/track.rb +2 -2
- data/lib/helix/video.rb +3 -3
- data/spec/album_spec.rb +3 -3
- data/spec/base_spec.rb +22 -22
- data/spec/config_spec.rb +36 -36
- data/spec/durationed_media_spec.rb +5 -4
- data/spec/image_spec.rb +3 -3
- data/spec/library_spec.rb +3 -3
- data/spec/media_spec.rb +18 -18
- data/spec/statistics_spec.rb +23 -23
- data/spec/tag_spec.rb +8 -8
- data/spec/track_spec.rb +3 -3
- data/spec/video_spec.rb +11 -11
- metadata +1 -1
data/lib/helix/album.rb
CHANGED
@@ -9,10 +9,10 @@ module Helix
|
|
9
9
|
#
|
10
10
|
#
|
11
11
|
# @example
|
12
|
-
# Helix::Album.
|
12
|
+
# Helix::Album.resource_label_sym #=> :album
|
13
13
|
#
|
14
14
|
# @return [Symbol] Name of the class.
|
15
|
-
def self.
|
15
|
+
def self.resource_label_sym; super; end
|
16
16
|
|
17
17
|
# Currently update is unsupported for album.
|
18
18
|
#
|
data/lib/helix/base.rb
CHANGED
@@ -8,7 +8,7 @@ module Helix
|
|
8
8
|
class Base
|
9
9
|
|
10
10
|
unless defined?(self::METHODS_DELEGATED_TO_CLASS)
|
11
|
-
METHODS_DELEGATED_TO_CLASS = [ :guid_name, :
|
11
|
+
METHODS_DELEGATED_TO_CLASS = [ :guid_name, :resource_label_sym, :plural_resource_label ]
|
12
12
|
end
|
13
13
|
|
14
14
|
attr_accessor :attributes
|
@@ -48,11 +48,11 @@ module Helix
|
|
48
48
|
# @param [Hash] opts a hash of options for parameters passed into the HTTP GET
|
49
49
|
# @return [Array] The array of attributes (for a model) in hash form.
|
50
50
|
def self.get_data_sets(opts)
|
51
|
-
url = config.build_url(content_type:
|
52
|
-
|
51
|
+
url = config.build_url(content_type: opts[:content_type] || :xml,
|
52
|
+
resource_label: self.plural_resource_label)
|
53
53
|
# We allow opts[:sig_type] for internal negative testing only.
|
54
54
|
raw_response = config.get_response(url, {sig_type: :view}.merge(opts))
|
55
|
-
data_sets = raw_response[
|
55
|
+
data_sets = raw_response[plural_resource_label]
|
56
56
|
end
|
57
57
|
|
58
58
|
# Creates a string that associates to the class id.
|
@@ -62,17 +62,17 @@ module Helix
|
|
62
62
|
#
|
63
63
|
# @return [String] The guid name for a specific class.
|
64
64
|
def self.guid_name
|
65
|
-
"#{self.
|
65
|
+
"#{self.resource_label_sym}_id"
|
66
66
|
end
|
67
67
|
|
68
68
|
# Creates a string associated with a class name pluralized
|
69
69
|
#
|
70
70
|
# @example
|
71
|
-
# Helix::Video.
|
71
|
+
# Helix::Video.plural_resource_label #=> "videos"
|
72
72
|
#
|
73
73
|
# @return [String] The class name pluralized
|
74
|
-
def self.
|
75
|
-
"#{self.
|
74
|
+
def self.plural_resource_label
|
75
|
+
"#{self.resource_label_sym}s"
|
76
76
|
end
|
77
77
|
|
78
78
|
METHODS_DELEGATED_TO_CLASS.each do |meth|
|
@@ -111,7 +111,7 @@ module Helix
|
|
111
111
|
# @return [Base] Returns an instance of the class.
|
112
112
|
def load(opts={})
|
113
113
|
memo_cfg = config
|
114
|
-
url = memo_cfg.build_url(content_type: :json, guid: self.guid,
|
114
|
+
url = memo_cfg.build_url(content_type: :json, guid: self.guid, resource_label: plural_resource_label)
|
115
115
|
# We allow opts[:sig_type] for internal negative testing only.
|
116
116
|
raw_attrs = memo_cfg.get_response(url, {sig_type: :view}.merge(opts))
|
117
117
|
@attributes = massage_raw_attrs(raw_attrs)
|
@@ -170,5 +170,9 @@ module Helix
|
|
170
170
|
attrs.merge({'custom_fields' => cfs})
|
171
171
|
end
|
172
172
|
|
173
|
+
def self.resource_label_sym
|
174
|
+
to_s.split('::').last.singularize.downcase.to_sym
|
175
|
+
end
|
176
|
+
|
173
177
|
end
|
174
178
|
end
|
data/lib/helix/config.rb
CHANGED
@@ -48,7 +48,7 @@ module Helix
|
|
48
48
|
# @return [String] The full RESTful URL string object
|
49
49
|
def add_sub_urls(base_url, opts)
|
50
50
|
guid, action, format = [:guid, :action, :formats].map { |sub| opts[sub] }
|
51
|
-
url = "#{base_url}/#{opts[:
|
51
|
+
url = "#{base_url}/#{opts[:resource_label]}"
|
52
52
|
url += "/#{guid}" if guid
|
53
53
|
url += "/formats/#{format}" if format
|
54
54
|
url += "/#{action}" if action
|
@@ -61,10 +61,10 @@ module Helix
|
|
61
61
|
# @param [Hash] opts a hash of options for building URL
|
62
62
|
# @return [String] The full RESTful URL string object
|
63
63
|
def build_url(opts={})
|
64
|
-
opts[:content_type]
|
65
|
-
opts[:
|
66
|
-
base_url
|
67
|
-
url
|
64
|
+
opts[:content_type] ||= :xml
|
65
|
+
opts[:resource_label] ||= :videos
|
66
|
+
base_url = get_base_url(opts)
|
67
|
+
url = add_sub_urls(base_url, opts)
|
68
68
|
end
|
69
69
|
|
70
70
|
def clear_signatures!
|
@@ -75,13 +75,13 @@ module Helix
|
|
75
75
|
#
|
76
76
|
# @return [Hash]
|
77
77
|
def url_opts_for(format=nil)
|
78
|
-
{ slice: { action:
|
79
|
-
|
80
|
-
content_type:
|
81
|
-
formats:
|
82
|
-
create_many: { action:
|
83
|
-
|
84
|
-
content_type:
|
78
|
+
{ slice: { action: :slice,
|
79
|
+
resource_label: plural_resource_label,
|
80
|
+
content_type: :xml,
|
81
|
+
formats: format },
|
82
|
+
create_many: { action: :create_many,
|
83
|
+
resource_label: plural_resource_label,
|
84
|
+
content_type: :xml }
|
85
85
|
}
|
86
86
|
end
|
87
87
|
end
|
data/lib/helix/image.rb
CHANGED
@@ -9,10 +9,10 @@ module Helix
|
|
9
9
|
#
|
10
10
|
#
|
11
11
|
# @example
|
12
|
-
# Helix::Image.
|
12
|
+
# Helix::Image.resource_label_sym #=> :image
|
13
13
|
#
|
14
14
|
# @return [Symbol] Name of the class.
|
15
|
-
def self.
|
15
|
+
def self.resource_label_sym; super; end
|
16
16
|
|
17
17
|
end
|
18
18
|
|
data/lib/helix/library.rb
CHANGED
@@ -9,19 +9,19 @@ module Helix
|
|
9
9
|
#
|
10
10
|
#
|
11
11
|
# @example
|
12
|
-
# Helix::Library.
|
12
|
+
# Helix::Library.resource_label_sym #=> :library
|
13
13
|
#
|
14
14
|
# @return [Symbol] Name of the class.
|
15
|
-
def self.
|
15
|
+
def self.resource_label_sym; super; end
|
16
16
|
|
17
17
|
# Creates a string associated with a class name pluralized
|
18
18
|
#
|
19
19
|
# @example
|
20
|
-
# Helix::Library.
|
20
|
+
# Helix::Library.plural_resource_label #=> "libraries"
|
21
21
|
#
|
22
22
|
# @return [String] The class name pluralized
|
23
|
-
def self.
|
24
|
-
"
|
23
|
+
def self.plural_resource_label
|
24
|
+
"libraries"
|
25
25
|
end
|
26
26
|
|
27
27
|
def self.known_attributes
|
@@ -30,4 +30,4 @@ module Helix
|
|
30
30
|
|
31
31
|
end
|
32
32
|
|
33
|
-
end
|
33
|
+
end
|
data/lib/helix/media.rb
CHANGED
@@ -13,11 +13,11 @@ module Helix
|
|
13
13
|
# @param [Hash] attributes a hash containing the attributes used in the create
|
14
14
|
# @return [Base] An instance of Helix::Base
|
15
15
|
def self.create(attributes={})
|
16
|
-
url = config.build_url(
|
17
|
-
content_type:
|
16
|
+
url = config.build_url(resource_label: plural_resource_label,
|
17
|
+
content_type: :xml)
|
18
18
|
response = RestClient.post(url, attributes.merge(signature: config.signature(:update)))
|
19
19
|
attrs = Hash.from_xml(response)
|
20
|
-
self.new(attributes: attrs[
|
20
|
+
self.new(attributes: attrs[resource_label_sym.to_s], config: config)
|
21
21
|
end
|
22
22
|
|
23
23
|
# Finds and returns a record in instance form for a class, through
|
@@ -43,7 +43,7 @@ module Helix
|
|
43
43
|
#
|
44
44
|
# @return [String] The response from the HTTP DELETE call.
|
45
45
|
def destroy
|
46
|
-
url = config.build_url(content_type: :xml, guid: guid,
|
46
|
+
url = config.build_url(content_type: :xml, guid: guid, resource_label: plural_resource_label)
|
47
47
|
RestClient.delete(url, params: {signature: config.signature(:update)})
|
48
48
|
end
|
49
49
|
|
@@ -58,10 +58,10 @@ module Helix
|
|
58
58
|
def update(opts={})
|
59
59
|
RestClient.log = 'helix.log' if opts.delete(:log)
|
60
60
|
memo_cfg = config
|
61
|
-
url = memo_cfg.build_url(content_type:
|
62
|
-
guid:
|
63
|
-
|
64
|
-
params = {signature: memo_cfg.signature(:update)}.merge(
|
61
|
+
url = memo_cfg.build_url(content_type: :xml,
|
62
|
+
guid: guid,
|
63
|
+
resource_label: plural_resource_label)
|
64
|
+
params = {signature: memo_cfg.signature(:update)}.merge(resource_label_sym => opts)
|
65
65
|
RestClient.put(url, params)
|
66
66
|
self
|
67
67
|
end
|
data/lib/helix/statistics.rb
CHANGED
@@ -124,42 +124,42 @@ module Helix
|
|
124
124
|
|
125
125
|
private
|
126
126
|
|
127
|
-
def self.delivery(
|
127
|
+
def self.delivery(resource_label, opts)
|
128
128
|
memo_cfg = Helix::Config.instance
|
129
129
|
content_type = opts.delete(:content_type)
|
130
|
-
guid = opts.delete("#{
|
130
|
+
guid = opts.delete("#{resource_label}_id".to_sym)
|
131
131
|
url_opts = guid ?
|
132
|
-
{guid: guid,
|
133
|
-
{
|
132
|
+
{guid: guid, resource_label: "#{resource_label}s".to_sym, action: :statistics} :
|
133
|
+
{resource_label: :statistics, action: "#{resource_label}_delivery".to_sym}
|
134
134
|
url_opts.merge!(content_type: content_type) if content_type
|
135
135
|
url = memo_cfg.build_url(url_opts)
|
136
136
|
# We allow opts[:sig_type] for internal negative testing only.
|
137
137
|
memo_cfg.get_response(url, {sig_type: :view}.merge(opts))
|
138
138
|
end
|
139
139
|
|
140
|
-
def self.ingest(
|
140
|
+
def self.ingest(resource_label, opts)
|
141
141
|
opts[:action] ||= :breakdown
|
142
|
-
action_prefix = ingest_action_prefix_for(
|
143
|
-
storage(
|
142
|
+
action_prefix = ingest_action_prefix_for(resource_label)
|
143
|
+
storage(resource_label, opts.merge(action: :"#{action_prefix}/#{opts[:action]}"))
|
144
144
|
end
|
145
145
|
|
146
|
-
def self.storage(
|
146
|
+
def self.storage(resource_label, opts)
|
147
147
|
memo_cfg = Helix::Config.instance
|
148
148
|
content_type = opts.delete(:content_type)
|
149
|
-
action = opts.delete(:action) || storage_action_for(
|
150
|
-
url_opts = {
|
149
|
+
action = opts.delete(:action) || storage_action_for(resource_label)
|
150
|
+
url_opts = {resource_label: :statistics, action: action}
|
151
151
|
url_opts.merge!(content_type: content_type) if content_type
|
152
152
|
url = memo_cfg.build_url(url_opts)
|
153
153
|
# We allow opts[:sig_type] for internal negative testing only.
|
154
154
|
memo_cfg.get_response(url, {sig_type: :view}.merge(opts))
|
155
155
|
end
|
156
156
|
|
157
|
-
def self.ingest_action_prefix_for(
|
158
|
-
STORAGE_ACTION_FOR[
|
157
|
+
def self.ingest_action_prefix_for(resource_label)
|
158
|
+
STORAGE_ACTION_FOR[resource_label].split('/').first
|
159
159
|
end
|
160
160
|
|
161
|
-
def self.storage_action_for(
|
162
|
-
STORAGE_ACTION_FOR[
|
161
|
+
def self.storage_action_for(resource_label)
|
162
|
+
STORAGE_ACTION_FOR[resource_label].to_sym
|
163
163
|
end
|
164
164
|
|
165
165
|
end
|
data/lib/helix/tag.rb
CHANGED
@@ -10,9 +10,9 @@ module Helix
|
|
10
10
|
#
|
11
11
|
#
|
12
12
|
# @example
|
13
|
-
# Helix::Tag.
|
13
|
+
# Helix::Tag.resource_label_sym #=> :tag
|
14
14
|
#
|
15
15
|
# @return [Symbol] Name of the class.
|
16
|
-
def self.
|
16
|
+
def self.resource_label_sym; super; end
|
17
17
|
end
|
18
|
-
end
|
18
|
+
end
|
data/lib/helix/track.rb
CHANGED
@@ -11,9 +11,9 @@ module Helix
|
|
11
11
|
#
|
12
12
|
#
|
13
13
|
# @example
|
14
|
-
# Helix::Track.
|
14
|
+
# Helix::Track.resource_label_sym #=> :track
|
15
15
|
#
|
16
16
|
# @return [Symbol] Name of the class.
|
17
|
-
def self.
|
17
|
+
def self.resource_label_sym; super; end
|
18
18
|
end
|
19
19
|
end
|
data/lib/helix/video.rb
CHANGED
@@ -12,10 +12,10 @@ module Helix
|
|
12
12
|
#
|
13
13
|
#
|
14
14
|
# @example
|
15
|
-
# Helix::Video.
|
15
|
+
# Helix::Video.resource_label_sym #=> :video
|
16
16
|
#
|
17
17
|
# @return [Symbol] Name of the class.
|
18
|
-
def self.
|
18
|
+
def self.resource_label_sym; super; end
|
19
19
|
|
20
20
|
def self.slice(attrs={})
|
21
21
|
rest_post(:slice, attrs)
|
@@ -68,7 +68,7 @@ module Helix
|
|
68
68
|
|
69
69
|
def generic_download(opts)
|
70
70
|
content_type = opts[:content_type] || ''
|
71
|
-
url = config.build_url(action: opts[:action], content_type: content_type, guid: guid,
|
71
|
+
url = config.build_url(action: opts[:action], content_type: content_type, guid: guid, resource_label: plural_resource_label)
|
72
72
|
RestClient.get(url, params: {signature: config.signature(:view)})
|
73
73
|
end
|
74
74
|
|
data/spec/album_spec.rb
CHANGED
@@ -7,8 +7,8 @@ describe Helix::Album do
|
|
7
7
|
subject { klass }
|
8
8
|
its(:ancestors) { should include(Helix::Base) }
|
9
9
|
its(:guid_name) { should eq('album_id') }
|
10
|
-
its(:
|
11
|
-
its(:
|
10
|
+
its(:resource_label_sym) { should be(:album) }
|
11
|
+
its(:plural_resource_label) { should eq('albums') }
|
12
12
|
[:find, :create, :all, :find_all, :where].each do |crud_call|
|
13
13
|
it { should respond_to(crud_call) }
|
14
14
|
end
|
@@ -26,7 +26,7 @@ describe Helix::Album do
|
|
26
26
|
describe "an instance" do
|
27
27
|
let(:obj) { klass.new({'album_id' => 'some_album_guid'}) }
|
28
28
|
subject { obj }
|
29
|
-
its(:
|
29
|
+
its(:resource_label_sym) { should be(:album) }
|
30
30
|
describe "#update" do
|
31
31
|
let(:meth) { :update }
|
32
32
|
it "should raise an error" do
|
data/spec/base_spec.rb
CHANGED
@@ -5,10 +5,10 @@ describe Helix::Base do
|
|
5
5
|
|
6
6
|
def set_stubs(obj, even_sig=false)
|
7
7
|
obj.instance_variable_set(:@attributes, {})
|
8
|
-
obj.stub(:
|
9
|
-
obj.stub(:
|
10
|
-
obj.stub(:guid)
|
11
|
-
obj.stub(:signature)
|
8
|
+
obj.stub(:resource_label_sym) { :video }
|
9
|
+
obj.stub(:plural_resource_label) { 'videos' }
|
10
|
+
obj.stub(:guid) { 'some_guid' }
|
11
|
+
obj.stub(:signature) { 'some_sig' } if even_sig
|
12
12
|
end
|
13
13
|
|
14
14
|
let(:klass) { Helix::Base }
|
@@ -18,7 +18,7 @@ describe Helix::Base do
|
|
18
18
|
describe "Constants" do
|
19
19
|
describe "METHODS_DELEGATED_TO_CLASS" do
|
20
20
|
subject { klass::METHODS_DELEGATED_TO_CLASS }
|
21
|
-
it { should eq([:guid_name, :
|
21
|
+
it { should eq([:guid_name, :resource_label_sym, :plural_resource_label]) }
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
@@ -41,21 +41,21 @@ describe Helix::Base do
|
|
41
41
|
before(:each) do Helix::Config.stub(:instance) { mock_config } end
|
42
42
|
context "when given a config instances and an opts Hash" do
|
43
43
|
let(:opts) { {opts_key1: :opts_val1} }
|
44
|
-
let(:
|
45
|
-
before(:each) do klass.stub(:
|
44
|
+
let(:plural_resource_label) { :videos }
|
45
|
+
before(:each) do klass.stub(:plural_resource_label) { plural_resource_label } end
|
46
46
|
it "should build a XML URL -> the_url" do
|
47
|
-
mock_config.should_receive(:build_url).with(content_type:
|
48
|
-
|
47
|
+
mock_config.should_receive(:build_url).with(content_type: :xml,
|
48
|
+
resource_label: plural_resource_label)
|
49
49
|
klass.send(meth, opts)
|
50
50
|
end
|
51
51
|
it "should get_response(the_url, {sig_type: :view}.merge(opts) -> raw_response" do
|
52
52
|
mock_config.should_receive(:get_response).with(:built_url, {sig_type: :view}.merge(opts))
|
53
53
|
klass.send(meth, opts)
|
54
54
|
end
|
55
|
-
it "should read raw_response[
|
55
|
+
it "should read raw_response[plural_resource_label] -> data_sets" do
|
56
56
|
mock_raw_response = mock(Object)
|
57
57
|
mock_config.stub(:get_response) { mock_raw_response }
|
58
|
-
mock_raw_response.should_receive(:[]).with(
|
58
|
+
mock_raw_response.should_receive(:[]).with(plural_resource_label)
|
59
59
|
klass.send(meth, opts)
|
60
60
|
end
|
61
61
|
context "when data_sets is nil" do
|
@@ -63,7 +63,7 @@ describe Helix::Base do
|
|
63
63
|
end
|
64
64
|
context "when data_sets is NOT nil" do
|
65
65
|
let(:data_set) { (0..2).to_a }
|
66
|
-
before(:each) do mock_config.stub(:get_response) { {
|
66
|
+
before(:each) do mock_config.stub(:get_response) { {plural_resource_label => data_set } } end
|
67
67
|
it "should map instantiation with attributes: each data set element" do
|
68
68
|
klass.should_receive(:new).with(attributes: data_set[0], config: mock_config) { :a }
|
69
69
|
klass.should_receive(:new).with(attributes: data_set[1], config: mock_config) { :b }
|
@@ -79,21 +79,21 @@ describe Helix::Base do
|
|
79
79
|
subject { klass.method(meth) }
|
80
80
|
before(:each) do Helix::Config.stub(:instance) { mock_config } end
|
81
81
|
context "when given a config instances and NO opts Hash" do
|
82
|
-
let(:
|
83
|
-
before(:each) do klass.stub(:
|
82
|
+
let(:plural_resource_label) { :videos }
|
83
|
+
before(:each) do klass.stub(:plural_resource_label) { plural_resource_label } end
|
84
84
|
it "should build a XML URL -> the_url" do
|
85
|
-
mock_config.should_receive(:build_url).with(content_type:
|
86
|
-
|
85
|
+
mock_config.should_receive(:build_url).with(content_type: :xml,
|
86
|
+
resource_label: plural_resource_label)
|
87
87
|
klass.send(meth)
|
88
88
|
end
|
89
89
|
it "should get_response(the_url, {sig_type: :view} -> raw_response" do
|
90
90
|
mock_config.should_receive(:get_response).with(:built_url, {sig_type: :view})
|
91
91
|
klass.send(meth)
|
92
92
|
end
|
93
|
-
it "should read raw_response[
|
93
|
+
it "should read raw_response[plural_resource_label] -> data_sets" do
|
94
94
|
mock_raw_response = mock(Object)
|
95
95
|
mock_config.stub(:get_response) { mock_raw_response }
|
96
|
-
mock_raw_response.should_receive(:[]).with(
|
96
|
+
mock_raw_response.should_receive(:[]).with(plural_resource_label)
|
97
97
|
klass.send(meth)
|
98
98
|
end
|
99
99
|
context "when data_sets is nil" do
|
@@ -101,7 +101,7 @@ describe Helix::Base do
|
|
101
101
|
end
|
102
102
|
context "when data_sets is NOT nil" do
|
103
103
|
let(:data_set) { (0..2).to_a }
|
104
|
-
before(:each) do mock_config.stub(:get_response) { {
|
104
|
+
before(:each) do mock_config.stub(:get_response) { {plural_resource_label => data_set } } end
|
105
105
|
it "should map instantiation with attributes: each data set element" do
|
106
106
|
klass.should_receive(:new).with(attributes: data_set[0], config: mock_config) { :a }
|
107
107
|
klass.should_receive(:new).with(attributes: data_set[1], config: mock_config) { :b }
|
@@ -227,15 +227,15 @@ describe Helix::Base do
|
|
227
227
|
obj.stub(:massage_raw_attrs) { :massaged_attrs }
|
228
228
|
mock_config.stub(:build_url) { :expected_url }
|
229
229
|
mock_config.stub(:get_response) { :raw_attrs }
|
230
|
-
klass.stub(:
|
230
|
+
klass.stub(:resource_label_sym) { :video }
|
231
231
|
end
|
232
232
|
shared_examples_for "builds URL for load" do
|
233
233
|
it "should call #guid" do
|
234
234
|
obj.should_receive(:guid) { 'some_guid' }
|
235
235
|
obj.send(meth)
|
236
236
|
end
|
237
|
-
it "should build_url(content_type: :json, guid: the_guid,
|
238
|
-
mock_config.should_receive(:build_url).with(content_type: :json, guid: 'some_guid',
|
237
|
+
it "should build_url(content_type: :json, guid: the_guid, resource_label: 'videos')" do
|
238
|
+
mock_config.should_receive(:build_url).with(content_type: :json, guid: 'some_guid', resource_label: 'videos')
|
239
239
|
RestClient.stub(:put)
|
240
240
|
obj.send(meth)
|
241
241
|
end
|
data/spec/config_spec.rb
CHANGED
@@ -5,10 +5,10 @@ describe Helix::Config do
|
|
5
5
|
|
6
6
|
def set_stubs(obj, even_sig=false)
|
7
7
|
obj.instance_variable_set(:@attributes, {})
|
8
|
-
obj.stub(:
|
9
|
-
obj.stub(:
|
10
|
-
obj.stub(:guid)
|
11
|
-
obj.stub(:signature)
|
8
|
+
obj.stub(:resource_label_sym) { :video }
|
9
|
+
obj.stub(:plural_resource_label) { 'videos' }
|
10
|
+
obj.stub(:guid) { 'some_guid' }
|
11
|
+
obj.stub(:signature) { 'some_sig' } if even_sig
|
12
12
|
end
|
13
13
|
|
14
14
|
let(:klass) { Helix::Config }
|
@@ -107,10 +107,10 @@ describe Helix::Config do
|
|
107
107
|
end
|
108
108
|
end
|
109
109
|
|
110
|
-
def build_test_url(site, sub_url, guid, action,
|
110
|
+
def build_test_url(site, sub_url, guid, action, resource_label, content_type)
|
111
111
|
expected_url = site
|
112
112
|
expected_url += sub_url unless guid || action == :create_many
|
113
|
-
expected_url += "/#{
|
113
|
+
expected_url += "/#{resource_label}"
|
114
114
|
expected_url += "/the_guid" if guid
|
115
115
|
expected_url += "/#{action}" if action
|
116
116
|
expected_url += ".#{content_type}"
|
@@ -122,11 +122,11 @@ describe Helix::Config do
|
|
122
122
|
subject { obj.method(meth) }
|
123
123
|
its(:arity) { should be(-1) }
|
124
124
|
before(:each) do obj.credentials = { site: site } end
|
125
|
-
shared_examples_for "reads scope from credentials for build_url" do |
|
125
|
+
shared_examples_for "reads scope from credentials for build_url" do |resource_label,content_type,more_opts|
|
126
126
|
let(:opts) { more_opts || {} }
|
127
127
|
let(:action) { opts[:action] }
|
128
128
|
let(:guid) { opts[:guid] }
|
129
|
-
let(:url_pieces) { [site, sub_url, guid, action,
|
129
|
+
let(:url_pieces) { [site, sub_url, guid, action, resource_label, content_type] }
|
130
130
|
let(:expected_url) { build_test_url(*url_pieces) }
|
131
131
|
before(:each) do obj.credentials = {site: 'http://example.com'} end
|
132
132
|
context "and credentials has a key for :reseller" do
|
@@ -187,22 +187,22 @@ describe Helix::Config do
|
|
187
187
|
subject { obj.send(meth, {guid: :the_guid, action: :the_action}) }
|
188
188
|
it_behaves_like "reads scope from credentials for build_url", :videos, :xml, {guid: :the_guid, action: :the_action}
|
189
189
|
end
|
190
|
-
[ :videos, :tracks ].each do |
|
191
|
-
context "when given opts[:
|
192
|
-
subject { obj.send(meth,
|
193
|
-
it_behaves_like "reads scope from credentials for build_url",
|
190
|
+
[ :videos, :tracks ].each do |resource_label|
|
191
|
+
context "when given opts[:resource_label] of :#{resource_label}" do
|
192
|
+
subject { obj.send(meth, resource_label: resource_label) }
|
193
|
+
it_behaves_like "reads scope from credentials for build_url", resource_label, :xml
|
194
194
|
end
|
195
|
-
context "when given opts[:
|
196
|
-
subject { obj.send(meth,
|
197
|
-
it_behaves_like "reads scope from credentials for build_url",
|
195
|
+
context "when given opts[:resource_label] of :#{resource_label} and opts[:guid] of :the_guid" do
|
196
|
+
subject { obj.send(meth, resource_label: resource_label, guid: :the_guid) }
|
197
|
+
it_behaves_like "reads scope from credentials for build_url", resource_label, :xml, {guid: :the_guid}
|
198
198
|
end
|
199
|
-
context "when given opts[:
|
200
|
-
subject { obj.send(meth,
|
201
|
-
it_behaves_like "reads scope from credentials for build_url",
|
199
|
+
context "when given opts[:resource_label] of :#{resource_label} and opts[:action] of :the_action" do
|
200
|
+
subject { obj.send(meth, resource_label: resource_label, action: :the_action) }
|
201
|
+
it_behaves_like "reads scope from credentials for build_url", resource_label, :xml, {action: :the_action}
|
202
202
|
end
|
203
|
-
context "when given opts[:
|
204
|
-
subject { obj.send(meth,
|
205
|
-
it_behaves_like "reads scope from credentials for build_url",
|
203
|
+
context "when given opts[:resource_label] of :#{resource_label}, opts[:guid] of :the_guid, opts[:action] of :the_action" do
|
204
|
+
subject { obj.send(meth, resource_label: resource_label, guid: :the_guid, action: :the_action) }
|
205
|
+
it_behaves_like "reads scope from credentials for build_url", resource_label, :xml, {guid: :the_guid, action: :the_action}
|
206
206
|
end
|
207
207
|
end
|
208
208
|
[ :json, :xml ].each do |content_type|
|
@@ -222,31 +222,31 @@ describe Helix::Config do
|
|
222
222
|
subject { obj.send(meth, content_type: content_type, guid: :the_guid, action: :the_action) }
|
223
223
|
it_behaves_like "reads scope from credentials for build_url", :videos, content_type, {guid: :the_guid, action: :the_action}
|
224
224
|
end
|
225
|
-
[ :videos, :tracks ].each do |
|
226
|
-
context "when given opts[:content_type] of :#{content_type} and opts[:
|
227
|
-
subject { obj.send(meth, content_type: content_type,
|
228
|
-
it_behaves_like "reads scope from credentials for build_url",
|
225
|
+
[ :videos, :tracks ].each do |resource_label|
|
226
|
+
context "when given opts[:content_type] of :#{content_type} and opts[:resource_label] of :#{resource_label}" do
|
227
|
+
subject { obj.send(meth, content_type: content_type, resource_label: resource_label) }
|
228
|
+
it_behaves_like "reads scope from credentials for build_url", resource_label, content_type
|
229
229
|
end
|
230
|
-
context "when given opts[:content_type] of :#{content_type}, opts[:guid] of :the_guid, and opts[:
|
231
|
-
subject { obj.send(meth, content_type: content_type, guid: :the_guid,
|
232
|
-
it_behaves_like "reads scope from credentials for build_url",
|
230
|
+
context "when given opts[:content_type] of :#{content_type}, opts[:guid] of :the_guid, and opts[:resource_label] of :#{resource_label}" do
|
231
|
+
subject { obj.send(meth, content_type: content_type, guid: :the_guid, resource_label: resource_label) }
|
232
|
+
it_behaves_like "reads scope from credentials for build_url", resource_label, content_type, {guid: :the_guid}
|
233
233
|
end
|
234
|
-
context "when given opts[:content_type] of :#{content_type}, opts[:action] of :the_action, and opts[:
|
235
|
-
subject { obj.send(meth, content_type: content_type, action: :the_action,
|
236
|
-
it_behaves_like "reads scope from credentials for build_url",
|
234
|
+
context "when given opts[:content_type] of :#{content_type}, opts[:action] of :the_action, and opts[:resource_label] of :#{resource_label}" do
|
235
|
+
subject { obj.send(meth, content_type: content_type, action: :the_action, resource_label: resource_label) }
|
236
|
+
it_behaves_like "reads scope from credentials for build_url", resource_label, content_type, {action: :the_action}
|
237
237
|
end
|
238
|
-
context "when given opts[:content_type] of :#{content_type}, opts[:guid] of :the_guid, opts[:action] of :the_action, and opts[:
|
239
|
-
subject { obj.send(meth, content_type: content_type, guid: :the_guid, action: :the_action,
|
240
|
-
it_behaves_like "reads scope from credentials for build_url",
|
238
|
+
context "when given opts[:content_type] of :#{content_type}, opts[:guid] of :the_guid, opts[:action] of :the_action, and opts[:resource_label] of :#{resource_label}" do
|
239
|
+
subject { obj.send(meth, content_type: content_type, guid: :the_guid, action: :the_action, resource_label: resource_label) }
|
240
|
+
it_behaves_like "reads scope from credentials for build_url", resource_label, content_type, {guid: :the_guid, action: :the_action}
|
241
241
|
end
|
242
242
|
end
|
243
243
|
end
|
244
|
-
dl_opts = {action: :file, content_type: '', guid: :the_guid,
|
244
|
+
dl_opts = {action: :file, content_type: '', guid: :the_guid, resource_label: :videos}
|
245
245
|
context "when given opts of #{dl_opts}" do
|
246
246
|
subject { obj.send(meth, dl_opts) }
|
247
247
|
it { should eq("http://example.com/videos/the_guid/file") }
|
248
248
|
end
|
249
|
-
dp_opts = {action: :play, content_type: '', guid: :the_guid,
|
249
|
+
dp_opts = {action: :play, content_type: '', guid: :the_guid, resource_label: :videos}
|
250
250
|
context "when given opts of #{dp_opts}" do
|
251
251
|
subject { obj.send(meth, dp_opts) }
|
252
252
|
it { should eq("http://example.com/videos/the_guid/play") }
|
@@ -16,9 +16,10 @@ describe Helix::DurationedMedia do
|
|
16
16
|
|
17
17
|
let(:sig_opts) { { contributor: :helix,
|
18
18
|
library_id: :development } }
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
|
20
|
+
url_opts = { action: :create_many,
|
21
|
+
resource_label: klass.send(:plural_resource_label),
|
22
|
+
content_type: :xml }
|
22
23
|
|
23
24
|
describe ".import" do
|
24
25
|
let(:meth) { :import }
|
@@ -89,4 +90,4 @@ describe Helix::DurationedMedia do
|
|
89
90
|
end
|
90
91
|
end
|
91
92
|
end
|
92
|
-
end
|
93
|
+
end
|
data/spec/image_spec.rb
CHANGED
@@ -7,8 +7,8 @@ describe Helix::Image do
|
|
7
7
|
subject { klass }
|
8
8
|
its(:ancestors) { should include(Helix::Base) }
|
9
9
|
its(:guid_name) { should eq('image_id') }
|
10
|
-
its(:
|
11
|
-
its(:
|
10
|
+
its(:resource_label_sym) { should be(:image) }
|
11
|
+
its(:plural_resource_label) { should eq('images') }
|
12
12
|
[:find, :create, :all, :find_all, :where].each do |crud_call|
|
13
13
|
it { should respond_to(crud_call) }
|
14
14
|
end
|
@@ -18,7 +18,7 @@ describe Helix::Image do
|
|
18
18
|
describe "an instance" do
|
19
19
|
let(:obj) { klass.new({'image_id' => 'some_image_guid'}) }
|
20
20
|
subject { obj }
|
21
|
-
its(:
|
21
|
+
its(:resource_label_sym) { should be(:image) }
|
22
22
|
[:destroy, :update].each do |crud_call|
|
23
23
|
it { should respond_to(crud_call) }
|
24
24
|
end
|
data/spec/library_spec.rb
CHANGED
@@ -6,8 +6,8 @@ describe Helix::Library do
|
|
6
6
|
let(:klass) { Helix::Library }
|
7
7
|
subject { klass }
|
8
8
|
its(:guid_name) { should eq('library_id') }
|
9
|
-
its(:
|
10
|
-
its(:
|
9
|
+
its(:resource_label_sym) { should be(:library) }
|
10
|
+
its(:plural_resource_label) { should eq('libraries') }
|
11
11
|
[:find, :create, :all, :find_all, :where].each do |crud_call|
|
12
12
|
it { should respond_to(crud_call) }
|
13
13
|
end
|
@@ -28,7 +28,7 @@ describe Helix::Library do
|
|
28
28
|
describe "an instance" do
|
29
29
|
let(:obj) { klass.new({'library_id' => 'some_library_id'}) }
|
30
30
|
subject { obj }
|
31
|
-
its(:
|
31
|
+
its(:resource_label_sym) { should be(:library) }
|
32
32
|
[:destroy, :update].each do |crud_call|
|
33
33
|
it { should respond_to(crud_call) }
|
34
34
|
end
|
data/spec/media_spec.rb
CHANGED
@@ -18,15 +18,15 @@ describe Helix::Media do
|
|
18
18
|
let(:params) { { signature: "some_sig" } }
|
19
19
|
let(:expected) { { attributes: { attribute: :value }, config: mock_config } }
|
20
20
|
before(:each) do
|
21
|
-
klass.stub(:
|
22
|
-
klass.stub(:
|
23
|
-
mock_config.stub(:build_url).with(action: :create_many,
|
21
|
+
klass.stub(:plural_resource_label) { :klasses }
|
22
|
+
klass.stub(:resource_label_sym) { klass_sym }
|
23
|
+
mock_config.stub(:build_url).with(action: :create_many, resource_label: :klasses) { :url }
|
24
24
|
mock_config.stub(:signature).with(:update) { "some_sig" }
|
25
25
|
Helix::Config.stub(:instance) { mock_config }
|
26
26
|
end
|
27
27
|
it "should get an ingest signature" do
|
28
|
-
mock_config.should_receive(:build_url).with(
|
29
|
-
content_type:
|
28
|
+
mock_config.should_receive(:build_url).with(resource_label: :klasses,
|
29
|
+
content_type: :xml)
|
30
30
|
RestClient.stub(:post).with(:url, params) { resp_json }
|
31
31
|
Hash.should_receive(:from_xml).with(resp_json) { resp_value }
|
32
32
|
klass.stub(:new).with(expected)
|
@@ -34,8 +34,8 @@ describe Helix::Media do
|
|
34
34
|
klass.send(meth)
|
35
35
|
end
|
36
36
|
it "should do an HTTP post call, parse response and call new" do
|
37
|
-
mock_config.should_receive(:build_url).with(
|
38
|
-
content_type:
|
37
|
+
mock_config.should_receive(:build_url).with(resource_label: :klasses,
|
38
|
+
content_type: :xml)
|
39
39
|
RestClient.should_receive(:post).with(:url, params) { resp_json }
|
40
40
|
Hash.should_receive(:from_xml).with(resp_json) { resp_value }
|
41
41
|
klass.should_receive(:new).with(expected)
|
@@ -89,20 +89,20 @@ describe Helix::Media do
|
|
89
89
|
before do
|
90
90
|
obj.stub(:config) { mock_config }
|
91
91
|
obj.stub(:guid) { :some_guid }
|
92
|
-
obj.stub(:
|
92
|
+
obj.stub(:plural_resource_label) { :resource_label }
|
93
93
|
end
|
94
94
|
it "should get an update signature" do
|
95
|
-
url = mock_config.build_url(
|
96
|
-
guid:
|
97
|
-
content_type:
|
95
|
+
url = mock_config.build_url(resource_label: :resource_label,
|
96
|
+
guid: :some_guid,
|
97
|
+
content_type: :xml)
|
98
98
|
RestClient.stub(:delete).with(url, params)
|
99
99
|
mock_config.should_receive(:signature).with(:update) { :some_sig }
|
100
100
|
obj.send(meth)
|
101
101
|
end
|
102
102
|
it "should call for an HTTP delete and return nil" do
|
103
|
-
url = mock_config.build_url(
|
104
|
-
guid:
|
105
|
-
content_type:
|
103
|
+
url = mock_config.build_url(resource_label: :resource_label,
|
104
|
+
guid: :some_guid,
|
105
|
+
content_type: :xml)
|
106
106
|
RestClient.should_receive(:delete).with(url, params)
|
107
107
|
expect(obj.send(meth)).to be_nil
|
108
108
|
end
|
@@ -115,14 +115,14 @@ describe Helix::Media do
|
|
115
115
|
before(:each) do
|
116
116
|
obj.stub(:config) { mock_config }
|
117
117
|
obj.stub(:guid) { :the_guid }
|
118
|
-
obj.stub(:
|
119
|
-
obj.stub(:
|
118
|
+
obj.stub(:resource_label_sym) { :video }
|
119
|
+
obj.stub(:plural_resource_label) { :the_resource_label }
|
120
120
|
mock_config.stub(:signature).with(:update) { 'some_sig' }
|
121
121
|
mock_config.stub(:build_url) { :expected_url }
|
122
122
|
end
|
123
123
|
shared_examples_for "builds URL for update" do
|
124
|
-
it "should build_url(content_type: :xml, guid: guid,
|
125
|
-
mock_config.should_receive(:build_url).with(content_type: :xml, guid: :the_guid,
|
124
|
+
it "should build_url(content_type: :xml, guid: guid, resource_label: plural_resource_label)" do
|
125
|
+
mock_config.should_receive(:build_url).with(content_type: :xml, guid: :the_guid, resource_label: :the_resource_label)
|
126
126
|
RestClient.stub(:put)
|
127
127
|
obj.send(meth)
|
128
128
|
end
|
data/spec/statistics_spec.rb
CHANGED
@@ -18,12 +18,12 @@ describe Helix::Statistics do
|
|
18
18
|
describe "Constants"
|
19
19
|
|
20
20
|
STATS_TYPES.each do |stats_type|
|
21
|
-
STATS_MEDIA_TYPES.each do |
|
21
|
+
STATS_MEDIA_TYPES.each do |resource_label|
|
22
22
|
|
23
|
-
next if STATS_IMAGE_TYPES.include?(
|
23
|
+
next if STATS_IMAGE_TYPES.include?(resource_label) and stats_type == 'ingest'
|
24
24
|
|
25
|
-
describe ".#{
|
26
|
-
let(:meth) { "#{
|
25
|
+
describe ".#{resource_label}_#{stats_type}" do
|
26
|
+
let(:meth) { "#{resource_label}_#{stats_type}" }
|
27
27
|
let(:mock_config) { mock(Helix::Config, build_url: :built_url, get_response: :response) }
|
28
28
|
before(:each) do Helix::Config.stub(:instance) { mock_config } end
|
29
29
|
|
@@ -32,7 +32,7 @@ describe Helix::Statistics do
|
|
32
32
|
|
33
33
|
case stats_type
|
34
34
|
when 'delivery'
|
35
|
-
media_name = MEDIA_NAME_OF[
|
35
|
+
media_name = MEDIA_NAME_OF[resource_label] || resource_label
|
36
36
|
context "when given opts containing a :#{media_name}_id" do
|
37
37
|
let(:opts) { {group: :daily, "#{media_name}_id".to_sym => "the_#{media_name}_id".to_sym} }
|
38
38
|
it "should refer to the Helix::Config instance" do
|
@@ -51,10 +51,10 @@ describe Helix::Statistics do
|
|
51
51
|
end
|
52
52
|
context "when opts contains a :content_type" do
|
53
53
|
before(:each) do opts.merge!(content_type: :the_format) end
|
54
|
-
it "should call config.build_url(guid: the_#{media_name}_id,
|
54
|
+
it "should call config.build_url(guid: the_#{media_name}_id, resource_label: :#{media_name}s, action: :statistics, content_type: :the_format)" do
|
55
55
|
build_opts_url = {
|
56
56
|
guid: "the_#{media_name}_id".to_sym,
|
57
|
-
|
57
|
+
resource_label: "#{media_name}s".to_sym,
|
58
58
|
action: :statistics,
|
59
59
|
content_type: :the_format
|
60
60
|
}
|
@@ -63,8 +63,8 @@ describe Helix::Statistics do
|
|
63
63
|
end
|
64
64
|
end
|
65
65
|
context "when opts did NOT contain a :content_type" do
|
66
|
-
it "should call config.build_url(guid: the_#{media_name}_id,
|
67
|
-
mock_config.should_receive(:build_url).with({guid: "the_#{media_name}_id".to_sym,
|
66
|
+
it "should call config.build_url(guid: the_#{media_name}_id, resource_label: :#{media_name}s, action: :statistics)" do
|
67
|
+
mock_config.should_receive(:build_url).with({guid: "the_#{media_name}_id".to_sym, resource_label: "#{media_name}s".to_sym, action: :statistics}) { :built_url }
|
68
68
|
mod.send(meth, opts)
|
69
69
|
end
|
70
70
|
end
|
@@ -91,15 +91,15 @@ describe Helix::Statistics do
|
|
91
91
|
end
|
92
92
|
context "when opts contains a :content_type" do
|
93
93
|
before(:each) do opts.merge!(content_type: :the_format) end
|
94
|
-
it "should call config.build_url(
|
95
|
-
build_url_opts = {
|
94
|
+
it "should call config.build_url(resource_label: :statistics, action: :#{media_name}_delivery, content_type: :the_format)" do
|
95
|
+
build_url_opts = {resource_label: :statistics, action: "#{media_name}_delivery".to_sym, content_type: :the_format}
|
96
96
|
mock_config.should_receive(:build_url).with(build_url_opts) { :built_url }
|
97
97
|
mod.send(meth, opts)
|
98
98
|
end
|
99
99
|
end
|
100
100
|
context "when opts did NOT contain a :content_type" do
|
101
|
-
it "should call config.build_url(
|
102
|
-
mock_config.should_receive(:build_url).with({
|
101
|
+
it "should call config.build_url(resource_label: :statistics, action: :#{media_name}_delivery)" do
|
102
|
+
mock_config.should_receive(:build_url).with({resource_label: :statistics, action: "#{media_name}_delivery".to_sym}) { :built_url }
|
103
103
|
mod.send(meth, opts)
|
104
104
|
end
|
105
105
|
end
|
@@ -109,8 +109,8 @@ describe Helix::Statistics do
|
|
109
109
|
end
|
110
110
|
end
|
111
111
|
when 'ingest'
|
112
|
-
media_name = MEDIA_NAME_OF[
|
113
|
-
publish_name = INGEST_NAME_OF[
|
112
|
+
media_name = MEDIA_NAME_OF[resource_label] || resource_label
|
113
|
+
publish_name = INGEST_NAME_OF[resource_label] || 'ingest'
|
114
114
|
context "when given opts" do
|
115
115
|
context "and opts has no :action key" do
|
116
116
|
let(:opts) { {group: :daily} }
|
@@ -118,8 +118,8 @@ describe Helix::Statistics do
|
|
118
118
|
Helix::Config.should_receive(:instance) { mock_config }
|
119
119
|
mod.send(meth, opts)
|
120
120
|
end
|
121
|
-
it "should call config.build_url(
|
122
|
-
mock_config.should_receive(:build_url).with({
|
121
|
+
it "should call config.build_url(resource_label: :statistics, action: :#{media_name}_#{publish_name}/brakdown)" do
|
122
|
+
mock_config.should_receive(:build_url).with({resource_label: :statistics, action: "#{media_name}_#{publish_name}/breakdown".to_sym}) { :built_url }
|
123
123
|
mod.send(meth, opts)
|
124
124
|
end
|
125
125
|
it "should return config.get_response(built_url, opts.merge(sig_type: :view)" do
|
@@ -134,8 +134,8 @@ describe Helix::Statistics do
|
|
134
134
|
Helix::Config.should_receive(:instance) { mock_config }
|
135
135
|
mod.send(meth, opts)
|
136
136
|
end
|
137
|
-
it "should call config.build_url(
|
138
|
-
mock_config.should_receive(:build_url).with({
|
137
|
+
it "should call config.build_url(resource_label: :statistics, action: :#{media_name}_#{publish_name}/#{act})" do
|
138
|
+
mock_config.should_receive(:build_url).with({resource_label: :statistics, action: "#{media_name}_#{publish_name}/#{act}".to_sym}) { :built_url }
|
139
139
|
mod.send(meth, opts)
|
140
140
|
end
|
141
141
|
it "should return config.get_response(built_url, opts.merge(sig_type: :view)" do
|
@@ -146,16 +146,16 @@ describe Helix::Statistics do
|
|
146
146
|
end
|
147
147
|
end
|
148
148
|
when 'storage'
|
149
|
-
media_name = MEDIA_NAME_OF[
|
150
|
-
publish_name = INGEST_NAME_OF[
|
149
|
+
media_name = MEDIA_NAME_OF[resource_label] || resource_label
|
150
|
+
publish_name = INGEST_NAME_OF[resource_label] || 'ingest'
|
151
151
|
context "when given opts" do
|
152
152
|
let(:opts) { {group: :daily} }
|
153
153
|
it "should refer to the Helix::Config instance" do
|
154
154
|
Helix::Config.should_receive(:instance) { mock_config }
|
155
155
|
mod.send(meth, opts)
|
156
156
|
end
|
157
|
-
it "should call config.build_url(
|
158
|
-
mock_config.should_receive(:build_url).with({
|
157
|
+
it "should call config.build_url(resource_label: :statistics, action: :#{media_name}_#{publish_name}/disk_usage)" do
|
158
|
+
mock_config.should_receive(:build_url).with({resource_label: :statistics, action: "#{media_name}_#{publish_name}/disk_usage".to_sym}) { :built_url }
|
159
159
|
mod.send(meth, opts)
|
160
160
|
end
|
161
161
|
it "should return config.get_response(built_url, opts.merge(sig_type: :view)" do
|
data/spec/tag_spec.rb
CHANGED
@@ -3,10 +3,10 @@ require 'helix'
|
|
3
3
|
|
4
4
|
describe Helix::Tag do
|
5
5
|
|
6
|
-
let(:klass)
|
7
|
-
subject
|
8
|
-
its(:
|
9
|
-
its(:
|
6
|
+
let(:klass) { Helix::Tag }
|
7
|
+
subject { klass }
|
8
|
+
its(:resource_label_sym) { should be(:tag) }
|
9
|
+
its(:plural_resource_label) { should eq('tags') }
|
10
10
|
it { should_not respond_to(:find) }
|
11
11
|
it { should_not respond_to(:create) }
|
12
12
|
it { should respond_to(:all)}
|
@@ -15,10 +15,10 @@ describe Helix::Tag do
|
|
15
15
|
describe "Constants"
|
16
16
|
|
17
17
|
describe "an instance" do
|
18
|
-
let(:obj)
|
19
|
-
subject
|
20
|
-
its(:
|
18
|
+
let(:obj) { klass.new({}) }
|
19
|
+
subject { obj }
|
20
|
+
its(:resource_label_sym) { should be(:tag) }
|
21
21
|
it { should_not respond_to(:destroy) }
|
22
22
|
it { should_not respond_to(:update) }
|
23
23
|
end
|
24
|
-
end
|
24
|
+
end
|
data/spec/track_spec.rb
CHANGED
@@ -6,8 +6,8 @@ describe Helix::Track do
|
|
6
6
|
let(:klass) { Helix::Track }
|
7
7
|
subject { klass }
|
8
8
|
its(:guid_name) { should eq('track_id') }
|
9
|
-
its(:
|
10
|
-
its(:
|
9
|
+
its(:resource_label_sym) { should be(:track) }
|
10
|
+
its(:plural_resource_label) { should eq('tracks') }
|
11
11
|
[:find, :create, :all, :find_all, :where].each do |crud_call|
|
12
12
|
it { should respond_to(crud_call) }
|
13
13
|
end
|
@@ -17,7 +17,7 @@ describe Helix::Track do
|
|
17
17
|
describe "an instance" do
|
18
18
|
let(:obj) { klass.new({'track_id' => 'some_track_guid'}) }
|
19
19
|
subject { obj }
|
20
|
-
its(:
|
20
|
+
its(:resource_label_sym) { should be(:track) }
|
21
21
|
[:destroy, :update].each do |crud_call|
|
22
22
|
it { should respond_to(crud_call) }
|
23
23
|
end
|
data/spec/video_spec.rb
CHANGED
@@ -10,8 +10,8 @@ describe Helix::Video do
|
|
10
10
|
let(:klass) { Helix::Video }
|
11
11
|
subject { klass }
|
12
12
|
its(:guid_name) { should eq('video_id') }
|
13
|
-
its(:
|
14
|
-
its(:
|
13
|
+
its(:resource_label_sym) { should be(:video) }
|
14
|
+
its(:plural_resource_label) { should eq('videos') }
|
15
15
|
[:find, :create, :all, :find_all, :where].each do |crud_call|
|
16
16
|
it { should respond_to(crud_call) }
|
17
17
|
end
|
@@ -23,7 +23,7 @@ describe Helix::Video do
|
|
23
23
|
describe "an instance" do
|
24
24
|
let(:obj) { klass.new({video_id: 'some_video_guid'}) }
|
25
25
|
subject { obj }
|
26
|
-
its(:
|
26
|
+
its(:resource_label_sym) { should be(:video) }
|
27
27
|
|
28
28
|
describe "#download" do
|
29
29
|
let(:meth) { :download }
|
@@ -33,11 +33,11 @@ describe Helix::Video do
|
|
33
33
|
before do
|
34
34
|
obj.stub(:config) { mock_config }
|
35
35
|
obj.stub(:guid) { :some_guid }
|
36
|
-
obj.stub(:
|
36
|
+
obj.stub(:plural_resource_label) { :resource_label }
|
37
37
|
RestClient.stub(:get) { '' }
|
38
38
|
end
|
39
39
|
{ '' => '', mp3: :mp3, nil => '' }.each do |arg,actual|
|
40
|
-
build_url_h = {action: :file, content_type: actual, guid: :some_guid,
|
40
|
+
build_url_h = {action: :file, content_type: actual, guid: :some_guid, resource_label: :resource_label}
|
41
41
|
context "when given {content_type: #{arg}" do
|
42
42
|
it "should build_url(#{build_url_h})" do
|
43
43
|
mock_config.should_receive(:build_url).with(build_url_h)
|
@@ -64,11 +64,11 @@ describe Helix::Video do
|
|
64
64
|
before do
|
65
65
|
obj.stub(:config) { mock_config }
|
66
66
|
obj.stub(:guid) { :some_guid }
|
67
|
-
obj.stub(:
|
67
|
+
obj.stub(:plural_resource_label) { :resource_label }
|
68
68
|
RestClient.stub(:get) { '' }
|
69
69
|
end
|
70
70
|
{ '' => '', mp3: :mp3, nil => '' }.each do |arg,actual|
|
71
|
-
build_url_h = {action: :play, content_type: actual, guid: :some_guid,
|
71
|
+
build_url_h = {action: :play, content_type: actual, guid: :some_guid, resource_label: :resource_label}
|
72
72
|
context "when given {content_type: #{arg}" do
|
73
73
|
it "should build_url(#{build_url_h})" do
|
74
74
|
mock_config.should_receive(:build_url).with(build_url_h)
|
@@ -114,10 +114,10 @@ describe Helix::Video do
|
|
114
114
|
its(:arity) { should eq(-1) }
|
115
115
|
let(:params) { { params: { signature: :some_sig },
|
116
116
|
content_type: "text/xml" } }
|
117
|
-
let(:url_opts) { { action:
|
118
|
-
|
119
|
-
content_type:
|
120
|
-
formats:
|
117
|
+
let(:url_opts) { { action: :slice,
|
118
|
+
resource_label: "videos",
|
119
|
+
content_type: :xml,
|
120
|
+
formats: :some_format } }
|
121
121
|
let(:sig_opts) { { contributor: :helix,
|
122
122
|
library_id: :development,
|
123
123
|
formats: :some_format } }
|