miniphonic 0.1.0

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.
Files changed (44) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +23 -0
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +34 -0
  5. data/LICENSE +20 -0
  6. data/README.md +145 -0
  7. data/Rakefile +19 -0
  8. data/lib/miniphonic/api_object.rb +96 -0
  9. data/lib/miniphonic/helpers.rb +51 -0
  10. data/lib/miniphonic/info.rb +68 -0
  11. data/lib/miniphonic/preset.rb +17 -0
  12. data/lib/miniphonic/preset_attributes.rb +53 -0
  13. data/lib/miniphonic/production.rb +33 -0
  14. data/lib/miniphonic/production_attributes.rb +66 -0
  15. data/lib/miniphonic/response.rb +5 -0
  16. data/lib/miniphonic/version.rb +3 -0
  17. data/lib/miniphonic.rb +40 -0
  18. data/miniphonic.gemspec +29 -0
  19. data/test/spec/api_object_spec.rb +164 -0
  20. data/test/spec/cassettes/info/algorithms.yml +170 -0
  21. data/test/spec/cassettes/info/info.yml +740 -0
  22. data/test/spec/cassettes/info/output_files.yml +343 -0
  23. data/test/spec/cassettes/info/service_types.yml +263 -0
  24. data/test/spec/cassettes/info/services.yml +125 -0
  25. data/test/spec/cassettes/info/status_codes.yml +70 -0
  26. data/test/spec/cassettes/info/user_info.yml +63 -0
  27. data/test/spec/cassettes/preset/all.yml +795 -0
  28. data/test/spec/cassettes/preset/create.yml +97 -0
  29. data/test/spec/cassettes/preset/delete.yml +142 -0
  30. data/test/spec/cassettes/preset/upload_cover.yml +484 -0
  31. data/test/spec/cassettes/production/all.yml +6764 -0
  32. data/test/spec/cassettes/production/create.yml +118 -0
  33. data/test/spec/cassettes/production/delete.yml +163 -0
  34. data/test/spec/cassettes/production/start.yml +164 -0
  35. data/test/spec/cassettes/production/upload_audio.yml +20047 -0
  36. data/test/spec/cassettes/production/upload_audio_from_service.yml +233 -0
  37. data/test/spec/cassettes/production/upload_cover.yml +526 -0
  38. data/test/spec/data/test.jpg +0 -0
  39. data/test/spec/data/test.m4a +0 -0
  40. data/test/spec/helper.rb +32 -0
  41. data/test/spec/info_spec.rb +137 -0
  42. data/test/spec/preset_spec.rb +115 -0
  43. data/test/spec/production_spec.rb +181 -0
  44. metadata +223 -0
