renuo-upload 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 009244123070df77e6b3e567320a0a38c46ca4b9
4
+ data.tar.gz: 57673e36ef3be9ce90dfa480697255d2c828b3b7
5
+ SHA512:
6
+ metadata.gz: 9e49c02f52da6ef6c49bfda7c99a626a9c753f3b22f141f60ed69c651a9afbe22bb937f2f87d5ca446b5442300aedfcde0b6f40aa8ef721aa3086a086a7c9809
7
+ data.tar.gz: 6673533fb273bc7519a2940a0badd4c6416aff2bed423d35cf90459003068754da7a22d31fe3d6e1fb8a1ae7a0501fef7056579395f87a17e3b5a95ee4e3ec96
@@ -0,0 +1,20 @@
1
+ # EditorConfig helps developers define and maintain consistent
2
+ # coding styles between different editors and IDEs
3
+ # editorconfig.org
4
+
5
+ root = true
6
+
7
+ [*]
8
+
9
+ # Change these settings to your own preference
10
+ indent_style = space
11
+ indent_size = 2
12
+
13
+ # We recommend you to keep these unchanged
14
+ end_of_line = lf
15
+ charset = utf-8
16
+ trim_trailing_whitespace = true
17
+ insert_final_newline = true
18
+
19
+ [*.md]
20
+ trim_trailing_whitespace = false
@@ -0,0 +1,6 @@
1
+ .DS_Store
2
+ .idea
3
+ .ruby-version
4
+ *.gem
5
+ Gemfile.lock
6
+ .bundle
data/.reek ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ IrresponsibleModule:
3
+ enabled: false
4
+ Attribute:
5
+ enabled: false
6
+
7
+ exclude_paths:
8
+ - tmp
9
+ - spec
10
+ - vendor
11
+ - log
12
+ - coverage
13
+ - config
14
+ - bin
15
+ - db/migrate
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --backtrace
@@ -0,0 +1,23 @@
1
+ Metrics/LineLength:
2
+ Max: 120
3
+
4
+ Style/Documentation:
5
+ Enabled: false
6
+
7
+ Style/NonNilCheck:
8
+ IncludeSemanticChanges: true
9
+
10
+ Style/FileName:
11
+ Exclude:
12
+ - 'Gemfile.local.rb'
13
+ - 'Gemfile.local.example.rb'
14
+
15
+ Style/FrozenStringLiteralComment:
16
+ Enabled: false
17
+
18
+ AllCops:
19
+ TargetRubyVersion: 2.3
20
+ Exclude:
21
+ - 'bin/**/*'
22
+ - 'vendor/bundle/**/*'
23
+ - 'lib/renuo-upload.rb'
@@ -0,0 +1,24 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.3.1
5
+ addons:
6
+ apt:
7
+ packages:
8
+ - zsh
9
+ bundler_args: --jobs=3 --retry=3
10
+ cache:
11
+ bundler: true
12
+ apt: true
13
+ directories:
14
+ - coverage
15
+ before_install:
16
+ - export TZ=Europe/Zurich
17
+ before_script:
18
+ - export DISPLAY=:99.0
19
+ - sh -e /etc/init.d/xvfb start
20
+ script: bin/setup
21
+ notifications:
22
+ email:
23
+ on_success: change
24
+ on_failure: always
@@ -0,0 +1,3 @@
1
+ ## Version 0.0.1
2
+
3
+ * initial release
@@ -0,0 +1,41 @@
1
+ # Contributing
2
+
3
+ ### We love pull requests. Here's a quick guide.
4
+
5
+ Fork, then clone the repo:
6
+ ```
7
+ git clone git@github.com:your-username/renuo-upload-ruby.git
8
+ ```
9
+
10
+ Set up your machine:
11
+ ```
12
+ git checkout -b your-branch-name
13
+ bin/setup
14
+ ```
15
+
16
+ Make sure the tests pass:
17
+ ```
18
+ bin/check
19
+ ```
20
+
21
+ Make your change. Add tests for your change. Make the tests pass:
22
+ ```
23
+ bin/check
24
+ ```
25
+
26
+ Push to your fork and [submit a pull request][pr].
27
+ ```
28
+ git push origin your-branch-name
29
+ ```
30
+
31
+ [pr]: https://github.com/renuo/renuo-upload-ruby/compare/
32
+
33
+ At this point you're waiting on us. We like to at least comment on pull requests within three business days
34
+ (and, typically, one business day). We may suggest some changes or improvements or alternatives.
35
+
36
+ Some things that will increase the chance that your pull request is accepted:
37
+
38
+ * Write tests.
39
+ * Write a [good commit message][commit].
40
+
41
+ [commit]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2016 Renuo GmbH
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,61 @@
1
+ [![Build Status](https://travis-ci.org/renuo/renuo-upload-ruby.svg?branch=master)](https://travis-ci.org/renuo/renuo-upload-ruby) [![Build Status](https://travis-ci.org/renuo/renuo-upload-ruby.svg?branch=develop)](https://travis-ci.org/renuo/renuo-upload-ruby)
2
+
3
+ # Renuo Upload
4
+
5
+ Gem for Ruby 2.0+ applications that use the excellent Renuo Upload
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile and run bundle:
10
+
11
+ ```ruby
12
+ gem 'renuo-upload'
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ ### Configuration
18
+
19
+ The configuration is optional. If you want to use it, add an initializer:
20
+
21
+ ```ruby
22
+ RenuoUpload.configure do |config|
23
+ config.api_key = 'custom-api-key' # Default: ENV['RENUO_UPLOAD_API_KEY']
24
+ config.signing_url = 'custom-signing-url' # Default: ENV['RENUO_UPLOAD_SIGNING_URL']
25
+ end
26
+ ```
27
+
28
+ ### Example
29
+
30
+ ```ruby
31
+ require 'renuo-upload'
32
+
33
+ file = File.new('tmp/examplefile.pdf')
34
+ file_url = RenuoUpload.upload!(file)
35
+ ```
36
+
37
+ ## Development
38
+
39
+ ### Contributing
40
+
41
+ See the [CONTRIBUTING](CONTRIBUTING.md) file.
42
+
43
+ ### Release
44
+
45
+ ```sh
46
+ git flow release start [.....]
47
+ # adjust version.rb
48
+ # check (and adjust) CHANGELOG.md
49
+ bundle install
50
+ git commit -av
51
+ git flow release finish [.....]
52
+ git push origin develop:develop
53
+ git push origin master:master
54
+ git checkout master
55
+ bundle exec rake release
56
+ git checkout develop
57
+ ```
58
+
59
+ ## Copyright
60
+
61
+ Renuo GmbH (https://www.renuo.ch) - [MIT LICENSE](LICENSE) - 2016
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env rake
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
5
+
6
+ task(:check) { sh('bin/check') }
7
+ task(:setup) { sh('bin/setup') }
8
+ task default: :check
@@ -0,0 +1,4 @@
1
+ require 'rest_client'
2
+ require 'renuo_upload/version'
3
+ require 'renuo_upload/config'
4
+ require 'renuo_upload/uploader'
@@ -0,0 +1,26 @@
1
+ module RenuoUpload
2
+ class << self
3
+ attr_writer :config
4
+ end
5
+
6
+ def self.config
7
+ @config ||= Config.new
8
+ end
9
+
10
+ def self.reset
11
+ @config = Config.new
12
+ end
13
+
14
+ def self.configure
15
+ yield(config)
16
+ end
17
+
18
+ class Config
19
+ attr_accessor :api_key, :signing_url
20
+
21
+ def initialize
22
+ self.api_key = ENV['RENUO_UPLOAD_API_KEY']
23
+ self.signing_url = ENV['RENUO_UPLOAD_SIGNING_URL']
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,40 @@
1
+ module RenuoUpload
2
+ def self.upload!(file)
3
+ Uploader.new(RenuoUpload.config).upload(file)
4
+ end
5
+
6
+ class Uploader
7
+ def initialize(config)
8
+ @config = config
9
+ @policy = retrieve_policy
10
+ end
11
+
12
+ def upload(file)
13
+ RestClient.post upload_url, upload_hash(file)
14
+ uploaded_file_url file
15
+ end
16
+
17
+ private
18
+
19
+ def retrieve_policy
20
+ response = RestClient.post @config.signing_url, api_key: @config.api_key
21
+ JSON.parse response.body
22
+ end
23
+
24
+ def upload_url
25
+ @policy['url']
26
+ end
27
+
28
+ def upload_data
29
+ @policy['data']
30
+ end
31
+
32
+ def upload_hash(file)
33
+ Hash[upload_data.map { |key, value| [key.tr('_', '-'), value] }].merge file: file
34
+ end
35
+
36
+ def uploaded_file_url(file)
37
+ @policy['file_url_path'].concat File.basename(file)
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,3 @@
1
+ module RenuoUpload
2
+ VERSION = '0.0.1'.freeze
3
+ end
@@ -0,0 +1,30 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'renuo_upload/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'renuo-upload'
7
+ spec.version = RenuoUpload::VERSION
8
+ spec.authors = ['Cyril Kyburz', 'Alessandro Rodi', 'Lukas Elmer']
9
+ spec.email = ['cyril.kyburz@renuo.ch', 'alessandro.rodi@renuo.ch', 'lukas.elmer@renuo.ch']
10
+
11
+ spec.summary = 'Ruby client for renuo upload'
12
+ spec.description = 'The renuo upload allows in compination with the renuo upload service to easily upload files.'
13
+ spec.homepage = 'https://github.com/renuo/renuo-upload-ruby'
14
+ spec.license = 'MIT'
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|bin)/}) }
17
+ spec.bindir = 'exe'
18
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
+ spec.require_paths = ['lib']
20
+ spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
21
+
22
+ spec.add_dependency 'rest-client', '>= 1.8.0'
23
+
24
+ spec.add_development_dependency 'rspec', '>= 3.4.0'
25
+ spec.add_development_dependency 'rubocop', '>= 0.40.0'
26
+ spec.add_development_dependency 'reek', '>= 4.0.4'
27
+ spec.add_development_dependency 'climate_control', '>= 0.0.3'
28
+ spec.add_development_dependency 'pry', '>= 0.10.3'
29
+ spec.add_development_dependency 'webmock', '>= 2.1.0'
30
+ end
@@ -0,0 +1 @@
1
+ Example file
@@ -0,0 +1,16 @@
1
+ {
2
+ "url": "https://bucket.s3.eu-central-1.amazonaws.com/",
3
+ "data": {
4
+ "key": "o/application/1xyj/db9f/aac4/3a98/2d85/e016/aa7d/700f/7ed0/${filename}",
5
+ "acl": "public-read",
6
+ "policy": "6vEpDAg21V0f6tI00RRgffblpKMNJRnJj856DgD1udZp93Oj7a2HehpUseUIf8VlXCoJrdtSSi/23oK0qLJOuMVGjgfONLZPX4PFv79ILwKmQViCG6FJZNw8Hj7NdGS9955kd+pB5Z75LiPG8dBBDl0ByOvPSdqjmoUNbZ7fsoFwwNBORl8P1G2bUspLPKfHNmfNKapScwoFuyEDH8h3j+emu2iiwQ+uPD/vr1nCofrtFbhYKcOyVlfTp3501UknokidZY7FlhqggJJG72eNLmJ5WEHec7FaqSE/AtpK07fSwCVkWOYO+Y4KryKg4IcwgT3kOVWDmgLk7dHsF4ySmTQvCkRbt9hI7oOv1pN0lm1qwxPQFLWXEk/2hBbd8j4abKP+za+1TjTuS6FN7i/m/TH26eKTLKInV+/4I0sBORHGOtRmelmo393ubSUHOpsntUeRm9/58gC2SLpQUiEE1nKpN0Qwz7ypfWg8Y4xHfs9WFzOXX09xpRPuGNsA+PergflqKxwkBt8oeFB/URmNBKdXO9R90ueirMuz5O8yFhuk==",
7
+ "x_amz_algorithm": "AWS4-HMAC-SHA256",
8
+ "x_amz_credential": "AKIAJP5UELFNK1QE4FAD/20160615/eu-central-1/s3/aws4_request",
9
+ "x_amz_expires": 28800,
10
+ "x_amz_signature": "04d5f8b52b6e0a7a83ffb77655ab10ab7377dd60ce949b50fce189a2d7078d90",
11
+ "x_amz_date": "20160615T123654Z",
12
+ "utf8": "✓"
13
+ },
14
+ "file_prefix": "1xyj/db9f/aac4/3a98/2d85/e016/aa7d/700f/7ed0/",
15
+ "file_url_path": "//cdn.renuoapp.ch/o/application/1xyj/db9f/aac4/3a98/2d85/e016/aa7d/700f/7ed0/"
16
+ }
@@ -0,0 +1,43 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe RenuoUpload do
4
+ let(:config) { RenuoUpload::Config.new }
5
+
6
+ describe RenuoUpload::Config do
7
+ [
8
+ [:RENUO_UPLOAD_API_KEY, :api_key, 'custom-api-key', 'new-key'],
9
+ [:RENUO_UPLOAD_SIGNING_URL, :signing_url, 'custom-signing-url', 'new-su']
10
+ ].each do |env_variable_name, method, default_value, new_value|
11
+ describe "##{method}" do
12
+ it 'is the default value from the ENV variable' do
13
+ ClimateControl.modify env_variable_name => default_value do
14
+ expect(config.send(method)).to eq(default_value)
15
+ end
16
+ end
17
+ end
18
+
19
+ describe "##{method}=" do
20
+ it 'can set value without an env variable' do
21
+ config.send("#{method}=", new_value)
22
+ expect(config.send(method)).to eq(new_value)
23
+ end
24
+
25
+ it 'can set value when an env variable is defined' do
26
+ ClimateControl.modify env_variable_name => default_value do
27
+ config.send("#{method}=", new_value)
28
+ expect(config.send(method)).to eq(new_value)
29
+ end
30
+ end
31
+ end
32
+
33
+ describe "#reset (#{method})" do
34
+ it "resets the #{method}" do
35
+ ClimateControl.modify env_variable_name => default_value do
36
+ RenuoUpload.configure { |config| config.send("#{method}=", new_value) }
37
+ expect { RenuoUpload.reset }.to change { RenuoUpload.config.send(method) }.from(new_value).to(default_value)
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,66 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe RenuoUpload do
4
+ let(:file) { load_file('file.txt') }
5
+
6
+ def load_file(name)
7
+ File.new(File.expand_path("../../data/#{name}", __FILE__))
8
+ end
9
+
10
+ describe '#upload' do
11
+ let(:fake_uploader) { Struct.new(:upload).new }
12
+ let(:file_url) { 'https://file.url' }
13
+
14
+ it 'can upload a file' do
15
+ expect(RenuoUpload::Uploader).to receive(:new).with(RenuoUpload.config).and_return(fake_uploader)
16
+ expect(fake_uploader).to receive(:upload).with(file).and_return(file_url)
17
+ expect(described_class.upload!(file)).to eq file_url
18
+ end
19
+ end
20
+
21
+ describe RenuoUpload::Uploader do
22
+ let(:uploader) { described_class.new(config) }
23
+ let(:config) { RenuoUpload.config }
24
+ let(:policy) { JSON.parse(load_file('policy.json').read) }
25
+
26
+ before do
27
+ config.api_key = 'api-key'
28
+ config.signing_url = 'signing-url'
29
+ stub_request(:post, config.signing_url).to_return(body: load_file('policy.json'))
30
+ end
31
+
32
+ describe '#new' do
33
+ it 'can be initialized with the renuo upload config' do
34
+ expect(uploader.instance_variable_get(:@policy)).to eq policy
35
+ expect(uploader.instance_variable_get(:@config)).to be RenuoUpload.config
36
+ end
37
+ end
38
+
39
+ describe '#upload' do
40
+ let(:file_url) { '//cdn.renuoapp.ch/o/application/1xyj/db9f/aac4/3a98/2d85/e016/aa7d/700f/7ed0/file.txt' }
41
+
42
+ it 'upload the file to the provided server by the policy' do
43
+ stub = stub_request(:post, policy['url']).with(headers: { 'Content-Length' => '1512' })
44
+
45
+ expect(uploader.upload(file)).to eq file_url
46
+
47
+ expect(stub).to have_been_requested
48
+ end
49
+ end
50
+
51
+ describe '#retrieve_policy' do
52
+ it 'requests the policy from the renuo upload service' do
53
+ expect(uploader.send(:retrieve_policy).values_at('url', 'data')).to_not include(nil)
54
+ end
55
+ end
56
+
57
+ describe '#upload_hash' do
58
+ it 'removes underscores and replace them with dashes, just for the keys' do
59
+ expect(uploader).to receive(:upload_data).and_return('key_key_key' => 'value')
60
+ uploaded_hash = uploader.send(:upload_hash, 'dummy_file')
61
+ expect(uploaded_hash['key-key-key']).to eq 'value'
62
+ expect(uploaded_hash[:file]).to eq 'dummy_file'
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,3 @@
1
+ require 'renuo-upload'
2
+ require 'climate_control'
3
+ require 'webmock/rspec'
metadata ADDED
@@ -0,0 +1,174 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: renuo-upload
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Cyril Kyburz
8
+ - Alessandro Rodi
9
+ - Lukas Elmer
10
+ autorequire:
11
+ bindir: exe
12
+ cert_chain: []
13
+ date: 2016-06-16 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rest-client
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - ">="
20
+ - !ruby/object:Gem::Version
21
+ version: 1.8.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: 1.8.0
29
+ - !ruby/object:Gem::Dependency
30
+ name: rspec
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: 3.4.0
36
+ type: :development
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 3.4.0
43
+ - !ruby/object:Gem::Dependency
44
+ name: rubocop
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 0.40.0
50
+ type: :development
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 0.40.0
57
+ - !ruby/object:Gem::Dependency
58
+ name: reek
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 4.0.4
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: 4.0.4
71
+ - !ruby/object:Gem::Dependency
72
+ name: climate_control
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: 0.0.3
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: 0.0.3
85
+ - !ruby/object:Gem::Dependency
86
+ name: pry
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: 0.10.3
92
+ type: :development
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: 0.10.3
99
+ - !ruby/object:Gem::Dependency
100
+ name: webmock
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: 2.1.0
106
+ type: :development
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 2.1.0
113
+ description: The renuo upload allows in compination with the renuo upload service
114
+ to easily upload files.
115
+ email:
116
+ - cyril.kyburz@renuo.ch
117
+ - alessandro.rodi@renuo.ch
118
+ - lukas.elmer@renuo.ch
119
+ executables: []
120
+ extensions: []
121
+ extra_rdoc_files: []
122
+ files:
123
+ - ".editorconfig"
124
+ - ".gitignore"
125
+ - ".reek"
126
+ - ".rspec"
127
+ - ".rubocop.yml"
128
+ - ".travis.yml"
129
+ - CHANGELOG.md
130
+ - CONTRIBUTING.md
131
+ - Gemfile
132
+ - LICENSE
133
+ - README.md
134
+ - Rakefile
135
+ - lib/renuo-upload.rb
136
+ - lib/renuo_upload/config.rb
137
+ - lib/renuo_upload/uploader.rb
138
+ - lib/renuo_upload/version.rb
139
+ - renuo_upload.gemspec
140
+ - spec/data/file.txt
141
+ - spec/data/policy.json
142
+ - spec/renuo_upload/config_spec.rb
143
+ - spec/renuo_upload/uploader_spec.rb
144
+ - spec/spec_helper.rb
145
+ homepage: https://github.com/renuo/renuo-upload-ruby
146
+ licenses:
147
+ - MIT
148
+ metadata: {}
149
+ post_install_message:
150
+ rdoc_options: []
151
+ require_paths:
152
+ - lib
153
+ required_ruby_version: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ required_rubygems_version: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: '0'
163
+ requirements: []
164
+ rubyforge_project:
165
+ rubygems_version: 2.5.1
166
+ signing_key:
167
+ specification_version: 4
168
+ summary: Ruby client for renuo upload
169
+ test_files:
170
+ - spec/data/file.txt
171
+ - spec/data/policy.json
172
+ - spec/renuo_upload/config_spec.rb
173
+ - spec/renuo_upload/uploader_spec.rb
174
+ - spec/spec_helper.rb