upcloudify 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: efd2a9f31fed02783de401102b11dd3e0b5b468b
4
- data.tar.gz: 7ea2e9646754ba7d451777bdb3442b5243d9de0c
3
+ metadata.gz: 605bf8452d214954513539e39a999a8b7570be96
4
+ data.tar.gz: 32b53beffe0480001068d605f538a5ce2748bd72
5
5
  SHA512:
6
- metadata.gz: 473be39ca115c4af04233454c9f7cbdc9c2efbb8785828ff9dbd553a16c6577cb1ee856be30f086bfdb3713e52377755cdf11a4bf91db86980387d06f655ca15
7
- data.tar.gz: 42e04aefa4d0851c57cd72f4f6b983dd479e8fa94937aa42a2e1db5cd258e7b11ac302abcb6a9d10ba82123a08991e27734850eb5d3d2aa169e577ce48f3856c
6
+ metadata.gz: 3a175a0069c8afe53e136c2277a3b90e859062bb22696ceb3387f0d2d421e5db044036527ba469141eadad3a8820afe4c95bba36e997cb6d367df833b023c93e
7
+ data.tar.gz: 7224a76723d3465d177bd0a6843562c546ff795487f8ec23c1e6599e5c737600d1c0a6fda870060e8c9ab5d8e51417b1d175b2581ed61b645481c7ce5e000e5b
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
data/Guardfile ADDED
@@ -0,0 +1,70 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ ## Uncomment and set this to only include directories you want to watch
5
+ # directories %w(app lib config test spec features) \
6
+ # .select{|d| Dir.exists?(d) ? d : UI.warning("Directory #{d} does not exist")}
7
+
8
+ ## Note: if you are using the `directories` clause above and you are not
9
+ ## watching the project directory ('.'), then you will want to move
10
+ ## the Guardfile to a watched dir and symlink it back, e.g.
11
+ #
12
+ # $ mkdir config
13
+ # $ mv Guardfile config/
14
+ # $ ln -s config/Guardfile .
15
+ #
16
+ # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
17
+
18
+ # Note: The cmd option is now required due to the increasing number of ways
19
+ # rspec may be run, below are examples of the most common uses.
20
+ # * bundler: 'bundle exec rspec'
21
+ # * bundler binstubs: 'bin/rspec'
22
+ # * spring: 'bin/rspec' (This will use spring if running and you have
23
+ # installed the spring binstubs per the docs)
24
+ # * zeus: 'zeus rspec' (requires the server to be started separately)
25
+ # * 'just' rspec: 'rspec'
26
+
27
+ guard :rspec, cmd: "bundle exec rspec" do
28
+ require "guard/rspec/dsl"
29
+ dsl = Guard::RSpec::Dsl.new(self)
30
+
31
+ # Feel free to open issues for suggestions and improvements
32
+
33
+ # RSpec files
34
+ rspec = dsl.rspec
35
+ watch(rspec.spec_helper) { rspec.spec_dir }
36
+ watch(rspec.spec_support) { rspec.spec_dir }
37
+ watch(rspec.spec_files)
38
+
39
+ # Ruby files
40
+ ruby = dsl.ruby
41
+ dsl.watch_spec_files_for(ruby.lib_files)
42
+
43
+ # Rails files
44
+ rails = dsl.rails(view_extensions: %w(erb haml slim))
45
+ dsl.watch_spec_files_for(rails.app_files)
46
+ dsl.watch_spec_files_for(rails.views)
47
+
48
+ watch(rails.controllers) do |m|
49
+ [
50
+ rspec.spec.("routing/#{m[1]}_routing"),
51
+ rspec.spec.("controllers/#{m[1]}_controller"),
52
+ rspec.spec.("acceptance/#{m[1]}")
53
+ ]
54
+ end
55
+
56
+ # Rails config changes
57
+ watch(rails.spec_helper) { rspec.spec_dir }
58
+ watch(rails.routes) { "#{rspec.spec_dir}/routing" }
59
+ watch(rails.app_controller) { "#{rspec.spec_dir}/controllers" }
60
+
61
+ # Capybara features specs
62
+ watch(rails.view_dirs) { |m| rspec.spec.("features/#{m[1]}") }
63
+ watch(rails.layouts) { |m| rspec.spec.("features/#{m[1]}") }
64
+
65
+ # Turnip features and steps
66
+ watch(%r{^spec/acceptance/(.+)\.feature$})
67
+ watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) do |m|
68
+ Dir[File.join("**/#{m[1]}.feature")][0] || "spec/acceptance"
69
+ end
70
+ end
data/README.md CHANGED
@@ -60,4 +60,5 @@ bundle exec ruby sample.rb
60
60
  2. Create your feature branch (`git checkout -b my-new-feature`)
