audiobank-client 0.0.2 → 0.5
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.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/audiobank-client.gemspec +2 -0
- data/bin/audiobank +1 -6
- data/lib/audiobank-client.rb +6 -4
- data/lib/audiobank/account.rb +3 -1
- data/lib/audiobank/client/cli.rb +91 -0
- data/lib/audiobank/client/local_file.rb +95 -0
- data/lib/audiobank/client/version.rb +1 -1
- data/lib/audiobank/document.rb +44 -5
- data/lib/audiobank/documents.rb +7 -6
- data/spec/audiobank/documents_spec.rb +7 -12
- data/spec/lib/audiobank/client/local_file_spec.rb +21 -0
- metadata +191 -178
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 4edaf36749c75f1e945aff673c5dc69019f8d083
|
4
|
+
data.tar.gz: 5484f94791aa122859e06b433ec6d7b42d60026d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 999d9a05db57f01705c58c37e0580285c6a7fad59eff3afdeb89373041923fba636bc5a55a2cb1aa2449823352a0b1a48ddfdcd37676faffedabb0af4c3e4988
|
7
|
+
data.tar.gz: 93bbc11d30b2ded6b545f7dda6efaf93f1b125a021afaf328d99f6506cf0b725ac96be726e4d274199c8ac54fee4f3e379bd87e74034d79cd7e6bad069d110a5
|
data/.gitignore
CHANGED
data/audiobank-client.gemspec
CHANGED
@@ -22,6 +22,8 @@ Gem::Specification.new do |gem|
|
|
22
22
|
gem.add_runtime_dependency "json"
|
23
23
|
gem.add_runtime_dependency "virtus"
|
24
24
|
gem.add_runtime_dependency "null_logger"
|
25
|
+
gem.add_runtime_dependency "trollop"
|
26
|
+
gem.add_runtime_dependency "progressbar"
|
25
27
|
|
26
28
|
gem.add_development_dependency "rake"
|
27
29
|
gem.add_development_dependency "simplecov"
|
data/bin/audiobank
CHANGED
data/lib/audiobank-client.rb
CHANGED
@@ -2,10 +2,10 @@ require "audiobank/client/version"
|
|
2
2
|
|
3
3
|
require 'logger'
|
4
4
|
require 'json'
|
5
|
-
|
6
|
-
require
|
7
|
-
|
8
|
-
require
|
5
|
+
require 'virtus'
|
6
|
+
require 'null_logger'
|
7
|
+
require 'trollop'
|
8
|
+
require 'progressbar'
|
9
9
|
|
10
10
|
begin
|
11
11
|
require "active_support/core_ext/module/attribute_accessors"
|
@@ -33,3 +33,5 @@ end
|
|
33
33
|
require "audiobank/document"
|
34
34
|
require "audiobank/documents"
|
35
35
|
require "audiobank/account"
|
36
|
+
require "audiobank/client/local_file"
|
37
|
+
require "audiobank/client/cli"
|
data/lib/audiobank/account.rb
CHANGED
@@ -35,7 +35,9 @@ class Audiobank::Account
|
|
35
35
|
def document(id)
|
36
36
|
Audiobank::Client.logger.info "Request document information : #{id}"
|
37
37
|
get "/documents/#{id}.json" do |response|
|
38
|
-
Audiobank::Document.new(response)
|
38
|
+
Audiobank::Document.new(response).tap do |document|
|
39
|
+
document.account = self
|
40
|
+
end if response.code == 200
|
39
41
|
end
|
40
42
|
end
|
41
43
|
|
@@ -0,0 +1,91 @@
|
|
1
|
+
module Audiobank::Client
|
2
|
+
class CLI
|
3
|
+
|
4
|
+
attr_accessor :arguments
|
5
|
+
|
6
|
+
def initialize(arguments = [])
|
7
|
+
@arguments = arguments
|
8
|
+
end
|
9
|
+
|
10
|
+
attr_accessor :output
|
11
|
+
def output
|
12
|
+
@output ||= $stdout
|
13
|
+
end
|
14
|
+
|
15
|
+
def parser
|
16
|
+
Trollop::Parser.new.tap do |parser|
|
17
|
+
parser.version "AudioBank client v#{Audiobank::Client::VERSION}"
|
18
|
+
parser.banner <<-EOS
|
19
|
+
Manage your AudioBank documents
|
20
|
+
|
21
|
+
Usage:
|
22
|
+
audiobank [options] <command>
|
23
|
+
|
24
|
+
where <command> are:
|
25
|
+
|
26
|
+
import <filenames>+ : to upload or import given files in AudioBank documents
|
27
|
+
|
28
|
+
where [options] are:
|
29
|
+
EOS
|
30
|
+
|
31
|
+
parser.opt :debug, "Enable log messages"
|
32
|
+
parser.opt :token, "Audiobank API token", :type => String
|
33
|
+
parser.opt :base_uri, "Change default Audiobank url", :type => String
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def debug?
|
38
|
+
options[:debug]
|
39
|
+
end
|
40
|
+
|
41
|
+
def init
|
42
|
+
if debug?
|
43
|
+
Audiobank::Client.logger = Logger.new($stderr)
|
44
|
+
end
|
45
|
+
|
46
|
+
account
|
47
|
+
end
|
48
|
+
|
49
|
+
def command
|
50
|
+
arguments.shift
|
51
|
+
end
|
52
|
+
|
53
|
+
def run
|
54
|
+
Trollop::with_standard_exception_handling(parser) do
|
55
|
+
init
|
56
|
+
end
|
57
|
+
|
58
|
+
send command
|
59
|
+
end
|
60
|
+
|
61
|
+
def options
|
62
|
+
@options ||= parser.parse(arguments).inject({}) do |map, pair|
|
63
|
+
key, value = pair
|
64
|
+
unless key == :help or key.to_s.match(/_given$/) or value.blank?
|
65
|
+
map[key] = value
|
66
|
+
end
|
67
|
+
map
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def account
|
72
|
+
Audiobank::Account.base_uri options[:base_uri] if options[:base_uri]
|
73
|
+
|
74
|
+
if options[:token]
|
75
|
+
Audiobank::Account.new(options[:token])
|
76
|
+
else
|
77
|
+
raise "No information to connect Audiobank account"
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
def import
|
82
|
+
arguments.each do |filename|
|
83
|
+
unless filename =~ /.audiobank$/
|
84
|
+
output.puts "Import #{filename}"
|
85
|
+
Audiobank::Client::LocalFile.new(filename).import(account)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
require 'tempfile'
|
2
|
+
require 'tmpdir'
|
3
|
+
|
4
|
+
module Audiobank::Client
|
5
|
+
class LocalFile
|
6
|
+
|
7
|
+
attr_reader :filename, :uploaded_file
|
8
|
+
|
9
|
+
def initialize(filename)
|
10
|
+
@filename = @uploaded_file = filename
|
11
|
+
end
|
12
|
+
|
13
|
+
def filename_without_extension
|
14
|
+
@filename_without_extension ||= filename.gsub(/\.#{extension}$/, "")
|
15
|
+
end
|
16
|
+
|
17
|
+
def basename
|
18
|
+
@basename ||= File.basename(filename)
|
19
|
+
end
|
20
|
+
|
21
|
+
def extension
|
22
|
+
@extension ||= File.extname(filename)[1..-1]
|
23
|
+
end
|
24
|
+
|
25
|
+
def document_id
|
26
|
+
if basename =~ /^([0-9]+)-/
|
27
|
+
$1.to_i
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def file_uuid
|
32
|
+
document_id or Digest::SHA256.hexdigest(filename)
|
33
|
+
end
|
34
|
+
|
35
|
+
def default_title
|
36
|
+
File.basename(filename, File.extname(filename))
|
37
|
+
end
|
38
|
+
|
39
|
+
def flac_file
|
40
|
+
# "#{filename_without_extension}.flac"
|
41
|
+
# (@flac_tempfile ||= Tempfile.new(['audiobank', '.flac'])).path
|
42
|
+
"/tmp/#{file_uuid}.flac"
|
43
|
+
end
|
44
|
+
|
45
|
+
def convert
|
46
|
+
if extension == "wav"
|
47
|
+
# unless FileUtils.uptodate? flac_file, filename
|
48
|
+
Audiobank::Client.logger.info "Create flac version"
|
49
|
+
system "flac -f -o #{flac_file} '#{filename}'" or raise "Can't convert file to wav"
|
50
|
+
# end
|
51
|
+
Audiobank::Client.logger.info "Use flac version"
|
52
|
+
@uploaded_file = flac_file
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def import_options
|
57
|
+
{ :resume => true, :debug => true, :retries => 10, :progress => true }
|
58
|
+
end
|
59
|
+
|
60
|
+
def import(account)
|
61
|
+
unless FileUtils.uptodate? uploaded_file, [report_file]
|
62
|
+
Audiobank::Client.logger.info "File already imported"
|
63
|
+
return
|
64
|
+
end
|
65
|
+
|
66
|
+
convert
|
67
|
+
|
68
|
+
imported = false
|
69
|
+
if document_id
|
70
|
+
Audiobank::Client.logger.debug "Found document id : #{document_id}"
|
71
|
+
document = account.document(document_id)
|
72
|
+
if document
|
73
|
+
imported = document.import uploaded_file, import_options
|
74
|
+
else
|
75
|
+
raise "Document #{document_id} not found"
|
76
|
+
end
|
77
|
+
else
|
78
|
+
imported = account.documents.import uploaded_file, { :title => default_title }, import_options
|
79
|
+
end
|
80
|
+
|
81
|
+
if imported
|
82
|
+
Audiobank::Client.logger.debug "Create report #{report_file}"
|
83
|
+
system "touch '#{report_file}'"
|
84
|
+
# FileUtils.touch report_file
|
85
|
+
else
|
86
|
+
Audiobank::Client.logger.info "Failed to import #{filename}"
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def report_file
|
91
|
+
"#{filename}.audiobank"
|
92
|
+
end
|
93
|
+
|
94
|
+
end
|
95
|
+
end
|
data/lib/audiobank/document.rb
CHANGED
@@ -24,18 +24,57 @@ class Audiobank::Document
|
|
24
24
|
@upload_uri ||= URI.parse(upload)
|
25
25
|
end
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
27
|
+
class NullProgressBar
|
28
|
+
|
29
|
+
def inc(size); end
|
30
|
+
def set(size); end
|
31
|
+
def finish; end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
def upload!(file, options = {})
|
36
|
+
Audiobank::Client.logger.debug "Upload #{file} in document #{id} (#{upload_uri})"
|
37
|
+
|
38
|
+
retry_count = (options[:retries] or 0)
|
39
|
+
|
40
|
+
progress_bar = (options[:progress] ? ProgressBar.new("Document #{id}", File.size(file)) : NullProgressBar.new)
|
41
|
+
|
42
|
+
begin
|
43
|
+
Net::FTP.open(upload_uri.host) do |ftp|
|
44
|
+
ftp.debug_mode = options[:debug]
|
45
|
+
ftp.login
|
46
|
+
ftp.chdir upload_uri.path
|
47
|
+
ftp.resume = options[:resume]
|
48
|
+
ftp.passive = true
|
49
|
+
ftp.putbinaryfile file, id.to_s do |buf|
|
50
|
+
progress_bar.inc buf.size
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
progress_bar.finish
|
55
|
+
rescue => e
|
56
|
+
Audiobank::Client.logger.debug "Upload #{file} failed #{e}"
|
57
|
+
if retry_count > 0
|
58
|
+
retry_count -= 1
|
59
|
+
progress_bar.set 0
|
60
|
+
Audiobank::Client.logger.debug "Retry in 30 seconds"
|
61
|
+
sleep 30
|
62
|
+
retry
|
63
|
+
else
|
64
|
+
return nil
|
65
|
+
end
|
32
66
|
end
|
33
67
|
|
34
68
|
self
|
35
69
|
end
|
36
70
|
|
37
71
|
def confirm
|
72
|
+
Audiobank::Client.logger.debug "Confirm upload of document #{id}"
|
38
73
|
account.post "/documents/#{id}/upload/confirm.json"
|
39
74
|
end
|
40
75
|
|
76
|
+
def import(file, options = {})
|
77
|
+
upload!(file, options).try(:confirm)
|
78
|
+
end
|
79
|
+
|
41
80
|
end
|
data/lib/audiobank/documents.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
class Audiobank::Documents
|
2
|
-
|
2
|
+
|
3
3
|
attr_accessor :account
|
4
4
|
|
5
5
|
def initialize(account)
|
@@ -13,17 +13,18 @@ class Audiobank::Documents
|
|
13
13
|
post "/documents.json", :document => attributes do |response|
|
14
14
|
Audiobank::Document.new(response).tap do |document|
|
15
15
|
document.account = account
|
16
|
+
Audiobank::Client.logger.debug "Created document has id #{document.id}"
|
16
17
|
end
|
17
18
|
end
|
18
19
|
end
|
19
20
|
|
20
|
-
def import(file, attributes = {})
|
21
|
-
attributes = {
|
22
|
-
:title => File.basename(file, File.extname(file)),
|
23
|
-
:description => "Uploaded at #{Time.now}"
|
21
|
+
def import(file, attributes = {}, options = {})
|
22
|
+
attributes = {
|
23
|
+
:title => File.basename(file, File.extname(file)),
|
24
|
+
:description => "Uploaded at #{Time.now}"
|
24
25
|
}.merge(attributes)
|
25
26
|
|
26
|
-
create(attributes).
|
27
|
+
create(attributes).import(file)
|
27
28
|
end
|
28
29
|
|
29
30
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Audiobank::Documents do
|
4
|
-
|
4
|
+
|
5
5
|
let(:account) { Audiobank::Account.new "secret" }
|
6
6
|
|
7
7
|
subject { Audiobank::Documents.new account }
|
@@ -9,7 +9,7 @@ describe Audiobank::Documents do
|
|
9
9
|
before(:each) do
|
10
10
|
FakeWeb.allow_net_connect = false
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
describe "#create" do
|
14
14
|
|
15
15
|
it "should post to /documents.json the document attributes" do
|
@@ -36,21 +36,16 @@ describe Audiobank::Documents do
|
|
36
36
|
|
37
37
|
before do
|
38
38
|
subject.stub :create => document
|
39
|
-
document.stub :
|
39
|
+
document.stub :import => true
|
40
40
|
end
|
41
|
-
|
41
|
+
|
42
42
|
it "should create a Document with specified attributes" do
|
43
43
|
subject.should_receive(:create).with(hash_including(:title => "dummy")).and_return(document)
|
44
44
|
subject.import file, :title => "dummy"
|
45
45
|
end
|
46
46
|
|
47
|
-
it "should
|
48
|
-
document.should_receive(:
|
49
|
-
subject.import file
|
50
|
-
end
|
51
|
-
|
52
|
-
it "should confirm the upload" do
|
53
|
-
document.should_receive(:confirm)
|
47
|
+
it "should import the document" do
|
48
|
+
document.should_receive(:import)
|
54
49
|
subject.import file
|
55
50
|
end
|
56
51
|
|
@@ -65,5 +60,5 @@ describe Audiobank::Documents do
|
|
65
60
|
end
|
66
61
|
|
67
62
|
end
|
68
|
-
|
63
|
+
|
69
64
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Audiobank::Client::LocalFile do
|
4
|
+
|
5
|
+
def local_file(filename)
|
6
|
+
Audiobank::Client::LocalFile.new(filename)
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "document_id" do
|
10
|
+
|
11
|
+
it "should be the number which starts filename" do
|
12
|
+
local_file("123-dummy.wav").document_id.should == 123
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should be nil when filename doesn't start with a number" do
|
16
|
+
local_file("dummy.wav").document_id.should be_nil
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
metadata
CHANGED
@@ -1,203 +1,222 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: audiobank-client
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 2
|
10
|
-
version: 0.0.2
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '0.5'
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- Alban Peignier
|
14
8
|
- Florent Peyraud
|
15
9
|
autorequire:
|
16
10
|
bindir: bin
|
17
11
|
cert_chain: []
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
- !ruby/object:Gem::Dependency
|
22
|
-
prerelease: false
|
23
|
-
type: :runtime
|
24
|
-
version_requirements: &id001 !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ">="
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 3
|
30
|
-
segments:
|
31
|
-
- 0
|
32
|
-
version: "0"
|
33
|
-
requirement: *id001
|
12
|
+
date: 2016-07-29 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
34
15
|
name: httparty
|
35
|
-
|
36
|
-
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '0'
|
37
21
|
type: :runtime
|
38
|
-
version_requirements: &id002 !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
|
-
requirements:
|
41
|
-
- - <
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
hash: 11
|
44
|
-
segments:
|
45
|
-
- 4
|
46
|
-
version: "4"
|
47
|
-
requirement: *id002
|
48
|
-
name: activesupport
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
22
|
prerelease: false
|
51
|
-
|
52
|
-
|
53
|
-
none: false
|
54
|
-
requirements:
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
55
25
|
- - ">="
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
- !ruby/object:Gem::
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: activesupport
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "<"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '4'
|
35
|
+
type: :runtime
|
64
36
|
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "<"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '4'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: json
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
65
49
|
type: :runtime
|
66
|
-
|
67
|
-
|
68
|
-
requirements:
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
69
53
|
- - ">="
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
|
72
|
-
|
73
|
-
- 0
|
74
|
-
version: "0"
|
75
|
-
requirement: *id004
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
76
57
|
name: virtus
|
77
|
-
|
78
|
-
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
79
63
|
type: :runtime
|
80
|
-
|
81
|
-
|
82
|
-
requirements:
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
83
67
|
- - ">="
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
|
86
|
-
|
87
|
-
- 0
|
88
|
-
version: "0"
|
89
|
-
requirement: *id005
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
90
71
|
name: null_logger
|
91
|
-
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :runtime
|
92
78
|
prerelease: false
|
93
|
-
|
94
|
-
|
95
|
-
none: false
|
96
|
-
requirements:
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
97
81
|
- - ">="
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
- !ruby/object:Gem::
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: trollop
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
type: :runtime
|
106
92
|
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: progressbar
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
type: :runtime
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: rake
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
107
119
|
type: :development
|
108
|
-
|
109
|
-
|
110
|
-
requirements:
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
111
123
|
- - ">="
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
|
114
|
-
|
115
|
-
- 0
|
116
|
-
version: "0"
|
117
|
-
requirement: *id007
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
118
127
|
name: simplecov
|
119
|
-
|
120
|
-
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
121
133
|
type: :development
|
122
|
-
|
123
|
-
|
124
|
-
requirements:
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
125
137
|
- - ">="
|
126
|
-
- !ruby/object:Gem::Version
|
127
|
-
|
128
|
-
|
129
|
-
- 0
|
130
|
-
version: "0"
|
131
|
-
requirement: *id008
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
140
|
+
- !ruby/object:Gem::Dependency
|
132
141
|
name: rspec
|
133
|
-
|
134
|
-
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ">="
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '0'
|
135
147
|
type: :development
|
136
|
-
|
137
|
-
|
138
|
-
requirements:
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
139
151
|
- - ">="
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
|
142
|
-
|
143
|
-
- 0
|
144
|
-
version: "0"
|
145
|
-
requirement: *id009
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
154
|
+
- !ruby/object:Gem::Dependency
|
146
155
|
name: fakeweb
|
147
|
-
|
148
|
-
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0'
|
149
161
|
type: :development
|
150
|
-
|
151
|
-
|
152
|
-
requirements:
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
153
165
|
- - ">="
|
154
|
-
- !ruby/object:Gem::Version
|
155
|
-
|
156
|
-
|
157
|
-
- 0
|
158
|
-
version: "0"
|
159
|
-
requirement: *id010
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0'
|
168
|
+
- !ruby/object:Gem::Dependency
|
160
169
|
name: guard
|
161
|
-
|
162
|
-
|
170
|
+
requirement: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - ">="
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '0'
|
163
175
|
type: :development
|
164
|
-
|
165
|
-
|
166
|
-
requirements:
|
176
|
+
prerelease: false
|
177
|
+
version_requirements: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
167
179
|
- - ">="
|
168
|
-
- !ruby/object:Gem::Version
|
169
|
-
|
170
|
-
|
171
|
-
- 0
|
172
|
-
version: "0"
|
173
|
-
requirement: *id011
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
182
|
+
- !ruby/object:Gem::Dependency
|
174
183
|
name: guard-rspec
|
175
|
-
|
176
|
-
|
184
|
+
requirement: !ruby/object:Gem::Requirement
|
185
|
+
requirements:
|
186
|
+
- - ">="
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: '0'
|
177
189
|
type: :development
|
178
|
-
|
179
|
-
|
180
|
-
requirements:
|
190
|
+
prerelease: false
|
191
|
+
version_requirements: !ruby/object:Gem::Requirement
|
192
|
+
requirements:
|
181
193
|
- - ">="
|
182
|
-
- !ruby/object:Gem::Version
|
183
|
-
|
184
|
-
|
185
|
-
- 0
|
186
|
-
version: "0"
|
187
|
-
requirement: *id012
|
194
|
+
- !ruby/object:Gem::Version
|
195
|
+
version: '0'
|
196
|
+
- !ruby/object:Gem::Dependency
|
188
197
|
name: guard-bundler
|
198
|
+
requirement: !ruby/object:Gem::Requirement
|
199
|
+
requirements:
|
200
|
+
- - ">="
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: '0'
|
203
|
+
type: :development
|
204
|
+
prerelease: false
|
205
|
+
version_requirements: !ruby/object:Gem::Requirement
|
206
|
+
requirements:
|
207
|
+
- - ">="
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: '0'
|
189
210
|
description: Manage AudioBank documents from command-line or Ruby
|
190
|
-
email:
|
211
|
+
email:
|
191
212
|
- alban@tryphon.eu
|
192
213
|
- florent@tryphon.eu
|
193
|
-
executables:
|
214
|
+
executables:
|
194
215
|
- audiobank
|
195
216
|
extensions: []
|
196
|
-
|
197
217
|
extra_rdoc_files: []
|
198
|
-
|
199
|
-
|
200
|
-
- .gitignore
|
218
|
+
files:
|
219
|
+
- ".gitignore"
|
201
220
|
- COPYING
|
202
221
|
- COPYRIGHT
|
203
222
|
- Gemfile
|
@@ -208,6 +227,8 @@ files:
|
|
208
227
|
- bin/audiobank
|
209
228
|
- lib/audiobank-client.rb
|
210
229
|
- lib/audiobank/account.rb
|
230
|
+
- lib/audiobank/client/cli.rb
|
231
|
+
- lib/audiobank/client/local_file.rb
|
211
232
|
- lib/audiobank/client/version.rb
|
212
233
|
- lib/audiobank/document.rb
|
213
234
|
- lib/audiobank/documents.rb
|
@@ -215,47 +236,39 @@ files:
|
|
215
236
|
- spec/audiobank/account_spec.rb
|
216
237
|
- spec/audiobank/document_spec.rb
|
217
238
|
- spec/audiobank/documents_spec.rb
|
239
|
+
- spec/lib/audiobank/client/local_file_spec.rb
|
218
240
|
- spec/spec_helper.rb
|
219
241
|
- spec/support/fakeweb.rb
|
220
242
|
- spec/support/log.rb
|
221
243
|
- tasks/rspec.rake
|
222
244
|
homepage: http://projects.tryphon.eu/projects/audiobank-client
|
223
245
|
licenses: []
|
224
|
-
|
246
|
+
metadata: {}
|
225
247
|
post_install_message:
|
226
248
|
rdoc_options: []
|
227
|
-
|
228
|
-
require_paths:
|
249
|
+
require_paths:
|
229
250
|
- lib
|
230
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
231
|
-
|
232
|
-
requirements:
|
251
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
252
|
+
requirements:
|
233
253
|
- - ">="
|
234
|
-
- !ruby/object:Gem::Version
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
version: "0"
|
239
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
240
|
-
none: false
|
241
|
-
requirements:
|
254
|
+
- !ruby/object:Gem::Version
|
255
|
+
version: '0'
|
256
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
257
|
+
requirements:
|
242
258
|
- - ">="
|
243
|
-
- !ruby/object:Gem::Version
|
244
|
-
|
245
|
-
segments:
|
246
|
-
- 0
|
247
|
-
version: "0"
|
259
|
+
- !ruby/object:Gem::Version
|
260
|
+
version: '0'
|
248
261
|
requirements: []
|
249
|
-
|
250
262
|
rubyforge_project:
|
251
|
-
rubygems_version:
|
263
|
+
rubygems_version: 2.4.5.1
|
252
264
|
signing_key:
|
253
|
-
specification_version:
|
265
|
+
specification_version: 4
|
254
266
|
summary: AudioBank API client
|
255
|
-
test_files:
|
267
|
+
test_files:
|
256
268
|
- spec/audiobank/account_spec.rb
|
257
269
|
- spec/audiobank/document_spec.rb
|
258
270
|
- spec/audiobank/documents_spec.rb
|
271
|
+
- spec/lib/audiobank/client/local_file_spec.rb
|
259
272
|
- spec/spec_helper.rb
|
260
273
|
- spec/support/fakeweb.rb
|
261
274
|
- spec/support/log.rb
|