open-uri-s3 1.0.3 → 1.1.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cc0dd3714641f331f462c21387f42a732b47dd5b
4
- data.tar.gz: 7fabe9b95c0425915d13aaba93f65b60eab76297
3
+ metadata.gz: eae0d4c08066f1be7dd933722005605ef95719c8
4
+ data.tar.gz: ae125e095656d6d966bcbcabba34da7302d3dfc1
5
5
  SHA512:
6
- metadata.gz: e4f73d9f4c799bb8e89d6a209f905e030b3f642ffa7b98ce65fa4f6c4b57e7a0aa58a992254b79f364e9cf223ccfcabc6eefc7c8ab2af22296b855e18d512647
7
- data.tar.gz: 17b55cc57754912f189687d0d9306c5afe35ed3b06d48e10aab278e3eb78b5ad8dce167abe76daeb477ed83ddbc0cfcc575b07656f3fcf21299ce628c4b54573
6
+ metadata.gz: 44689a66321b6b5b09e2bc3e782c0a04115862bc1299732dd91bbd2e40e95a1a7acae216351001663abd1788d621da3e0f7aba3c8b6f2b07cae243da22f3e28f
7
+ data.tar.gz: fe9a45ffc34f80734d388374d9c9bc8c5b6d75a99746d20620e46d15f3502e06d0d780c77ba3e144a8d416b6da621ba74ccb985e38e2a9f2f829a486c3e79fea
data/.rspec CHANGED
@@ -1 +1,2 @@
1
1
  --color
2
+ --format documentation
data/Gemfile CHANGED
@@ -2,12 +2,12 @@ source "http://rubygems.org"
2
2
  # Add dependencies required to use your gem here.
3
3
  # Example:
4
4
  # gem "activesupport", ">= 2.3.5"
5
- gem 'aws-sdk'
5
+ gem 'aws-sdk-v1'
6
6
 
7
7
  # Add dependencies to develop your gem here.
8
8
  # Include everything needed to run rake, tests, features, etc.
9
9
  group :development do
10
- gem "rspec", "~> 2.8.0"
10
+ gem "rspec", "~> 3.2.0"
11
11
  gem "yard", "~> 0.7"
12
12
  gem "rdoc", "~> 3.12"
13
13
  gem "bundler", "~> 1.0"
data/README.md CHANGED
@@ -12,6 +12,12 @@ Reading objects:
12
12
  open('s3://my.bucket/public/hello') # returns AWS::S3::S3Object (quacks like IO)
13
13
  ```
14
14
 
15
+ or a safer option (see [this post][open-uri-dangers] on the dangers of using open-uri with user input)
16
+
17
+ ```ruby
18
+ URI('s3://my.bucket/public/hello').read
19
+ ```
20
+
15
21
  Writing objects:
16
22
 
17
23
  ```ruby
