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 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
@@ -17,3 +17,4 @@ test/version_tmp
17
17
  tmp
18
18
  *~
19
19
  log/*
20
+ /.ruby-version
@@ -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
@@ -2,9 +2,4 @@
2
2
 
3
3
  require 'audiobank-client'
4
4
 
5
- # Audiobank::Account.base_uri "audiobank.local"
6
-
7
- account = Audiobank::Account.new(ARGV.shift)
8
- while not ARGV.empty?
9
- account.documents.import ARGV.shift
10
- end
5
+ Audiobank::Client::CLI.new(ARGV).run
@@ -2,10 +2,10 @@ require "audiobank/client/version"
2
2
 
3
3
  require 'logger'
4
4
  require 'json'
5
-
6
- require "virtus"
7
-
8
- require "null_logger"
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"
@@ -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) if response.code == 200
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
@@ -1,5 +1,5 @@
1
1
  module Audiobank
2
2
  module Client
3
- VERSION = "0.0.2"
3
+ VERSION = "0.5"
4
4
  end
5
5
  end
@@ -24,18 +24,57 @@ class Audiobank::Document
24
24
  @upload_uri ||= URI.parse(upload)
25
25
  end
26
26
 
27
- def upload!(file)
28
- Net::FTP.open(upload_uri.host) do |ftp|
29
- ftp.login
30
- ftp.chdir upload_uri.path
31
- ftp.putbinaryfile file
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
@@ -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).upload!(file).confirm
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 :upload! => document, :confirm => true
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 upload the specified file" do
48
- document.should_receive(:upload!).with(file)
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
- hash: 27
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
- date: 2013-07-17 00:00:00 Z
20
- dependencies:
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
- - !ruby/object:Gem::Dependency
36
- prerelease: false
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
- type: :runtime
52
- version_requirements: &id003 !ruby/object:Gem::Requirement
53
- none: false
54
- requirements:
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
55
25
  - - ">="
56
- - !ruby/object:Gem::Version
57
- hash: 3
58
- segments:
59
- - 0
60
- version: "0"
61
- requirement: *id003
62
- name: json
63
- - !ruby/object:Gem::Dependency
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
- version_requirements: &id004 !ruby/object:Gem::Requirement
67
- none: false
68
- requirements:
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
69
53
  - - ">="
70
- - !ruby/object:Gem::Version
71
- hash: 3
72
- segments:
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
- - !ruby/object:Gem::Dependency
78
- prerelease: false
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
79
63
  type: :runtime
80
- version_requirements: &id005 !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
83
67
  - - ">="
84
- - !ruby/object:Gem::Version
85
- hash: 3
86
- segments:
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
- - !ruby/object:Gem::Dependency
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
- type: :development
94
- version_requirements: &id006 !ruby/object:Gem::Requirement
95
- none: false
96
- requirements:
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
97
81
  - - ">="
98
- - !ruby/object:Gem::Version
99
- hash: 3
100
- segments:
101
- - 0
102
- version: "0"
103
- requirement: *id006
104
- name: rake
105
- - !ruby/object:Gem::Dependency
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
- version_requirements: &id007 !ruby/object:Gem::Requirement
109
- none: false
110
- requirements:
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
111
123
  - - ">="
112
- - !ruby/object:Gem::Version
113
- hash: 3
114
- segments:
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
- - !ruby/object:Gem::Dependency
120
- prerelease: false
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
121
133
  type: :development
122
- version_requirements: &id008 !ruby/object:Gem::Requirement
123
- none: false
124
- requirements:
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
125
137
  - - ">="
126
- - !ruby/object:Gem::Version
127
- hash: 3
128
- segments:
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
- - !ruby/object:Gem::Dependency
134
- prerelease: false
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
135
147
  type: :development
136
- version_requirements: &id009 !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
139
151
  - - ">="
140
- - !ruby/object:Gem::Version
141
- hash: 3
142
- segments:
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
- - !ruby/object:Gem::Dependency
148
- prerelease: false
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">="
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
149
161
  type: :development
150
- version_requirements: &id010 !ruby/object:Gem::Requirement
151
- none: false
152
- requirements:
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
153
165
  - - ">="
154
- - !ruby/object:Gem::Version
155
- hash: 3
156
- segments:
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
- - !ruby/object:Gem::Dependency
162
- prerelease: false
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
163
175
  type: :development
164
- version_requirements: &id011 !ruby/object:Gem::Requirement
165
- none: false
166
- requirements:
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
167
179
  - - ">="
168
- - !ruby/object:Gem::Version
169
- hash: 3
170
- segments:
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
- - !ruby/object:Gem::Dependency
176
- prerelease: false
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
177
189
  type: :development
178
- version_requirements: &id012 !ruby/object:Gem::Requirement
179
- none: false
180
- requirements:
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
192
+ requirements:
181
193
  - - ">="
182
- - !ruby/object:Gem::Version
183
- hash: 3
184
- segments:
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
- files:
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
- none: false
232
- requirements:
251
+ required_ruby_version: !ruby/object:Gem::Requirement
252
+ requirements:
233
253
  - - ">="
234
- - !ruby/object:Gem::Version
235
- hash: 3
236
- segments:
237
- - 0
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
- hash: 3
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: 1.8.24
263
+ rubygems_version: 2.4.5.1
252
264
  signing_key:
253
- specification_version: 3
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