helix 0.0.3.1.pre → 0.0.3.2.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.rb +1 -0
- data/lib/helix/document.rb +19 -0
- data/spec/document_spec.rb +137 -0
- metadata +5 -3
data/lib/helix.rb
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'helix/media'
|
2
|
+
|
3
|
+
module Helix
|
4
|
+
|
5
|
+
class Document < Media
|
6
|
+
|
7
|
+
# The class name, to be used by supporting classes. Such as Config which uses
|
8
|
+
# this method as a way to build URLs.
|
9
|
+
#
|
10
|
+
#
|
11
|
+
# @example
|
12
|
+
# Helix::Document.resource_label_sym #=> :document
|
13
|
+
#
|
14
|
+
# @return [Symbol] Name of the class.
|
15
|
+
def self.resource_label_sym; :document; end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,137 @@
|
|
1
|
+
require File.expand_path('../spec_helper', __FILE__)
|
2
|
+
require 'helix'
|
3
|
+
|
4
|
+
describe Helix::Document do
|
5
|
+
let(:klass) { Helix::Document }
|
6
|
+
|
7
|
+
subject { klass }
|
8
|
+
mods = [ Helix::Base, Helix::Media ]
|
9
|
+
mods.each { |mod| its(:ancestors) { should include(mod) } }
|
10
|
+
its(:guid_name) { should eq('document_id') }
|
11
|
+
its(:resource_label_sym) { should be(:document) }
|
12
|
+
its(:plural_resource_label) { should eq('documents') }
|
13
|
+
[:find, :create, :all, :find_all, :where].each do |crud_call|
|
14
|
+
it { should respond_to(crud_call) }
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "Constants"
|
18
|
+
|
19
|
+
### INSTANCE METHODS
|
20
|
+
|
21
|
+
describe "an instance" do
|
22
|
+
let(:obj) { klass.new({'document_id' => 'some_document_guid'}) }
|
23
|
+
subject { obj }
|
24
|
+
its(:resource_label_sym) { should be(:document) }
|
25
|
+
[:destroy, :update].each do |crud_call|
|
26
|
+
it { should respond_to(crud_call) }
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
### CLASS METHODS
|
31
|
+
|
32
|
+
describe ".upload" do
|
33
|
+
let(:meth) { :upload }
|
34
|
+
let(:mock_config) { mock(Helix::Config) }
|
35
|
+
subject { klass.method(meth) }
|
36
|
+
its(:arity) { should eq(1) }
|
37
|
+
let(:file_hash) { { file: :some_file } }
|
38
|
+
let(:multipart_hash) { { multipart: true } }
|
39
|
+
it "should call upload_server_name and RestClient.post with params" do
|
40
|
+
klass.should_receive(:upload_server_name) { :some_server_url }
|
41
|
+
File.should_receive(:new).with(:some_file.to_s, "rb") { :some_file }
|
42
|
+
RestClient.should_receive(:post).with(:some_server_url,
|
43
|
+
file_hash,
|
44
|
+
multipart_hash)
|
45
|
+
klass.should_receive(:http_close)
|
46
|
+
klass.send(meth, :some_file)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe ".upload_server_name" do
|
51
|
+
let(:meth) { :upload_server_name }
|
52
|
+
let(:mock_config) { mock(Helix::Config) }
|
53
|
+
subject { klass.method(meth) }
|
54
|
+
its(:arity) { should eq(0) }
|
55
|
+
let(:url_opts) { { resource_label: "upload_sessions",
|
56
|
+
guid: :some_sig,
|
57
|
+
action: :http_open,
|
58
|
+
content_type: "" } }
|
59
|
+
before { Helix::Config.stub(:instance) { mock_config } }
|
60
|
+
it "should call RestClient.get with correct url building" do
|
61
|
+
mock_config.should_receive(:build_url).with(url_opts) { :url }
|
62
|
+
mock_config.should_receive(:signature).with(:ingest) { :some_sig }
|
63
|
+
RestClient.should_receive(:get).with(:url)
|
64
|
+
klass.send(meth)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe ".http_close" do
|
69
|
+
let(:meth) { :http_close }
|
70
|
+
let(:mock_config) { mock(Helix::Config) }
|
71
|
+
subject { klass.method(meth) }
|
72
|
+
its(:arity) { should eq(0) }
|
73
|
+
let(:url_opts) { { resource_label: "upload_sessions",
|
74
|
+
guid: :some_sig,
|
75
|
+
action: :http_close,
|
76
|
+
content_type: "" } }
|
77
|
+
before { Helix::Config.stub(:instance) { mock_config } }
|
78
|
+
it "should call RestClient.get with correct url building" do
|
79
|
+
mock_config.should_receive(:build_url).with(url_opts) { :url }
|
80
|
+
mock_config.should_receive(:signature).with(:ingest) { :some_sig }
|
81
|
+
RestClient.should_receive(:get).with(:url)
|
82
|
+
klass.send(meth)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
describe ".upload_get" do
|
87
|
+
let(:meth) { :upload_get }
|
88
|
+
let(:mock_config) { mock(Helix::Config) }
|
89
|
+
subject { klass.method(meth) }
|
90
|
+
its(:arity) { should eq(1) }
|
91
|
+
let(:url_opts) { { resource_label: "upload_sessions",
|
92
|
+
guid: :some_sig,
|
93
|
+
action: :upload_get,
|
94
|
+
content_type: "" } }
|
95
|
+
before { Helix::Config.stub(:instance) { mock_config } }
|
96
|
+
it "should call RestClient.get with correct url building" do
|
97
|
+
mock_config.should_receive(:build_url).with(url_opts) { :url }
|
98
|
+
mock_config.should_receive(:signature).with(:ingest) { :some_sig }
|
99
|
+
RestClient.should_receive(:get).with(:url)
|
100
|
+
klass.send(meth, :upload_get)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
describe ".http_open" do
|
105
|
+
let(:meth) { :http_open }
|
106
|
+
let(:mock_config) { mock(Helix::Config) }
|
107
|
+
subject { klass.method(meth) }
|
108
|
+
its(:arity) { should eq(0) }
|
109
|
+
it "should call upload_server_name" do
|
110
|
+
klass.should_receive(:upload_server_name)
|
111
|
+
klass.send(meth)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
describe ".upload_open" do
|
116
|
+
let(:meth) { :upload_open }
|
117
|
+
let(:mock_config) { mock(Helix::Config) }
|
118
|
+
subject { klass.method(meth) }
|
119
|
+
its(:arity) { should eq(0) }
|
120
|
+
it "should call upload_server_name" do
|
121
|
+
klass.should_receive(:upload_server_name)
|
122
|
+
klass.send(meth)
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
describe ".upload_close" do
|
127
|
+
let(:meth) { :upload_close }
|
128
|
+
let(:mock_config) { mock(Helix::Config) }
|
129
|
+
subject { klass.method(meth) }
|
130
|
+
its(:arity) { should eq(0) }
|
131
|
+
it "should call upload_server_name" do
|
132
|
+
klass.should_receive(:http_close)
|
133
|
+
klass.send(meth)
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
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.3.
|
5
|
+
version: 0.0.3.2.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: 2013-05-
|
13
|
+
date: 2013-05-14 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: json
|
@@ -68,7 +68,7 @@ dependencies:
|
|
68
68
|
type: :runtime
|
69
69
|
version_requirements: *id005
|
70
70
|
description: Provides helper libraries for Ruby access to the Twistage API
|
71
|
-
email:
|
71
|
+
email: kevin.baird@perceptivesoftware.com, michael.wood@perceptivesoftware.com
|
72
72
|
executables: []
|
73
73
|
|
74
74
|
extensions: []
|
@@ -84,6 +84,7 @@ files:
|
|
84
84
|
- lib/helix/library.rb
|
85
85
|
- lib/helix/uploadable.rb
|
86
86
|
- lib/helix/statistics.rb
|
87
|
+
- lib/helix/document.rb
|
87
88
|
- lib/helix/video_playlist.rb
|
88
89
|
- lib/helix/media.rb
|
89
90
|
- lib/helix/video.rb
|
@@ -94,6 +95,7 @@ files:
|
|
94
95
|
- lib/helix/track.rb
|
95
96
|
- lib/helix/exceptions.rb
|
96
97
|
- lib/helix/config.rb
|
98
|
+
- spec/document_spec.rb
|
97
99
|
- spec/audio_playlist_spec.rb
|
98
100
|
- spec/library_spec.rb
|
99
101
|
- spec/spec_helper.rb
|