@@ -0,0 +1,137 @@
1
+ module Miniphonic
2
+
3
+ describe Miniphonic do
4
+
5
+ describe 'GET info' do
6
+
7
+ before do
8
+ require 'vcr'
9
+
10
+ VCR.configure do |c|
11
+ c.cassette_library_dir = 'test/spec/cassettes/info'
12
+ c.hook_into :faraday
13
+ end
14
+
15
+ end
16
+
17
+ describe '.services' do
18
+
19
+ before do
20
+ VCR.insert_cassette 'services'
21
+ end
22
+
23
+ after do
24
+ VCR.eject_cassette
25
+ end
26
+
27
+ it 'must return an Array of Hashes' do
28
+ Miniphonic.services.must_be_kind_of(Array)
29
+ Miniphonic.services.each do |item|
30
+ item.must_be_kind_of(Hash)
31
+ end
32
+ end
33
+
34
+ end
35
+
36
+ describe '.service_types' do
37
+
38
+ before do
39
+ VCR.insert_cassette 'service_types'
40
+ end
41
+
42
+ after do
43
+ VCR.eject_cassette
44
+ end
45
+
46
+ it 'must return a hash' do
47
+ Miniphonic.service_types.must_be_kind_of(Hash)
48
+ end
49
+
50
+ end
51
+
52
+ describe '.algorithms' do
53
+
54
+ before do
55
+ VCR.insert_cassette 'algorithms'
56
+ end
57
+
58
+ after do
59
+ VCR.eject_cassette
60
+ end
61
+
62
+ it 'must return a hash' do
63
+ Miniphonic.algorithms.must_be_kind_of(Hash)
64
+ end
65
+
66
+ end
67
+
68
+ describe '.output_files' do
69
+
70
+ before do
71
+ VCR.insert_cassette 'output_files'
72
+ end
73
+
74
+ after do
75
+ VCR.eject_cassette
76
+ end
77
+
78
+ it 'must return a hash' do
79
+ Miniphonic.output_files.must_be_kind_of(Hash)
80
+ end
81
+
82
+ end
83
+
84
+ describe '.status_codes' do
85
+
86
+ before do
87
+ VCR.insert_cassette 'status_codes'
88
+ end
89
+
90
+ after do
91
+ VCR.eject_cassette
92
+ end
93
+
94
+ it 'must return a hash' do
95
+ Miniphonic.status_codes.must_be_kind_of(Hash)
96
+ end
97
+
98
+ end
99
+
100
+ describe '.user_info' do
101
+
102
+ before do
103
+ VCR.insert_cassette 'user_info'
104
+ end
105
+
106
+ after do
107
+ VCR.eject_cassette
108
+ end
109
+
110
+ it 'must return a hash' do
111
+ Miniphonic.user_info.must_be_kind_of(Hash)
112
+ end
113
+
114
+ end
115
+
116
+ describe '.info' do
117
+
118
+ before do
119
+ VCR.insert_cassette 'info'
120
+ end
121
+
122
+ after do
123
+ VCR.eject_cassette
124
+ end
125
+
126
+
127
+ it 'must return a hash' do
128
+ Miniphonic.info.must_be_kind_of(Hash)
129
+ end
130
+
131
+ end
132
+
133
+ end
134
+
135
+ end
136
+
137
+ end
@@ -0,0 +1,115 @@
1
+ require_relative 'helper'
2
+
3
+ module Miniphonic
4
+
5
+ describe Preset do
6
+
7
+ before do
8
+ require 'vcr'
9
+
10
+ VCR.configure do |c|
11
+ c.cassette_library_dir = 'test/spec/cassettes/preset'
12
+ c.hook_into :faraday
13
+ end
14
+
15
+ end
16
+
17
+ describe '.all' do
18
+
19
+ before do
20
+ VCR.insert_cassette 'all'
21
+ end
22
+
23
+ after do
24
+ VCR.eject_cassette
25
+ end
26
+
27
+ it 'must return an array of presets' do
28
+ Preset.all.each do |item|
29
+ item.must_be_instance_of(Preset)
30
+ end
31
+ end
32
+
33
+ end
34
+
35
+ describe '#endpoint' do
36
+
37
+ it 'must define the right endpoint' do
38
+ Preset.new.endpoint.must_equal("preset")
39
+ end
40
+
41
+ end
42
+
43
+ describe '#create' do
44
+
45
+ before do
46
+ VCR.insert_cassette 'create', :match_requests_on => [:body, :uri]
47
+ @named_preset = Miniphonic::Preset.new
48
+ @named_preset.name = "Test Preset"
49
+ end
50
+
51
+ after do
52
+ VCR.eject_cassette
53
+ end
54
+
55
+ it "must raise an error if no name is provided" do
56
+ lambda do
57
+ Preset.new.create
58
+ end.must_raise(PresetNameError)
59
+ end
60
+
61
+ it "must create a new preset on the server" do
62
+ reponse = @named_preset.create
63
+ reponse.success?.must_equal(true)
64
+ end
65
+
66
+ it "must set self.uuid" do
67
+ @named_preset.create
68
+ @named_preset.uuid.wont_equal(nil)
69
+ end
70
+
71
+ end
72
+
73
+ describe '#delete' do
74
+
75
+ before do
76
+ VCR.insert_cassette 'delete'
77
+ @preset = Preset.new
78
+ @preset.name = "To be deleted"
79
+ @preset.create
80
+ end
81
+
82
+ after do
83
+ VCR.eject_cassette
84
+ end
85
+
86
+ it 'must delete the preset' do
87
+ response = @preset.delete
88
+ response.success?.must_equal(true)
89
+ end
90
+
91
+ end
92
+
93
+ describe '#upload_cover' do
94
+
95
+ before do
96
+ VCR.insert_cassette 'upload_cover', :match_requests_on => [:uri]
97
+ @preset = Miniphonic::Preset.new
98
+ @preset.name = "Test Upload Cover Preset"
99
+ @preset.create
100
+ end
101
+
102
+ after do
103
+ VCR.eject_cassette
104
+ end
105
+
106
+ it 'must upload a local image file' do
107
+ reponse = @preset.upload_cover("test/spec/data/test.jpg")
108
+ reponse.success?.must_equal(true)
109
+ end
110
+
111
+ end
112
+
113
+ end
114
+
115
+ end
@@ -0,0 +1,181 @@
1
+ require_relative 'helper'
2
+
3
+ module Miniphonic
4
+
5
+ describe Production do
6
+
7
+ describe '.all' do
8
+
9
+ before do
10
+ VCR.insert_cassette 'all'
11
+ end
12
+
13
+ after do
14
+ VCR.eject_cassette
15
+ end
16
+
17
+ it 'must return an array of productions' do
18
+ Production.all.each do |item|
19
+ item.must_be_instance_of(Production)
20
+ end
21
+ end
22
+
23
+ end
24
+
25
+ describe '#endpoint' do
26
+
27
+ it 'must define the right endpoint' do
28
+ Production.new.endpoint.must_equal("production")
29
+ end
30
+
31
+ end
32
+
33
+ before do
34
+ require 'vcr'
35
+
36
+ VCR.configure do |c|
37
+ c.cassette_library_dir = 'test/spec/cassettes/production'
38
+ c.hook_into :faraday
39
+ end
40
+
41
+ end
42
+
43
+ describe '#create' do
44
+
45
+ before do
46
+ VCR.insert_cassette 'create', :match_requests_on => [:body, :uri]
47
+ @production = Miniphonic::Production.new
48
+ end
49
+
50
+ after do
51
+ VCR.eject_cassette
52
+ end
53
+
54
+ it "must create a new production on the server" do
55
+ reponse = @production.create
56
+ reponse.success?.must_equal(true)
57
+ end
58
+
59
+ it "must set self.uuid" do
60
+ @production.create
61
+ @production.uuid.wont_equal(nil)
62
+ end
63
+
64
+ end
65
+
66
+ describe '#delete' do
67
+
68
+ before do
69
+ VCR.insert_cassette 'delete'
70
+ @production = Production.new
71
+ @production.create
72
+ end
73
+
74
+ after do
75
+ VCR.eject_cassette
76
+ end
77
+
78
+ it 'must delete the production' do
79
+ response = @production.delete
80
+ response.success?.must_equal(true)
81
+ end
82
+
83
+ end
84
+
85
+ describe '#upload_audio_from_service' do
86
+
87
+ before do
88
+ VCR.insert_cassette 'upload_audio_from_service', :match_requests_on => [:body, :uri]
89
+ @production = Production.new
90
+ @production.create
91
+ @test_file = "test.m4a"
92
+ @service_uuid = "h8DesucEK6mepmyxtW83MY"
93
+ end
94
+
95
+ after do
96
+ VCR.eject_cassette
97
+ end
98
+
99
+ it 'must add an input file from an external service' do
100
+ response = @production.upload_audio_from_service(@test_file, @service_uuid)
101
+ response.success?.must_equal(true)
102
+ end
103
+ end
104
+
105
+ describe '#upload_audio' do
106
+
107
+ before do
108
+ VCR.insert_cassette 'upload_audio', :match_requests_on => [:uri]
109
+ @production = Miniphonic::Production.new
110
+ @production.create
111
+ end
112
+
113
+ after do
114
+ VCR.eject_cassette
115
+ end
116
+
117
+ it 'must upload a local audio file' do
118
+ reponse = @production.upload_audio("test/spec/data/test.m4a")
119
+ reponse.success?.must_equal(true)
120
+ end
121
+
122
+ end
123
+
124
+ describe '#upload_cover' do
125
+
126
+ before do
127
+ VCR.insert_cassette 'upload_cover', :match_requests_on => [:uri]
128
+ @production = Miniphonic::Production.new
129
+ @production.create
130
+ end
131
+
132
+ after do
133
+ VCR.eject_cassette
134
+ end
135
+
136
+ it 'must upload a local image file' do
137
+ reponse = @production.upload_cover("test/spec/data/test.jpg")
138
+ reponse.success?.must_equal(true)
139
+ end
140
+
141
+ end
142
+
143
+ describe '#start' do
144
+
145
+ before do
146
+ VCR.insert_cassette 'start', :match_requests_on => [:uri, :body]
147
+ end
148
+
149
+ after do
150
+ VCR.eject_cassette
151
+ end
152
+
153
+ it 'must run the start command' do
154
+ @production = Production.new
155
+ @production.expects(:command).with(:start)
156
+ @production.start
157
+ end
158
+
159
+ it 'must raise an error if not enough data is provided' do
160
+ @production = Production.new
161
+ @production.create
162
+ lambda do
163
+ @production.start
164
+ end.must_raise(ServerSideError)
165
+ end
166
+
167
+ end
168
+
169
+ describe '#stop' do
170
+
171
+ it 'must run the stop command' do
172
+ @production = Production.new
173
+ @production.expects(:command).with(:stop)
174
+ @production.stop
175
+ end
176
+
177
+ end
178
+
179
+ end
180
+
181
+ end
metadata ADDED
@@ -0,0 +1,223 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: miniphonic
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - sirmarcel
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-10-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: mocha
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: vcr
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: multi_json
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: faraday
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: faraday_middleware
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: mime-types
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ description: Miniphonic is a wrapper for the Auphonic.com API
126
+ email:
127
+ - me@lumenlog.com
128
+ executables: []
129
+ extensions: []
130
+ extra_rdoc_files: []
131
+ files:
132
+ - .gitignore
133
+ - Gemfile
134
+ - Gemfile.lock
135
+ - LICENSE
136
+ - README.md
137
+ - Rakefile
138
+ - lib/miniphonic.rb
139
+ - lib/miniphonic/api_object.rb
140
+ - lib/miniphonic/helpers.rb
141
+ - lib/miniphonic/info.rb
142
+ - lib/miniphonic/preset.rb
143
+ - lib/miniphonic/preset_attributes.rb
144
+ - lib/miniphonic/production.rb
145
+ - lib/miniphonic/production_attributes.rb
146
+ - lib/miniphonic/response.rb
147
+ - lib/miniphonic/version.rb
148
+ - miniphonic.gemspec
149
+ - test/spec/api_object_spec.rb
150
+ - test/spec/cassettes/info/algorithms.yml
151
+ - test/spec/cassettes/info/info.yml
152
+ - test/spec/cassettes/info/output_files.yml
153
+ - test/spec/cassettes/info/service_types.yml
154
+ - test/spec/cassettes/info/services.yml
155
+ - test/spec/cassettes/info/status_codes.yml
156
+ - test/spec/cassettes/info/user_info.yml
157
+ - test/spec/cassettes/preset/all.yml
158
+ - test/spec/cassettes/preset/create.yml
159
+ - test/spec/cassettes/preset/delete.yml
160
+ - test/spec/cassettes/preset/upload_cover.yml
161
+ - test/spec/cassettes/production/all.yml
162
+ - test/spec/cassettes/production/create.yml
163
+ - test/spec/cassettes/production/delete.yml
164
+ - test/spec/cassettes/production/start.yml
165
+ - test/spec/cassettes/production/upload_audio.yml
166
+ - test/spec/cassettes/production/upload_audio_from_service.yml
167
+ - test/spec/cassettes/production/upload_cover.yml
168
+ - test/spec/data/test.jpg
169
+ - test/spec/data/test.m4a
170
+ - test/spec/helper.rb
171
+ - test/spec/info_spec.rb
172
+ - test/spec/preset_spec.rb
173
+ - test/spec/production_spec.rb
174
+ homepage: https://github.com/sirmarcel/miniphonic
175
+ licenses:
176
+ - MIT
177
+ metadata: {}
178
+ post_install_message:
179
+ rdoc_options: []
180
+ require_paths:
181
+ - lib
182
+ required_ruby_version: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - '>='
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ required_rubygems_version: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - '>='
190
+ - !ruby/object:Gem::Version
191
+ version: '0'
192
+ requirements: []
193
+ rubyforge_project:
194
+ rubygems_version: 2.1.9
195
+ signing_key:
196
+ specification_version: 4
197
+ summary: Wraps the Auphonic API in delicious Ruby, for audio processing bliss.
198
+ test_files:
199
+ - test/spec/api_object_spec.rb
200
+ - test/spec/cassettes/info/algorithms.yml
201
+ - test/spec/cassettes/info/info.yml
202
+ - test/spec/cassettes/info/output_files.yml
203
+ - test/spec/cassettes/info/service_types.yml
204
+ - test/spec/cassettes/info/services.yml
205
+ - test/spec/cassettes/info/status_codes.yml
206
+ - test/spec/cassettes/info/user_info.yml
207
+ - test/spec/cassettes/preset/all.yml
208
+ - test/spec/cassettes/preset/create.yml
209
+ - test/spec/cassettes/preset/delete.yml
210
+ - test/spec/cassettes/preset/upload_cover.yml
211
+ - test/spec/cassettes/production/all.yml
212
+ - test/spec/cassettes/production/create.yml
213
+ - test/spec/cassettes/production/delete.yml
214
+ - test/spec/cassettes/production/start.yml
215
+ - test/spec/cassettes/production/upload_audio.yml
216
+ - test/spec/cassettes/production/upload_audio_from_service.yml
217
+ - test/spec/cassettes/production/upload_cover.yml
218
+ - test/spec/data/test.jpg
219
+ - test/spec/data/test.m4a
220
+ - test/spec/helper.rb
221
+ - test/spec/info_spec.rb
222
+ - test/spec/preset_spec.rb
223
+ - test/spec/production_spec.rb