61
61
  3. Commit your changes (`git commit -am 'Add some feature'`)
62
62
  4. Push to the branch (`git push origin my-new-feature`)
63
- 5. Create new Pull Request
63
+ 5. Don't forget tests!
64
+ 6. Create new Pull Request
@@ -0,0 +1,17 @@
1
+ class Numeric
2
+ def hour
3
+ self * 3600
4
+ end
5
+ alias_method :hours, :hour
6
+
7
+ def day
8
+ self * 24.hours
9
+ end
10
+ alias_method :days, :day
11
+ end
12
+
13
+ class Time
14
+ def tomorrow
15
+ self + 1.day
16
+ end
17
+ end
@@ -1,3 +1,3 @@
1
1
  module Upcloudify
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
data/lib/upcloudify.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require "upcloudify/version"
2
+ require "monkey_patches"
2
3
  require 'gem_config'
3
4
  require 'zip/zip'
4
5
  require 'zippy'
@@ -10,53 +11,56 @@ module Upcloudify
10
11
  include GemConfig::Base
11
12
 
12
13
  with_configuration do
13
- has :aws_secret_access_key, default: ENV['AWS_SECRET_ACCESS_KEY']
14
14
  has :aws_access_key_id, default: ENV['AWS_ACCESS_KEY_ID']
15
+ has :aws_secret_access_key, default: ENV['AWS_SECRET_ACCESS_KEY']
15
16
  has :aws_directory
16
17
  end
17
18
 
18
19
  class S3
19
20
 
20
21
  def initialize(options = {
21
- s3_id: Upcloudify.configuration.aws_access_key_id,
22
- s3_secret: Upcloudify.configuration.aws_secret_access_key,
23
- s3_directory: Upcloudify.configuration.aws_directory
22
+ aws_access_key_id: Upcloudify.configuration.aws_access_key_id,
23
+ aws_secret_access_key: Upcloudify.configuration.aws_secret_access_key,
24
+ aws_directory: Upcloudify.configuration.aws_directory
24
25
  })
25
- @id = options[:s3_id]
26
- @secret = options[:s3_secret]
27
- @directory = options[:s3_directory]
26
+ raise ArgumentError, "aws_access_key_id is required" unless options[:aws_access_key_id]
27
+ raise ArgumentError, "aws_secret_access_key is required" unless options[:aws_secret_access_key]
28
+ raise ArgumentError, "aws_directory is required" unless options[:aws_directory]
29
+ @id = options[:aws_access_key_id]
30
+ @secret = options[:aws_secret_access_key]
31
+ @directory = options[:aws_directory]
28
32
  end
29
33
 
30
- # Internal: Connects to Amazon S3 using stored credentials
34
+ # Connects to Amazon S3 using stored credentials
31
35
  # Returns an object handle for the S3 bucket-directory