@@ -19,7 +25,7 @@ open('s3://my.bucket/public/hello', 'w'){|f| f.write 'Hello world!'}
19
25
  ```
20
26
 
21
27
  ## Contributing to open-uri-s3
22
-
28
+
23
29
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
24
30
  * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
25
31
  * Fork the project.
@@ -32,3 +38,6 @@ open('s3://my.bucket/public/hello', 'w'){|f| f.write 'Hello world!'}
32
38
 
33
39
  Copyright (c) 2013 Erik Terpstra. See LICENSE.txt for
34
40
  further details.
41
+
42
+ [![open-uri-s3 API Documentation](https://dqvhmzwrjy66y.cloudfront.net/assets/badge-d08eb706b0adfe1d16fe2ca9c1e49cbc.png)](https://www.omniref.com/ruby/gems/open-uri-s3)
43
+ [open-uri-dangers]: http://sakurity.com/blog/2015/02/28/openuri.html
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.3
1
+ 1.1.0
data/lib/open-uri-s3.rb CHANGED
@@ -1,15 +1,16 @@
1
- require 'aws-sdk'
1
+ require 'aws-sdk-v1'
2
2
  require 'open-uri'
3
3
  require 'uri'
4
4
 
5
5
  module URI
6
6
  class S3 < Generic
7
+
7
8
  # @return [AWS::S3::S3Object] S3 object (quacks like IO)
8
9
  def open(*args)
9
- s3 = AWS::S3.new
10
+ s3 = ::AWS::S3.new
10
11
  bucket = s3.buckets[self.hostname]
11
12
  if bucket.location_constraint
12
- s3 = AWS::S3.new(s3_endpoint: "s3-#{bucket.location_constraint}.amazonaws.com")
13
+ s3 = ::AWS::S3.new(s3_endpoint: "s3-#{bucket.location_constraint}.amazonaws.com")
13
14
  bucket = s3.buckets[self.hostname]
14
15
  end
15
16
 
@@ -22,6 +23,10 @@ module URI
22
23
 
23
24
  object
24
25
  end
26
+
27
+ def read
28
+ open(to_s).read
29
+ end
25
30
  end
26
31
 
27
32
  @@schemes['S3'] = S3
data/open-uri-s3.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "open-uri-s3"
8
- s.version = "1.0.3"
8
+ s.version = "1.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Erik Terpstra"]
12
- s.date = "2013-11-28"
12
+ s.date = "2015-03-06"
13
13
  s.description = "AWS S3 protocol support for open-uri"
14
14
  s.email = "erterpstra@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -26,36 +26,35 @@ Gem::Specification.new do |s|
26
26
  "VERSION",
27
27
  "lib/open-uri-s3.rb",
28
28
  "open-uri-s3.gemspec",
29
- "spec/open-uri-s3_spec.rb",
30
- "spec/spec_helper.rb"
29
+ "spec/lib/open-uri-s3_spec.rb"
31
30
  ]
32
31
  s.homepage = "http://github.com/eterps/open-uri-s3"
33
32
  s.licenses = ["MIT"]
34
33
  s.require_paths = ["lib"]
35
- s.rubygems_version = "2.0.3"
34
+ s.rubygems_version = "2.0.14"
36
35
  s.summary = "AWS S3 protocol support for open-uri"
37
36
 
38
37
  if s.respond_to? :specification_version then
39
38
  s.specification_version = 4
40
39
 
41
40
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
42
- s.add_runtime_dependency(%q<aws-sdk>, [">= 0"])
43
- s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
41
+ s.add_runtime_dependency(%q<aws-sdk-v1>, [">= 0"])
42
+ s.add_development_dependency(%q<rspec>, ["~> 3.2.0"])
44
43
  s.add_development_dependency(%q<yard>, ["~> 0.7"])
45
44
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
46
45
  s.add_development_dependency(%q<bundler>, ["~> 1.0"])
47
46
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.8"])
48
47
  else
49
- s.add_dependency(%q<aws-sdk>, [">= 0"])
50
- s.add_dependency(%q<rspec>, ["~> 2.8.0"])
48
+ s.add_dependency(%q<aws-sdk-v1>, [">= 0"])
49
+ s.add_dependency(%q<rspec>, ["~> 3.2.0"])
51
50
  s.add_dependency(%q<yard>, ["~> 0.7"])
52
51
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
53
52
  s.add_dependency(%q<bundler>, ["~> 1.0"])
54
53
  s.add_dependency(%q<jeweler>, ["~> 1.8.8"])
55
54
  end
56
55
  else
57
- s.add_dependency(%q<aws-sdk>, [">= 0"])
58
- s.add_dependency(%q<rspec>, ["~> 2.8.0"])
56
+ s.add_dependency(%q<aws-sdk-v1>, [">= 0"])
57
+ s.add_dependency(%q<rspec>, ["~> 3.2.0"])
59
58
  s.add_dependency(%q<yard>, ["~> 0.7"])
60
59
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
61
60
  s.add_dependency(%q<bundler>, ["~> 1.0"])
@@ -0,0 +1,21 @@
1
+ require 'open-uri-s3'
2
+
3
+ describe URI::S3 do
4
+
5
+ let(:uri) { 's3://some-bucket/key/to/object'}
6
+ let(:s3) { instance_double('S3', buckets: buckets) }
7
+ let(:buckets) { {'some-bucket' => bucket} }
8
+ let(:bucket) { double("bucket", objects: objects, location_constraint: false) }
9
+ let(:objects) { {'key/to/object' => object} }
10
+ let(:object) { double('object', read: 'contents') }
11
+
12
+ before do
13
+ allow(AWS::S3).to receive(:new).and_return(s3)
14
+ end
15
+
16
+ describe "#read" do
17
+ it "reads the object" do
18
+ expect(URI(uri).read).to eq 'contents'
19
+ end
20
+ end
21
+ end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: open-uri-s3
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Terpstra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-28 00:00:00.000000000 Z
11
+ date: 2015-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: aws-sdk
14
+ name: aws-sdk-v1
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - '>='
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: 2.8.0
33
+ version: 3.2.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
- version: 2.8.0
40
+ version: 3.2.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: yard
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -111,8 +111,7 @@ files:
111
111
  - VERSION
112
112
  - lib/open-uri-s3.rb
113
113
  - open-uri-s3.gemspec
114
- - spec/open-uri-s3_spec.rb
115
- - spec/spec_helper.rb
114
+ - spec/lib/open-uri-s3_spec.rb
116
115
  homepage: http://github.com/eterps/open-uri-s3
117
116
  licenses:
118
117
  - MIT
@@ -133,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
132
  version: '0'
134
133
  requirements: []
135
134
  rubyforge_project:
136
- rubygems_version: 2.0.3
135
+ rubygems_version: 2.0.14
137
136
  signing_key:
138
137
  specification_version: 4
139
138
  summary: AWS S3 protocol support for open-uri
@@ -1,7 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- describe "OpenUriS3" do
4
- it "fails" do
5
- fail "hey buddy, you should probably rename this file and start specing for real"
6
- end
7
- end
data/spec/spec_helper.rb DELETED
@@ -1,12 +0,0 @@
1
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
- $LOAD_PATH.unshift(File.dirname(__FILE__))
3
- require 'rspec'
4
- require 'open-uri-s3'
5
-
6
- # Requires supporting files with custom matchers and macros, etc,
7
- # in ./support/ and its subdirectories.
8
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
-
10
- RSpec.configure do |config|
11
-
12
- end