digitsend 0.0.12 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
@@ -34,6 +34,16 @@ module DigitSend
34
34
  response["uuid"]
35
35
  end
36
36
 
37
+ def stream_for_data(path, data)
38
+ if data.nil?
39
+ File.open(path, "r")
40
+ elsif data.is_a?(String)
41
+ StringIO.new(data)
42
+ else
43
+ data
44
+ end
45
+ end
46
+
37
47
  private
38
48
 
39
49
  def create_s3_file(filename)
@@ -54,16 +64,6 @@ module DigitSend
54
64
  end
55
65
  end
56
66
 
57
- def stream_for_data(path, data)
58
- if data.nil?
59
- File.open(path, "r")
60
- elsif data.is_a?(String)
61
- StringIO.new(data)
62
- else
63
- data
64
- end
65
- end
66
-
67
67
  def exception_for_response(hash)
68
68
  raise case hash["message"]
69
69
  when "Missing phone numbers" then MissingPhoneNumbers.new(hash)
@@ -1,12 +1,36 @@
1
1
  module DigitSend
2
2
  class Repository
3
- def self.upload(repo_name, path, filename, data = nil)
4
- uuid = Client.upload_s3_file(filename, data)
3
+ class <<self
4
+ def self.upload(repo_name, path, filename, data = nil)
5
+ begin
6
+ uuid = Client.upload_s3_file(filename, data)
7
+ rescue
8
+ return create_version_with_s3_file(filename, data)
9
+ end
5
10
 
6
- Client.call '/files/versions',
7
- repo_name: repo_name,
8
- path: path,
9
- repo_file_version: { s3_file_uuid: uuid }
11
+ create_version_with_s3_file(uuid)
12
+ end
13
+
14
+ private
15
+
16
+ def create_version_with_s3_file(uuid)
17
+ Client.call '/files/versions',
18
+ repo_name: repo_name,
19
+ path: path,
20
+ repo_file_version: {
21
+ s3_file_uuid: uuid
22
+ }
23
+ end
24
+
25
+ def create_version_with_content(filename, data)
26
+ Client.call '/files/versions',
27
+ repo_name: repo_name,
28
+ path: path,
29
+ direct_upload: {
30
+ filename: filename,
31
+ data: stream_for_data(filename, data).read
32
+ }
33
+ end
10
34
  end
11
35
  end
12
36
  end
@@ -1,3 +1,3 @@
1
1
  module DigitSend
2
- VERSION = "0.0.12"
2
+ VERSION = "0.0.13"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: digitsend
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-14 00:00:00.000000000 Z
12
+ date: 2013-07-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: multipart-post