32
- def cloud
33
- connection = Fog::Storage.new(
36
+ def cloud(connection = Fog::Storage.new(
34
37
  :provider => 'AWS',
35
38
  :aws_secret_access_key => @secret,
36
39
  :aws_access_key_id => @id,
37
40
  )
41
+ )
38
42
  directory = connection.directories.get(@directory)
39
43
  directory.files
40
44
  end
41
45
 
42
- # Internal: Uploads data into Amazon S3
46
+ # Uploads data into Amazon S3
43
47
  # Returns an object representing the uploaded file
44
48
  def upload(filename, data)
45
49
  file = cloud.create(
46
- key: "#{filename}.zip",
47
- body: Zippy.new("#{filename}" => data).data,
50
+ :key => "#{filename}.zip",
51
+ :body => Zippy.new("#{filename}" => data).data,
48
52
  :public => false
49
53
  )
50
54
  file
51
55
  end
52
56
 
53
- # Public: Uploads a file to S3 and emails a link to the file.
57
+ # Uploads a file to S3 and emails a link to the file.
54
58
  # Returns nothing.
55
59
  def email(email_address,
56
60
  filename,
57
61
  attachment,
58
62
  options = {
59
- suffix: " generated on #{Time.now.to_s}",
63
+ suffix: "",
60
64
  expiration: Time.now.tomorrow,
61
65
  from: 'upcloudify',
62
66
  subject: 'your file is attached',
@@ -66,7 +70,7 @@ module Upcloudify
66
70
 
67
71
  suffix = options[:suffix]
68
72
  expiration = options[:expiration]
69
- file = upload((filename.to_s + suffix.to_s).parameterize, attachment)
73
+ file = upload((filename.to_s + suffix.to_s), attachment)
70
74
 
71
75
  Pony.mail to: email_address,
72
76
  from: options[:from],
@@ -0,0 +1,96 @@
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # The generated `.rspec` file contains `--require spec_helper` which will cause
4
+ # this file to always be loaded, without a need to explicitly require it in any
5
+ # files.
6
+ #
7
+ # Given that it is always loaded, you are encouraged to keep this file as
8
+ # light-weight as possible. Requiring heavyweight dependencies from this file
9
+ # will add to the boot time of your test suite on EVERY test run, even for an
10
+ # individual file that may not need all of that loaded. Instead, consider making
11
+ # a separate helper file that requires the additional dependencies and performs
12
+ # the additional setup, and require it from the spec files that actually need
13
+ # it.
14
+ #
15
+ # The `.rspec` file also contains a few flags that are not defaults but that
16
+ # users commonly want.
17
+ #
18
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
19
+ RSpec.configure do |config|
20
+ # rspec-expectations config goes here. You can use an alternate
21
+ # assertion/expectation library such as wrong or the stdlib/minitest
22
+ # assertions if you prefer.
23
+ config.expect_with :rspec do |expectations|
24
+ # This option will default to `true` in RSpec 4. It makes the `description`
25
+ # and `failure_message` of custom matchers include text for helper methods
26
+ # defined using `chain`, e.g.:
27
+ # be_bigger_than(2).and_smaller_than(4).description
28
+ # # => "be bigger than 2 and smaller than 4"
29
+ # ...rather than:
30
+ # # => "be bigger than 2"
31
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
32
+ end
33
+
34
+ # rspec-mocks config goes here. You can use an alternate test double
35
+ # library (such as bogus or mocha) by changing the `mock_with` option here.
36
+ config.mock_with :rspec do |mocks|
37
+ # Prevents you from mocking or stubbing a method that does not exist on
38
+ # a real object. This is generally recommended, and will default to
39
+ # `true` in RSpec 4.
40
+ mocks.verify_partial_doubles = true
41
+ end
42
+
43
+ # The settings below are suggested to provide a good initial experience
44
+ # with RSpec, but feel free to customize to your heart's content.
45
+ =begin
46
+ # These two settings work together to allow you to limit a spec run
47
+ # to individual examples or groups you care about by tagging them with
48
+ # `:focus` metadata. When nothing is tagged with `:focus`, all examples
49
+ # get run.
50
+ config.filter_run :focus
51
+ config.run_all_when_everything_filtered = true
52
+
53
+ # Allows RSpec to persist some state between runs in order to support
54
+ # the `--only-failures` and `--next-failure` CLI options. We recommend
55
+ # you configure your source control system to ignore this file.
56
+ config.example_status_persistence_file_path = "spec/examples.txt"
57
+
58
+ # Limits the available syntax to the non-monkey patched syntax that is
59
+ # recommended. For more details, see:
60
+ # - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
61
+ # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
62
+ # - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode
63
+ config.disable_monkey_patching!
64
+
65
+ # This setting enables warnings. It's recommended, but in some cases may
66
+ # be too noisy due to issues in dependencies.
67
+ config.warnings = true
68
+
69
+ # Many RSpec users commonly either run the entire suite or an individual
70
+ # file, and it's useful to allow more verbose output when running an
71
+ # individual spec file.
72
+ if config.files_to_run.one?
73
+ # Use the documentation formatter for detailed output,
74
+ # unless a formatter has already been configured
75
+ # (e.g. via a command-line flag).
76
+ config.default_formatter = 'doc'
77
+ end
78
+
79
+ # Print the 10 slowest examples and example groups at the
80
+ # end of the spec run, to help surface which specs are running
81
+ # particularly slow.
82
+ config.profile_examples = 10
83
+
84
+ # Run specs in random order to surface order dependencies. If you find an
85
+ # order dependency and want to debug it, you can fix the order by providing
86
+ # the seed, which is printed after each run.
87
+ # --seed 1234
88
+ config.order = :random
89
+
90
+ # Seed global randomization in this process using the `--seed` CLI option.
91
+ # Setting this allows you to use `--seed` to deterministically reproduce
92
+ # test failures related to randomization by passing the same `--seed` value
93
+ # as the one that triggered the failure.
94
+ Kernel.srand config.seed
95
+ =end
96
+ end
@@ -0,0 +1,47 @@
1
+ require 'spec_helper.rb'
2
+ require 'pry'
3
+ require 'upcloudify'
4
+
5
+ describe Upcloudify::S3 do
6
+ context 'sanity check' do
7
+ subject { Upcloudify::S3.new(
8
+ aws_secret_access_key: 'test_key',
9
+ aws_access_key_id: 'test_id',
10
+ aws_directory: 'test_directory'
11
+ )
12
+ }
13
+
14
+ it 'instantiates an object' do
15
+ expect(subject).to_not be nil
16
+ end
17
+
18
+ it 'raises an error when the arguments are missing' do
19
+ expect { subject.email }.to raise_error(ArgumentError)
20
+ end
21
+ end
22
+
23
+ context 'email' do
24
+ subject { Upcloudify::S3.new(
25
+ aws_secret_access_key: 'test_key',
26
+ aws_access_key_id: 'test_id',
27
+ aws_directory: 'test_directory'
28
+ )
29
+ }
30
+
31
+ # TODO: we should probably create an object that has this interface and mock that
32
+ let(:connection) { double("connection") }
33
+ let(:directories) { double("directories") }
34
+ let(:directory) { double("directory") }
35
+ let(:files) { double("files") }
36
+
37
+ before :each do
38
+ allow(connection).to receive(:directories).and_return(directories)
39
+ allow(directories).to receive(:get).and_return(directory)
40
+ allow(directory).to receive(:files).and_return(files)
41
+ end
42
+
43
+ it 'connects to the cloud service and returns the files in the configured directory' do
44
+ expect(subject.cloud(connection)).to eq files
45
+ end
46
+ end
47
+ end
data/upcloudify.gemspec CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
  attachments to the cloud and emailing the recipient
13
13
  a link to that attachment}
14
14
  spec.summary = %q{Upload a file to the cloud and email a link for the attachment}
15
- spec.homepage = ""
15
+ spec.homepage = "https://github.com/parasquid/upcloudify"
16
16
  spec.license = "LGPLv3"
17
17
 
18
18
  spec.files = `git ls-files`.split($/)
@@ -23,6 +23,8 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency "bundler", "~> 1.3"
24
24
  spec.add_development_dependency "rake"
25
25
  spec.add_development_dependency "pry"
26
+ spec.add_development_dependency "rspec"
27
+ spec.add_development_dependency "guard-rspec"
26
28
 
27
29
  spec.add_dependency 'gem_config'
28
30
  spec.add_dependency 'pony'
metadata CHANGED
@@ -1,139 +1,167 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: upcloudify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - parasquid
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-09 00:00:00.000000000 Z
11
+ date: 2015-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pry
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
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: guard-rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
53
81
  - !ruby/object:Gem::Version
54
82
  version: '0'
55
83
  - !ruby/object:Gem::Dependency
56
84
  name: gem_config
57
85
  requirement: !ruby/object:Gem::Requirement
58
86
  requirements:
59
- - - '>='
87
+ - - ">="
60
88
  - !ruby/object:Gem::Version
61
89
  version: '0'
62
90
  type: :runtime
63
91
  prerelease: false
64
92
  version_requirements: !ruby/object:Gem::Requirement
65
93
  requirements:
66
- - - '>='
94
+ - - ">="
67
95
  - !ruby/object:Gem::Version
68
96
  version: '0'
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: pony
71
99
  requirement: !ruby/object:Gem::Requirement
72
100
  requirements:
73
- - - '>='
101
+ - - ">="
74
102
  - !ruby/object:Gem::Version
75
103
  version: '0'
76
104
  type: :runtime
77
105
  prerelease: false
78
106
  version_requirements: !ruby/object:Gem::Requirement
79
107
  requirements:
80
- - - '>='
108
+ - - ">="
81
109
  - !ruby/object:Gem::Version
82
110
  version: '0'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: zippy
85
113
  requirement: !ruby/object:Gem::Requirement
86
114
  requirements:
87
- - - '>='
115
+ - - ">="
88
116
  - !ruby/object:Gem::Version
89
117
  version: '0'
90
118
  type: :runtime
91
119
  prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
94
- - - '>='
122
+ - - ">="
95
123
  - !ruby/object:Gem::Version
96
124
  version: '0'
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: zip-zip
99
127
  requirement: !ruby/object:Gem::Requirement
100
128
  requirements:
101
- - - '>='
129
+ - - ">="
102
130
  - !ruby/object:Gem::Version
103
131
  version: '0'
104
132
  type: :runtime
105
133
  prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
- - - '>='
136
+ - - ">="
109
137
  - !ruby/object:Gem::Version
110
138
  version: '0'
111
139
  - !ruby/object:Gem::Dependency
112
140
  name: fog
113
141
  requirement: !ruby/object:Gem::Requirement
114
142
  requirements:
115
- - - '>='
143
+ - - ">="
116
144
  - !ruby/object:Gem::Version
117
145
  version: '0'
118
146
  type: :runtime
119
147
  prerelease: false
120
148
  version_requirements: !ruby/object:Gem::Requirement
121
149
  requirements:
122
- - - '>='
150
+ - - ">="
123
151
  - !ruby/object:Gem::Version
124
152
  version: '0'
125
153
  - !ruby/object:Gem::Dependency
126
154
  name: activesupport
127
155
  requirement: !ruby/object:Gem::Requirement
128
156
  requirements:
129
- - - '>='
157
+ - - ">="
130
158
  - !ruby/object:Gem::Version
131
159
  version: '0'
132
160
  type: :runtime
133
161
  prerelease: false
134
162
  version_requirements: !ruby/object:Gem::Requirement
135
163
  requirements:
136
- - - '>='
164
+ - - ">="
137
165
  - !ruby/object:Gem::Version
138
166
  version: '0'
139
167
  description: |-
@@ -146,18 +174,23 @@ executables: []
146
174
  extensions: []
147
175
  extra_rdoc_files: []
148
176
  files:
149
- - .gitignore
177
+ - ".gitignore"
178
+ - ".rspec"
150
179
  - Gemfile
180
+ - Guardfile
151
181
  - LICENSE.txt
152
182
  - README.md
153
183
  - Rakefile
184
+ - lib/monkey_patches.rb
154
185
  - lib/upcloudify.rb
155
186
  - lib/upcloudify/version.rb
156
187
  - sample_app/Gemfile
157
188
  - sample_app/sample.rb
158
189
  - sample_app/views/index.erb
190
+ - spec/spec_helper.rb
191
+ - spec/upcloudify_spec.rb
159
192
  - upcloudify.gemspec
160
- homepage: ''
193
+ homepage: https://github.com/parasquid/upcloudify
161
194
  licenses:
162
195
  - LGPLv3
163
196
  metadata: {}
@@ -167,18 +200,20 @@ require_paths:
167
200
  - lib
168
201
  required_ruby_version: !ruby/object:Gem::Requirement
169
202
  requirements:
170
- - - '>='
203
+ - - ">="
171
204
  - !ruby/object:Gem::Version
172
205
  version: '0'
173
206
  required_rubygems_version: !ruby/object:Gem::Requirement
174
207
  requirements:
175
- - - '>='
208
+ - - ">="
176
209
  - !ruby/object:Gem::Version
177
210
  version: '0'
178
211
  requirements: []
179
212
  rubyforge_project:
180
- rubygems_version: 2.2.2
213
+ rubygems_version: 2.4.8
181
214
  signing_key:
182
215
  specification_version: 4
183
216
  summary: Upload a file to the cloud and email a link for the attachment
184
- test_files: []
217
+ test_files:
218
+ - spec/spec_helper.rb
219
+ - spec/upcloudify_spec.rb