helix 0.0.1.3.pre → 0.0.1.4.pre
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/lib/helix/statistics.rb +12 -2
- data/spec/statistics_spec.rb +122 -84
- metadata +2 -2
data/lib/helix/statistics.rb
CHANGED
@@ -39,8 +39,12 @@ module Helix
|
|
39
39
|
# @example
|
40
40
|
# Helix::Statistics.audio_ingest #=> Array of Hashes of stats data
|
41
41
|
#
|
42
|
+
# Takes one of :encode, :source, or :breakdown as the :action value. Defaults to :breakdown.
|
43
|
+
#
|
42
44
|
# @return [Array of Hashes] Statistics information.
|
43
45
|
def self.audio_ingest(opts={})
|
46
|
+
opts[:action] ||= :breakdown
|
47
|
+
self.storage(:track, opts.merge(action: :"track_ingest/#{opts[:action]}"))
|
44
48
|
end
|
45
49
|
|
46
50
|
# @example
|
@@ -78,6 +82,8 @@ module Helix
|
|
78
82
|
# @example
|
79
83
|
# Helix::Statistics.track_ingest #=> Array of Hashes of stats data
|
80
84
|
#
|
85
|
+
# Takes one of :encode, :source, or :breakdown as the :action value. Defaults to :breakdown.
|
86
|
+
#
|
81
87
|
# @return [Array of Hashes] Statistics information.
|
82
88
|
def self.track_ingest(opts={})
|
83
89
|
self.audio_ingest(opts)
|
@@ -102,9 +108,12 @@ module Helix
|
|
102
108
|
# @example
|
103
109
|
# Helix::Statistics.video_ingest #=> Array of Hashes of stats data
|
104
110
|
#
|
111
|
+
# Takes one of :encode, :source, or :breakdown as the :action value. Defaults to :breakdown.
|
112
|
+
#
|
105
113
|
# @return [Array of Hashes] Statistics information.
|
106
114
|
def self.video_ingest(opts={})
|
107
|
-
|
115
|
+
opts[:action] ||= :breakdown
|
116
|
+
self.storage(:video, opts.merge(action: :"video_publish/#{opts[:action]}"))
|
108
117
|
end
|
109
118
|
|
110
119
|
# @example
|
@@ -133,7 +142,8 @@ module Helix
|
|
133
142
|
def self.storage(media_type, opts)
|
134
143
|
memo_cfg = Helix::Config.instance
|
135
144
|
format = opts.delete(:format)
|
136
|
-
|
145
|
+
action = opts.delete(:action) || storage_action_for(media_type)
|
146
|
+
url_opts = {media_type: :statistics, action: action}
|
137
147
|
url_opts.merge!(format: format) if format
|
138
148
|
url = memo_cfg.build_url(url_opts)
|
139
149
|
# We allow opts[:sig_type] for internal negative testing only.
|
data/spec/statistics_spec.rb
CHANGED
@@ -30,102 +30,140 @@ describe Helix::Statistics do
|
|
30
30
|
subject { mod.method(meth) }
|
31
31
|
its(:arity) { should eq(-1) }
|
32
32
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
Helix::Config
|
39
|
-
|
40
|
-
end
|
41
|
-
it "should delete :format from opts" do
|
42
|
-
opts.stub(:delete)
|
43
|
-
opts.should_receive(:delete).with(:format) { "the_#{media_name}_id".to_sym }
|
44
|
-
mod.send(meth, opts)
|
45
|
-
end
|
46
|
-
it "should delete :#{media_name}_id from opts" do
|
47
|
-
opts.stub(:delete)
|
48
|
-
opts.should_receive(:delete).with("#{media_name}_id".to_sym) { "the_#{media_name}_id".to_sym }
|
49
|
-
mod.send(meth, opts)
|
50
|
-
end
|
51
|
-
context "when opts contains a :format" do
|
52
|
-
before(:each) do opts.merge!(format: :the_format) end
|
53
|
-
it "should call config.build_url(guid: the_#{media_name}_id, media_type: :#{media_name}s, action: :statistics, format: :the_format)" do
|
54
|
-
build_opts_url = {
|
55
|
-
guid: "the_#{media_name}_id".to_sym,
|
56
|
-
media_type: "#{media_name}s".to_sym,
|
57
|
-
action: :statistics,
|
58
|
-
format: :the_format
|
59
|
-
}
|
60
|
-
mock_config.should_receive(:build_url).with(build_opts_url) { :built_url }
|
33
|
+
case stats_type
|
34
|
+
when 'delivery'
|
35
|
+
media_name = MEDIA_NAME_OF[media_type] || media_type
|
36
|
+
context "when given opts containing a :#{media_name}_id" do
|
37
|
+
let(:opts) { {group: :daily, "#{media_name}_id".to_sym => "the_#{media_name}_id".to_sym} }
|
38
|
+
it "should refer to the Helix::Config instance" do
|
39
|
+
Helix::Config.should_receive(:instance) { mock_config }
|
61
40
|
mod.send(meth, opts)
|
62
41
|
end
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
mock_config.should_receive(:build_url).with({guid: "the_#{media_name}_id".to_sym, media_type: "#{media_name}s".to_sym, action: :statistics}) { :built_url }
|
42
|
+
it "should delete :format from opts" do
|
43
|
+
opts.stub(:delete)
|
44
|
+
opts.should_receive(:delete).with(:format) { "the_#{media_name}_id".to_sym }
|
67
45
|
mod.send(meth, opts)
|
68
46
|
end
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
expect(mod.send(meth, opts)).to eq(:response)
|
73
|
-
end
|
74
|
-
end
|
75
|
-
context "when given opts NOT containing a :#{media_name}_id" do
|
76
|
-
let(:opts) { {group: :daily} }
|
77
|
-
it "should refer to the Helix::Config instance" do
|
78
|
-
Helix::Config.should_receive(:instance) { mock_config }
|
79
|
-
mod.send(meth, opts)
|
80
|
-
end
|
81
|
-
it "should delete :format from opts" do
|
82
|
-
opts.stub(:delete)
|
83
|
-
opts.should_receive(:delete).with(:format) { nil }
|
84
|
-
mod.send(meth, opts)
|
85
|
-
end
|
86
|
-
it "should (fail to) delete :#{media_name}_id from opts" do
|
87
|
-
opts.stub(:delete)
|
88
|
-
opts.should_receive(:delete).with("#{media_name}_id".to_sym) { nil }
|
89
|
-
mod.send(meth, opts)
|
90
|
-
end
|
91
|
-
context "when opts contains a :format" do
|
92
|
-
before(:each) do opts.merge!(format: :the_format) end
|
93
|
-
it "should call config.build_url(media_type: :statistics, action: :#{media_name}_delivery, format: :the_format)" do
|
94
|
-
build_url_opts = {media_type: :statistics, action: "#{media_name}_delivery".to_sym, format: :the_format}
|
95
|
-
mock_config.should_receive(:build_url).with(build_url_opts) { :built_url }
|
47
|
+
it "should delete :#{media_name}_id from opts" do
|
48
|
+
opts.stub(:delete)
|
49
|
+
opts.should_receive(:delete).with("#{media_name}_id".to_sym) { "the_#{media_name}_id".to_sym }
|
96
50
|
mod.send(meth, opts)
|
97
51
|
end
|
52
|
+
context "when opts contains a :format" do
|
53
|
+
before(:each) do opts.merge!(format: :the_format) end
|
54
|
+
it "should call config.build_url(guid: the_#{media_name}_id, media_type: :#{media_name}s, action: :statistics, format: :the_format)" do
|
55
|
+
build_opts_url = {
|
56
|
+
guid: "the_#{media_name}_id".to_sym,
|
57
|
+
media_type: "#{media_name}s".to_sym,
|
58
|
+
action: :statistics,
|
59
|
+
format: :the_format
|
60
|
+
}
|
61
|
+
mock_config.should_receive(:build_url).with(build_opts_url) { :built_url }
|
62
|
+
mod.send(meth, opts)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
context "when opts did NOT contain a :format" do
|
66
|
+
it "should call config.build_url(guid: the_#{media_name}_id, media_type: :#{media_name}s, action: :statistics)" do
|
67
|
+
mock_config.should_receive(:build_url).with({guid: "the_#{media_name}_id".to_sym, media_type: "#{media_name}s".to_sym, action: :statistics}) { :built_url }
|
68
|
+
mod.send(meth, opts)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
it "should return config.get_response(built_url, opts.merge(sig_type: :view)" do
|
72
|
+
mock_config.should_receive(:get_response).with(:built_url, {group: :daily, sig_type: :view}) { :response }
|
73
|
+
expect(mod.send(meth, opts)).to eq(:response)
|
74
|
+
end
|
98
75
|
end
|
99
|
-
context "when opts
|
100
|
-
|
101
|
-
|
76
|
+
context "when given opts NOT containing a :#{media_name}_id" do
|
77
|
+
let(:opts) { {group: :daily} }
|
78
|
+
it "should refer to the Helix::Config instance" do
|
79
|
+
Helix::Config.should_receive(:instance) { mock_config }
|
102
80
|
mod.send(meth, opts)
|
103
81
|
end
|
82
|
+
it "should delete :format from opts" do
|
83
|
+
opts.stub(:delete)
|
84
|
+
opts.should_receive(:delete).with(:format) { nil }
|
85
|
+
mod.send(meth, opts)
|
86
|
+
end
|
87
|
+
it "should (fail to) delete :#{media_name}_id from opts" do
|
88
|
+
opts.stub(:delete)
|
89
|
+
opts.should_receive(:delete).with("#{media_name}_id".to_sym) { nil }
|
90
|
+
mod.send(meth, opts)
|
91
|
+
end
|
92
|
+
context "when opts contains a :format" do
|
93
|
+
before(:each) do opts.merge!(format: :the_format) end
|
94
|
+
it "should call config.build_url(media_type: :statistics, action: :#{media_name}_delivery, format: :the_format)" do
|
95
|
+
build_url_opts = {media_type: :statistics, action: "#{media_name}_delivery".to_sym, format: :the_format}
|
96
|
+
mock_config.should_receive(:build_url).with(build_url_opts) { :built_url }
|
97
|
+
mod.send(meth, opts)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
context "when opts did NOT contain a :format" do
|
101
|
+
it "should call config.build_url(media_type: :statistics, action: :#{media_name}_delivery)" do
|
102
|
+
mock_config.should_receive(:build_url).with({media_type: :statistics, action: "#{media_name}_delivery".to_sym}) { :built_url }
|
103
|
+
mod.send(meth, opts)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
it "should return config.get_response(built_url, opts.merge(sig_type: :view)" do
|
107
|
+
mock_config.should_receive(:get_response).with(:built_url, {group: :daily, sig_type: :view}) { :response }
|
108
|
+
expect(mod.send(meth, opts)).to eq(:response)
|
109
|
+
end
|
104
110
|
end
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
111
|
+
when 'ingest'
|
112
|
+
media_name = MEDIA_NAME_OF[media_type] || media_type
|
113
|
+
publish_name = INGEST_NAME_OF[media_type] || 'ingest'
|
114
|
+
context "when given opts" do
|
115
|
+
context "and opts has no :action key" do
|
116
|
+
let(:opts) { {group: :daily} }
|
117
|
+
it "should refer to the Helix::Config instance" do
|
118
|
+
Helix::Config.should_receive(:instance) { mock_config }
|
119
|
+
mod.send(meth, opts)
|
120
|
+
end
|
121
|
+
it "should call config.build_url(media_type: :statistics, action: :#{media_name}_#{publish_name}/brakdown)" do
|
122
|
+
mock_config.should_receive(:build_url).with({media_type: :statistics, action: "#{media_name}_#{publish_name}/breakdown".to_sym}) { :built_url }
|
123
|
+
mod.send(meth, opts)
|
124
|
+
end
|
125
|
+
it "should return config.get_response(built_url, opts.merge(sig_type: :view)" do
|
126
|
+
mock_config.should_receive(:get_response).with(:built_url, {group: :daily, sig_type: :view}) { :response }
|
127
|
+
expect(mod.send(meth, opts)).to eq(:response)
|
128
|
+
end
|
129
|
+
end
|
130
|
+
[ :encode, :source, :breakdown ].each do |act|
|
131
|
+
context "and opts has an :action value of :#{act}" do
|
132
|
+
let(:opts) { {action: act, group: :daily} }
|
133
|
+
it "should refer to the Helix::Config instance" do
|
134
|
+
Helix::Config.should_receive(:instance) { mock_config }
|
135
|
+
mod.send(meth, opts)
|
136
|
+
end
|
137
|
+
it "should call config.build_url(media_type: :statistics, action: :#{media_name}_#{publish_name}/#{act})" do
|
138
|
+
mock_config.should_receive(:build_url).with({media_type: :statistics, action: "#{media_name}_#{publish_name}/#{act}".to_sym}) { :built_url }
|
139
|
+
mod.send(meth, opts)
|
140
|
+
end
|
141
|
+
it "should return config.get_response(built_url, opts.merge(sig_type: :view)" do
|
142
|
+
mock_config.should_receive(:get_response).with(:built_url, {group: :daily, sig_type: :view}) { :response }
|
143
|
+
expect(mod.send(meth, opts)).to eq(:response)
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
123
147
|
end
|
124
|
-
|
125
|
-
|
126
|
-
|
148
|
+
when 'storage'
|
149
|
+
media_name = MEDIA_NAME_OF[media_type] || media_type
|
150
|
+
publish_name = INGEST_NAME_OF[media_type] || 'ingest'
|
151
|
+
context "when given opts" do
|
152
|
+
let(:opts) { {group: :daily} }
|
153
|
+
it "should refer to the Helix::Config instance" do
|
154
|
+
Helix::Config.should_receive(:instance) { mock_config }
|
155
|
+
mod.send(meth, opts)
|
156
|
+
end
|
157
|
+
it "should call config.build_url(media_type: :statistics, action: :#{media_name}_#{publish_name}/disk_usage)" do
|
158
|
+
mock_config.should_receive(:build_url).with({media_type: :statistics, action: "#{media_name}_#{publish_name}/disk_usage".to_sym}) { :built_url }
|
159
|
+
mod.send(meth, opts)
|
160
|
+
end
|
161
|
+
it "should return config.get_response(built_url, opts.merge(sig_type: :view)" do
|
162
|
+
mock_config.should_receive(:get_response).with(:built_url, {group: :daily, sig_type: :view}) { :response }
|
163
|
+
expect(mod.send(meth, opts)).to eq(:response)
|
164
|
+
end
|
127
165
|
end
|
128
|
-
|
166
|
+
# nested in for case
|
129
167
|
end
|
130
168
|
|
131
169
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: helix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease: 8
|
5
|
-
version: 0.0.1.
|
5
|
+
version: 0.0.1.4.pre
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Twistage, Inc
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-12-03 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: json
|