stashify-aws-s3 1.1.0 → 1.2.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 +4 -4
- data/.reek.yml +0 -3
- data/.rubocop.yml +0 -3
- data/Gemfile.lock +7 -7
- data/README.md +23 -4
- data/lib/stashify/aws/s3/version.rb +1 -1
- data/lib/stashify/directory/aws/s3.rb +4 -0
- data/lib/stashify/file/aws/s3.rb +3 -0
- data/stashify-aws-s3.gemspec +39 -0
- metadata +5 -5
- data/lib/stashify/aws/s3.rb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce717afda57c7d79f38076ed0a99d31a30addd862130127c39e0b1cd4e9b74e0
|
4
|
+
data.tar.gz: 4d8201ac2421c564ac6ddd315d6423349d6f9ec9be14fc3fa106f5884ce1ba3c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 105eeb1a4271a585ffea9e05dd8accfc38ad2cf95b36d75d8c43f40e202320f7c45fd3ca3fd20fafe0a27b4470cb8b349576686867ce6063f51b1f9d3ff71272
|
7
|
+
data.tar.gz: ee603c5f9313be928fde0d3fb470595af324d6b21c042fb62e6103650b442675a63bbf7ec2d4aae550b246d1594ee986333d96335f2a39660e9206400aa28294
|
data/.reek.yml
CHANGED
data/.rubocop.yml
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
stashify-aws-s3 (1.
|
4
|
+
stashify-aws-s3 (1.2.0)
|
5
5
|
aws-sdk-s3 (~> 1.119.2)
|
6
|
-
stashify (~> 3.1
|
6
|
+
stashify (~> 3.2.1)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
11
|
ast (2.4.2)
|
12
12
|
aws-eventstream (1.2.0)
|
13
|
-
aws-partitions (1.
|
13
|
+
aws-partitions (1.743.0)
|
14
14
|
aws-sdk-core (3.171.0)
|
15
15
|
aws-eventstream (~> 1, >= 1.0.2)
|
16
16
|
aws-partitions (~> 1, >= 1.651.0)
|
@@ -63,7 +63,7 @@ GEM
|
|
63
63
|
nenv (~> 0.1)
|
64
64
|
shellany (~> 0.0)
|
65
65
|
parallel (1.22.1)
|
66
|
-
parser (3.2.
|
66
|
+
parser (3.2.2.0)
|
67
67
|
ast (~> 2.4.1)
|
68
68
|
pry (0.14.2)
|
69
69
|
coderay (~> 1.1)
|
@@ -93,21 +93,21 @@ GEM
|
|
93
93
|
diff-lcs (>= 1.2.0, < 2.0)
|
94
94
|
rspec-support (~> 3.12.0)
|
95
95
|
rspec-support (3.12.0)
|
96
|
-
rubocop (1.
|
96
|
+
rubocop (1.49.0)
|
97
97
|
json (~> 2.3)
|
98
98
|
parallel (~> 1.10)
|
99
99
|
parser (>= 3.2.0.0)
|
100
100
|
rainbow (>= 2.2.2, < 4.0)
|
101
101
|
regexp_parser (>= 1.8, < 3.0)
|
102
102
|
rexml (>= 3.2.5, < 4.0)
|
103
|
-
rubocop-ast (>= 1.
|
103
|
+
rubocop-ast (>= 1.28.0, < 2.0)
|
104
104
|
ruby-progressbar (~> 1.7)
|
105
105
|
unicode-display_width (>= 2.4.0, < 3.0)
|
106
106
|
rubocop-ast (1.28.0)
|
107
107
|
parser (>= 3.2.1.0)
|
108
108
|
ruby-progressbar (1.13.0)
|
109
109
|
shellany (0.0.1)
|
110
|
-
stashify (3.1
|
110
|
+
stashify (3.2.1)
|
111
111
|
stashify-contract (1.0.1)
|
112
112
|
rantly (~> 2.0.0)
|
113
113
|
rspec (~> 3.0)
|
data/README.md
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
# Stashify::Aws::S3
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
TODO: Delete this and the text above, and describe your gem
|
3
|
+
This is an implementation of the [Stashify](https://rubydoc.info/gems/stashify) abstraction for AWS S3. It operates under the assumption that the "/" in file names has the typical meaning of a path separater.
|
6
4
|
|
7
5
|
## Installation
|
8
6
|
|
@@ -22,7 +20,28 @@ Or install it yourself as:
|
|
22
20
|
|
23
21
|
## Usage
|
24
22
|
|
25
|
-
|
23
|
+
This implementation is built on top of an instance of `Aws::S3::Bucket`. The following usage is an abbreviated form to illustrate how to engage in this particular library. For a more extensive example see [Stashify's Usage](https://rubydoc.info/gems/stashify#usage).
|
24
|
+
|
25
|
+
```ruby
|
26
|
+
> require "aws-sdk-s3"
|
27
|
+
=> true
|
28
|
+
> s3 = Aws::S3::Resource.new
|
29
|
+
=> #<Aws::S3::Resource:0x0000558723dad2e8 @client=#<Aws::S3::Client>>
|
30
|
+
irb(main):005:0> bucket = s3.bucket("some-bucket")
|
31
|
+
=>
|
32
|
+
#<Aws::S3::Bucket:0x0000558723f5a6e0
|
33
|
+
...
|
34
|
+
> file.contents
|
35
|
+
=> "foo"
|
36
|
+
> require "stashify/directory/aws/s3"
|
37
|
+
=> true
|
38
|
+
> dir = Stashify::Directory::AWS::S3.new(bucket: bucket, path: "path/to")
|
39
|
+
=>
|
40
|
+
#<Stashify::Directory::AWS::S3:0x000055872460c628
|
41
|
+
...
|
42
|
+
> dir.find("file") == file
|
43
|
+
=> true
|
44
|
+
```
|
26
45
|
|
27
46
|
## Development
|
28
47
|
|
@@ -6,6 +6,10 @@ require "stashify/file/aws/s3"
|
|
6
6
|
module Stashify
|
7
7
|
class Directory
|
8
8
|
module AWS
|
9
|
+
# An implementation for interacting with AWS S3 buckets as if
|
10
|
+
# they had directories with "/" as a path separator. In
|
11
|
+
# addition to a path, it also needs a Aws::S3::Bucket object
|
12
|
+
# representing the bucket the file resides within.
|
9
13
|
class S3 < Stashify::Directory
|
10
14
|
attr_reader :bucket, :path
|
11
15
|
|
data/lib/stashify/file/aws/s3.rb
CHANGED
@@ -5,6 +5,9 @@ require "stashify/file"
|
|
5
5
|
module Stashify
|
6
6
|
class File
|
7
7
|
module AWS
|
8
|
+
# An implementation for interacting with files in AWS S3
|
9
|
+
# buckets. The constructor needs an instance of Aws::S3::Bucket
|
10
|
+
# order to know which bucket to interact with.
|
8
11
|
class S3 < Stashify::File
|
9
12
|
def initialize(bucket:, path:)
|
10
13
|
@bucket = bucket
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "lib/stashify/aws/s3/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "stashify-aws-s3"
|
7
|
+
spec.version = Stashify::AWS::S3::VERSION
|
8
|
+
spec.authors = ["Lambda Null"]
|
9
|
+
spec.email = ["lambda.null.42@gmail.com"]
|
10
|
+
|
11
|
+
spec.summary = "An AWS S3 implementation of the Stashify abstraction"
|
12
|
+
spec.description = "Interact with AWS S3 using the common building blocks provided by Stashify"
|
13
|
+
spec.homepage = "https://github.com/Lambda-Null/stashify-aws-s3"
|
14
|
+
spec.license = "MIT"
|
15
|
+
spec.required_ruby_version = ">= 2.6.0"
|
16
|
+
|
17
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
18
|
+
spec.metadata["source_code_uri"] = spec.homepage
|
19
|
+
|
20
|
+
# Specify which files should be added to the gem when it is released.
|
21
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
22
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
23
|
+
`git ls-files -z`.split("\x0").reject do |f|
|
24
|
+
(f == __FILE__) || f.match(%r{\A(?:(?:test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
|
25
|
+
end
|
26
|
+
end
|
27
|
+
spec.bindir = "exe"
|
28
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
29
|
+
spec.require_paths = ["lib"]
|
30
|
+
|
31
|
+
# Uncomment to register a new dependency of your gem
|
32
|
+
# spec.add_dependency "example-gem", "~> 1.0"
|
33
|
+
spec.add_dependency "aws-sdk-s3", "~> 1.119.2"
|
34
|
+
spec.add_dependency "stashify", "~> 3.2.1"
|
35
|
+
|
36
|
+
# For more information and examples about making a new gem, checkout our
|
37
|
+
# guide at: https://bundler.io/guides/creating_gem.html
|
38
|
+
spec.metadata["rubygems_mfa_required"] = "true"
|
39
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stashify-aws-s3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lambda Null
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-04-
|
11
|
+
date: 2023-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-s3
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 3.1
|
33
|
+
version: 3.2.1
|
34
34
|
type: :runtime
|
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: 3.1
|
40
|
+
version: 3.2.1
|
41
41
|
description: Interact with AWS S3 using the common building blocks provided by Stashify
|
42
42
|
email:
|
43
43
|
- lambda.null.42@gmail.com
|
@@ -57,11 +57,11 @@ files:
|
|
57
57
|
- Rakefile
|
58
58
|
- bin/console
|
59
59
|
- bin/setup
|
60
|
-
- lib/stashify/aws/s3.rb
|
61
60
|
- lib/stashify/aws/s3/version.rb
|
62
61
|
- lib/stashify/directory/aws/s3.rb
|
63
62
|
- lib/stashify/file/aws/s3.rb
|
64
63
|
- sig/stashify/aws/s3.rbs
|
64
|
+
- stashify-aws-s3.gemspec
|
65
65
|
homepage: https://github.com/Lambda-Null/stashify-aws-s3
|
66
66
|
licenses:
|
67
67
|
- MIT
|