asset_cloud 2.7.0 → 2.7.2

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.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +42 -0
  3. data/.github/workflows/cla.yml +22 -0
  4. data/.rubocop.yml +3 -1
  5. data/Gemfile +5 -3
  6. data/History.md +8 -0
  7. data/README.rdoc +3 -4
  8. data/Rakefile +18 -16
  9. data/asset_cloud.gemspec +19 -18
  10. data/dev.yml +1 -1
  11. data/lib/asset_cloud/asset.rb +17 -13
  12. data/lib/asset_cloud/asset_extension.rb +27 -15
  13. data/lib/asset_cloud/base.rb +77 -72
  14. data/lib/asset_cloud/bucket.rb +5 -2
  15. data/lib/asset_cloud/buckets/active_record_bucket.rb +16 -14
  16. data/lib/asset_cloud/buckets/blackhole_bucket.rb +2 -0
  17. data/lib/asset_cloud/buckets/bucket_chain.rb +38 -31
  18. data/lib/asset_cloud/buckets/file_system_bucket.rb +14 -15
  19. data/lib/asset_cloud/buckets/gcs_bucket.rb +6 -8
  20. data/lib/asset_cloud/buckets/invalid_bucket.rb +9 -6
  21. data/lib/asset_cloud/buckets/memory_bucket.rb +7 -4
  22. data/lib/asset_cloud/buckets/s3_bucket.rb +11 -8
  23. data/lib/asset_cloud/buckets/versioned_memory_bucket.rb +4 -2
  24. data/lib/asset_cloud/callbacks.rb +9 -5
  25. data/lib/asset_cloud/free_key_locator.rb +6 -6
  26. data/lib/asset_cloud/metadata.rb +11 -7
  27. data/lib/asset_cloud/validations.rb +9 -5
  28. data/lib/asset_cloud.rb +23 -21
  29. data/spec/active_record_bucket_spec.rb +27 -26
  30. data/spec/asset_cloud/metadata_spec.rb +4 -2
  31. data/spec/asset_extension_spec.rb +17 -16
  32. data/spec/asset_spec.rb +27 -21
  33. data/spec/base_spec.rb +93 -92
  34. data/spec/blackhole_bucket_spec.rb +12 -11
  35. data/spec/bucket_chain_spec.rb +61 -56
  36. data/spec/bucket_spec.rb +6 -5
  37. data/spec/callbacks_spec.rb +52 -32
  38. data/spec/file_system_spec.rb +25 -24
  39. data/spec/find_free_key_spec.rb +16 -17
  40. data/spec/gcs_bucket_remote_spec.rb +23 -22
  41. data/spec/gcs_bucket_spec.rb +48 -60
  42. data/spec/memory_bucket_spec.rb +12 -11
  43. data/spec/mock_s3_interface.rb +17 -6
  44. data/spec/remote_s3_bucket_spec.rb +31 -28
  45. data/spec/s3_bucket_spec.rb +19 -17
  46. data/spec/spec_helper.rb +8 -7
  47. data/spec/validations_spec.rb +13 -12
  48. data/spec/versioned_memory_bucket_spec.rb +11 -10
  49. metadata +10 -33
  50. data/.github/probots.yml +0 -2
  51. data/.rubocop_todo.yml +0 -326
  52. data/.travis.yml +0 -12
@@ -1,25 +1,26 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
2
+
3
+ require "spec_helper"
3
4
 
4
5
  class MemoryCloud < AssetCloud::Base
5
6
  bucket :memory, AssetCloud::MemoryBucket
6
7
  end
7
8
 
8
9
  describe AssetCloud::MemoryBucket do
9
- directory = File.dirname(__FILE__) + '/files'
10
+ directory = File.dirname(__FILE__) + "/files"
10
11
 
11
12
  before do
12
- @fs = MemoryCloud.new(directory, 'http://assets/files')
13
+ @fs = MemoryCloud.new(directory, "http://assets/files")
13
14
  end
14
15
 
15
- describe 'modifying items in subfolder' do
16
+ describe "modifying items in subfolder" do
16
17
  it "should return nil when file does not exist" do
17
- expect(@fs['memory/essay.txt'].exist?).to(eq(false))
18
+ expect(@fs["memory/essay.txt"].exist?).to(eq(false))
18
19
  end
19
20
 
20
21
  it "should return set content when asked for the same file" do
21
- @fs['memory/essay.txt'] = 'text'
22
- expect(@fs['memory/essay.txt'].value).to(eq('text'))
22
+ @fs["memory/essay.txt"] = "text"
23
+ expect(@fs["memory/essay.txt"].value).to(eq("text"))
23
24
  end
24
25
  end
25
26
 
@@ -29,15 +30,15 @@ describe AssetCloud::MemoryBucket do
29
30
  end
30
31
  end
31
32
 
32
- describe '#ls' do
33
+ describe "#ls" do
33
34
  before do
34
- %w{a b}.each do |letter|
35
- 2.times { |number| @fs.write("memory/#{letter}#{number}", '.') }
35
+ ["a", "b"].each do |letter|
36
+ 2.times { |number| @fs.write("memory/#{letter}#{number}", ".") }
36
37
  end
37
38
  end
38
39
 
39
40
  it "should return a list of assets which start with the given prefix" do
40
- expect(@fs.buckets[:memory].ls('memory/a').size).to(eq(2))
41
+ expect(@fs.buckets[:memory].ls("memory/a").size).to(eq(2))
41
42
  end
42
43
 
43
44
  it "should return a list of all assets when a prefix is not given" do
@@ -1,10 +1,17 @@
1
1
  # frozen_string_literal: true
2
- require 'ostruct'
2
+
3
+ require "ostruct"
3
4
 
4
5
  class MockS3Interface
5
- VALID_ACLS = %w(
6
- private public-read public-read-write authenticated-read aws-exec-read bucket-owner-read bucket-owner-full-control
7
- )
6
+ VALID_ACLS = [
7
+ "private",
8
+ "public-read",
9
+ "public-read-write",
10
+ "authenticated-read",
11
+ "aws-exec-read",
12
+ "bucket-owner-read",
13
+ "bucket-owner-full-control",
14
+ ]
8
15
 
9
16
  attr_reader :bucket_storage
10
17
 
@@ -39,6 +46,7 @@ class MockS3Interface
39
46
 
40
47
  class Bucket
41
48
  attr_reader :name, :client
49
+
42
50
  def initialize(client, name)
43
51
  @client = client
44
52
  @name = name
@@ -62,7 +70,7 @@ class MockS3Interface
62
70
  raise "Invalid ACL `#{options[:acl].inspect}`, must be one of: #{VALID_ACLS.inspect}"
63
71
  end
64
72
 
65
- options[:body] = options[:body].force_encoding(Encoding::BINARY)
73
+ options[:body] = options[:body].dup.force_encoding(Encoding::BINARY)
66
74
 
67
75
  key = options.delete(:key)
68
76
 
@@ -81,6 +89,7 @@ class MockS3Interface
81
89
 
82
90
  class NullS3Object
83
91
  attr_reader :key
92
+
84
93
  def initialize(bucket, key)
85
94
  @bucket = bucket
86
95
  @key = key
@@ -101,6 +110,8 @@ class MockS3Interface
101
110
  class S3Object
102
111
  attr_reader :key, :options
103
112
 
113
+ GottenObject = Struct.new(:body, keyword_init: true)
114
+
104
115
  def initialize(bucket, key, options = {})
105
116
  @bucket = bucket
106
117
  @key = key
@@ -113,7 +124,7 @@ class MockS3Interface
113
124
  end
114
125
 
115
126
  def get(*)
116
- OpenStruct.new(options)
127
+ GottenObject.new(**options)
117
128
  end
118
129
 
119
130
  def put(options = {})
@@ -1,85 +1,88 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
2
+
3
+ require "spec_helper"
3
4
 
4
5
  class RemoteS3Cloud < AssetCloud::Base
5
6
  attr_accessor :s3_connection
7
+
6
8
  bucket :tmp, AssetCloud::S3Bucket
7
9
 
8
10
  def s3_bucket(_key)
9
- s3_connection.bucket(ENV['S3_BUCKET_NAME'])
11
+ s3_connection.bucket(ENV["S3_BUCKET_NAME"])
10
12
  end
11
13
  end
12
14
 
13
- describe 'Remote test for AssetCloud::S3Bucket', if: ENV['AWS_ACCESS_KEY_ID'] && ENV['AWS_SECRET_ACCESS_KEY'] && ENV['S3_BUCKET_NAME'] do
14
- directory = File.dirname(__FILE__) + '/files'
15
+ describe "Remote test for AssetCloud::S3Bucket",
16
+ if: ENV["AWS_ACCESS_KEY_ID"] && ENV["AWS_SECRET_ACCESS_KEY"] && ENV["S3_BUCKET_NAME"] do
17
+ directory = File.dirname(__FILE__) + "/files"
15
18
 
16
19
  before(:all) do
17
20
  Aws.config = {
18
- region: ENV.fetch('AWS_REGION', 'us-east-1'),
21
+ region: ENV.fetch("AWS_REGION", "us-east-1"),
19
22
  credentials: Aws::Credentials.new(
20
- ENV['AWS_ACCESS_KEY_ID'],
21
- ENV['AWS_SECRET_ACCESS_KEY'],
23
+ ENV["AWS_ACCESS_KEY_ID"],
24
+ ENV["AWS_SECRET_ACCESS_KEY"],
22
25
  ),
23
26
  }
24
27
 
25
- @cloud = RemoteS3Cloud.new(directory, 'testing/assets/files')
28
+ @cloud = RemoteS3Cloud.new(directory, "testing/assets/files")
26
29
  @cloud.s3_connection = Aws::S3::Resource.new
27
30
  @bucket = @cloud.buckets[:tmp]
28
31
  end
29
32
 
30
33
  after(:all) do
31
- listing = @bucket.ls('tmp')
34
+ listing = @bucket.ls("tmp")
32
35
  listing.each(&:delete)
33
36
  end
34
37
 
35
38
  it "#ls should return assets with proper keys" do
36
- @cloud['tmp/test1.txt'] = 'test1'
37
- @cloud['tmp/test2.txt'] = 'test2'
39
+ @cloud["tmp/test1.txt"] = "test1"
40
+ @cloud["tmp/test2.txt"] = "test2"
38
41
 
39
- ls = @bucket.ls('tmp')
42
+ ls = @bucket.ls("tmp")
40
43
 
41
44
  expect(ls).to(all(be_an(AssetCloud::Asset)))
42
- expect(ls.map(&:key) - ['tmp/test1.txt', 'tmp/test2.txt']).to(be_empty)
45
+ expect(ls.map(&:key) - ["tmp/test1.txt", "tmp/test2.txt"]).to(be_empty)
43
46
  end
44
47
 
45
48
  it "#ls returns all assets" do
46
- @cloud['tmp/test1.txt'] = 'test1'
47
- @cloud['tmp/test2.txt'] = 'test2'
49
+ @cloud["tmp/test1.txt"] = "test1"
50
+ @cloud["tmp/test2.txt"] = "test2"
48
51
 
49
52
  ls = @bucket.ls
50
53
 
51
54
  expect(ls).to(all(be_an(AssetCloud::Asset)))
52
- expect(ls.map(&:key) - ['tmp/test1.txt', 'tmp/test2.txt']).to(be_empty)
55
+ expect(ls.map(&:key) - ["tmp/test1.txt", "tmp/test2.txt"]).to(be_empty)
53
56
  end
54
57
 
55
58
  it "#delete should ignore errors when deleting" do
56
- @bucket.delete('tmp/a_file_that_should_not_exist.txt')
59
+ @bucket.delete("tmp/a_file_that_should_not_exist.txt")
57
60
  end
58
61
 
59
62
  it "#delete should always return true" do
60
- @cloud['tmp/test1.txt'] = 'test1'
63
+ @cloud["tmp/test1.txt"] = "test1"
61
64
 
62
- expect(@bucket.delete('tmp/test1.txt')).to(eq(true))
65
+ expect(@bucket.delete("tmp/test1.txt")).to(eq(true))
63
66
  end
64
67
 
65
68
  it "#stat should get metadata from S3" do
66
69
  start_time = Time.now
67
- value = 'hello world'
68
- @cloud.build('tmp/new_file.test', value).store
69
- metadata = @bucket.stat('tmp/new_file.test')
70
+ value = "hello world"
71
+ @cloud.build("tmp/new_file.test", value).store
72
+ metadata = @bucket.stat("tmp/new_file.test")
70
73
  expect(metadata.size).to(eq(value.size))
71
74
  expect(metadata.updated_at).to(be >= start_time)
72
75
  end
73
76
 
74
77
  it "#stat a missing asset" do
75
- metadata = @bucket.stat('i_do_not_exist_and_never_will.test')
78
+ metadata = @bucket.stat("i_do_not_exist_and_never_will.test")
76
79
  expect(metadata).to(be_an(AssetCloud::Metadata))
77
80
  expect(metadata.exist).to(be(false))
78
81
  end
79
82
 
80
83
  it "#read " do
81
- value = 'hello world'
82
- key = 'tmp/new_file.txt'
84
+ value = "hello world"
85
+ key = "tmp/new_file.txt"
83
86
  @bucket.write(key, value)
84
87
  data = @bucket.read(key)
85
88
  expect(data).to(eq(value))
@@ -90,11 +93,11 @@ describe 'Remote test for AssetCloud::S3Bucket', if: ENV['AWS_ACCESS_KEY_ID'] &&
90
93
  end
91
94
 
92
95
  it "#reads first bytes when passed options" do
93
- value = 'hello world'
94
- key = 'tmp/new_file.txt'
96
+ value = "hello world"
97
+ key = "tmp/new_file.txt"
95
98
  options = { range: 0...5 }
96
99
  @bucket.write(key, value)
97
100
  data = @bucket.read(key, options)
98
- expect(data).to(eq('hello'))
101
+ expect(data).to(eq("hello"))
99
102
  end
100
103
  end
@@ -1,5 +1,7 @@
1
- require 'spec_helper'
2
- require 'mock_s3_interface'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+ require "mock_s3_interface"
3
5
 
4
6
  class S3Cloud < AssetCloud::Base
5
7
  bucket :tmp, AssetCloud::S3Bucket
@@ -11,19 +13,19 @@ class S3Cloud < AssetCloud::Base
11
13
  end
12
14
 
13
15
  describe AssetCloud::S3Bucket do
14
- directory = File.dirname(__FILE__) + '/files'
16
+ directory = File.dirname(__FILE__) + "/files"
15
17
 
16
18
  before(:all) do
17
- @cloud = S3Cloud.new(directory, 'http://assets/files')
18
- @cloud.s3_connection = MockS3Interface.new('a', 'b')
19
- @cloud.s3_bucket_name = 'asset-cloud-test'
19
+ @cloud = S3Cloud.new(directory, "http://assets/files")
20
+ @cloud.s3_connection = MockS3Interface.new("a", "b")
21
+ @cloud.s3_bucket_name = "asset-cloud-test"
20
22
 
21
23
  @bucket = @cloud.buckets[:tmp]
22
- FileUtils.mkdir_p(directory + '/tmp')
24
+ FileUtils.mkdir_p(directory + "/tmp")
23
25
  end
24
26
 
25
27
  after(:each) do
26
- FileUtils.rm_rf(directory + '/tmp')
28
+ FileUtils.rm_rf(directory + "/tmp")
27
29
  end
28
30
 
29
31
  it "#ls should return assets with proper keys" do
@@ -32,35 +34,35 @@ describe AssetCloud::S3Bucket do
32
34
  end
33
35
  expect_any_instance_of(MockS3Interface::Bucket).to(receive(:objects).and_return(collection))
34
36
 
35
- ls = @bucket.ls('tmp')
37
+ ls = @bucket.ls("tmp")
36
38
 
37
39
  expect(ls).to(all(be_an(AssetCloud::Asset)))
38
- expect(ls.map(&:key) - ['tmp/blah.gif', 'tmp/add_to_cart.gif']).to(be_empty)
40
+ expect(ls.map(&:key) - ["tmp/blah.gif", "tmp/add_to_cart.gif"]).to(be_empty)
39
41
  end
40
42
 
41
43
  it "#delete should not ignore errors when deleting" do
42
44
  expect_any_instance_of(MockS3Interface::NullS3Object).to(receive(:delete).and_raise(StandardError))
43
45
 
44
- expect { @bucket.delete('assets/fail.gif') }.to(raise_error(StandardError))
46
+ expect { @bucket.delete("assets/fail.gif") }.to(raise_error(StandardError))
45
47
  end
46
48
 
47
49
  it "#delete should always return true" do
48
50
  expect_any_instance_of(MockS3Interface::NullS3Object).to(receive(:delete).and_return(nil))
49
51
 
50
- expect(@bucket.delete('assets/fail.gif')).to(eq(true))
52
+ expect(@bucket.delete("assets/fail.gif")).to(eq(true))
51
53
  end
52
54
 
53
55
  it "#stat should get metadata from S3" do
54
- value = 'hello world'
55
- @cloud.build('tmp/new_file.test', value).store
56
- metadata = @bucket.stat('tmp/new_file.test')
56
+ value = "hello world"
57
+ @cloud.build("tmp/new_file.test", value).store
58
+ metadata = @bucket.stat("tmp/new_file.test")
57
59
  expect(metadata.size).to(eq(value.size))
58
60
  expect(metadata.updated_at).to(eq(Time.parse("Mon Aug 27 17:37:51 UTC 2007")))
59
61
  end
60
62
 
61
63
  it "#read " do
62
- value = 'hello world'
63
- key = 'tmp/new_file.txt'
64
+ value = "hello world"
65
+ key = "tmp/new_file.txt"
64
66
  @bucket.write(key, value)
65
67
  data = @bucket.read(key)
66
68
  expect(data).to(eq(value))
data/spec/spec_helper.rb CHANGED
@@ -1,9 +1,10 @@
1
1
  # frozen_string_literal: true
2
- require 'rubygems'
3
- require 'rspec'
4
- require 'pry-byebug' if RUBY_VERSION >= '2.0.0'
5
- require 'active_support/all'
2
+
3
+ require "rubygems"
4
+ require "rspec"
5
+ require "pry-byebug" if RUBY_VERSION >= "2.0.0"
6
+ require "active_support/all"
6
7
  $LOAD_PATH << File.dirname(__FILE__) + "/../lib"
7
- require 'asset_cloud'
8
- require 'asset_cloud/buckets/s3_bucket'
9
- require 'asset_cloud/buckets/gcs_bucket'
8
+ require "asset_cloud"
9
+ require "asset_cloud/buckets/s3_bucket"
10
+ require "asset_cloud/buckets/gcs_bucket"
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
2
+
3
+ require "spec_helper"
3
4
 
4
5
  class ValidatedAsset < AssetCloud::Asset
5
6
  validate :no_cats
@@ -7,8 +8,8 @@ class ValidatedAsset < AssetCloud::Asset
7
8
  private
8
9
 
9
10
  def no_cats
10
- add_error('no cats allowed!') if value =~ /cat/i
11
- add_warning('bad dog!', 'wet dog smell!') if value =~ /dog/i
11
+ add_error("no cats allowed!") if value =~ /cat/i
12
+ add_warning("bad dog!", "wet dog smell!") if value =~ /dog/i
12
13
  end
13
14
  end
14
15
 
@@ -18,24 +19,24 @@ end
18
19
 
19
20
  describe ValidatedAsset do
20
21
  before(:each) do
21
- @cloud = BasicCloud.new(File.dirname(__FILE__) + '/files', 'http://assets/')
22
- @cat = @cloud.build('dog_pound/fido', 'cat')
23
- @dog = @cloud.build('dog_pound/fido', 'dog')
22
+ @cloud = BasicCloud.new(File.dirname(__FILE__) + "/files", "http://assets/")
23
+ @cat = @cloud.build("dog_pound/fido", "cat")
24
+ @dog = @cloud.build("dog_pound/fido", "dog")
24
25
  end
25
26
 
26
27
  describe "#store" do
27
28
  it "should not store the asset unless validations pass" do
28
- expect(@cloud).to(receive(:write).with('dog_pound/fido', 'dog').and_return(true))
29
+ expect(@cloud).to(receive(:write).with("dog_pound/fido", "dog").and_return(true))
29
30
 
30
31
  @cat.store
31
32
  expect(@cat.store).to(eq(false))
32
- expect(@cat.errors).to(eq(['no cats allowed!']))
33
+ expect(@cat.errors).to(eq(["no cats allowed!"]))
33
34
  expect(@dog.store).to(eq(true))
34
35
  end
35
36
 
36
37
  it "should store asset with warnings and save them in the warnings array" do
37
38
  expect(@dog.store).to(eq(true))
38
- expect(@dog.warnings).to(eq(['bad dog!', 'wet dog smell!']))
39
+ expect(@dog.warnings).to(eq(["bad dog!", "wet dog smell!"]))
39
40
  expect(@cat.store).to(eq(false))
40
41
  expect(@cat.warnings).to(eq([]))
41
42
  end
@@ -54,10 +55,10 @@ describe ValidatedAsset do
54
55
  describe "#valid?" do
55
56
  it "should clear errors, run validations, and return validity" do
56
57
  @cat.store
57
- expect(@cat.errors).to(eq(['no cats allowed!']))
58
+ expect(@cat.errors).to(eq(["no cats allowed!"]))
58
59
  expect(@cat.valid?).to(eq(false))
59
- expect(@cat.errors).to(eq(['no cats allowed!']))
60
- @cat.value = 'disguised feline'
60
+ expect(@cat.errors).to(eq(["no cats allowed!"]))
61
+ @cat.value = "disguised feline"
61
62
  expect(@cat.valid?).to(eq(true))
62
63
  expect(@cat.errors).to(be_empty)
63
64
  end
@@ -1,36 +1,37 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
2
+
3
+ require "spec_helper"
3
4
 
4
5
  class VersionedMemoryCloud < AssetCloud::Base
5
6
  bucket :memory, AssetCloud::VersionedMemoryBucket
6
7
  end
7
8
 
8
9
  describe AssetCloud::VersionedMemoryBucket do
9
- directory = File.dirname(__FILE__) + '/files'
10
+ directory = File.dirname(__FILE__) + "/files"
10
11
 
11
12
  before do
12
- @fs = VersionedMemoryCloud.new(directory, 'http://assets/files')
13
- %w{one two three}.each do |content|
13
+ @fs = VersionedMemoryCloud.new(directory, "http://assets/files")
14
+ ["one", "two", "three"].each do |content|
14
15
  @fs.write("memory/foo", content)
15
16
  end
16
17
  end
17
18
 
18
- describe '#versioned?' do
19
+ describe "#versioned?" do
19
20
  it "should return true" do
20
21
  expect(@fs.buckets[:memory].versioned?).to(eq(true))
21
22
  end
22
23
  end
23
24
 
24
- describe '#read_version' do
25
+ describe "#read_version" do
25
26
  it "should return the appropriate data when given a key and version" do
26
- expect(@fs.read_version('memory/foo', 1)).to(eq('one'))
27
- expect(@fs.read_version('memory/foo', 3)).to(eq('three'))
27
+ expect(@fs.read_version("memory/foo", 1)).to(eq("one"))
28
+ expect(@fs.read_version("memory/foo", 3)).to(eq("three"))
28
29
  end
29
30
  end
30
31
 
31
- describe '#versions' do
32
+ describe "#versions" do
32
33
  it "should return a list of available version identifiers for the given key" do
33
- expect(@fs.versions('memory/foo')).to(eq([1, 2, 3]))
34
+ expect(@fs.versions("memory/foo")).to(eq([1, 2, 3]))
34
35
  end
35
36
  end
36
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asset_cloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.0
4
+ version: 2.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-16 00:00:00.000000000 Z
11
+ date: 2023-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rspec
28
+ name: pry
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rake
42
+ name: pry-byebug
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: pry
56
+ name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: pry-byebug
70
+ name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -100,11 +100,10 @@ executables: []
100
100
  extensions: []
101
101
  extra_rdoc_files: []
102
102
  files:
103
- - ".github/probots.yml"
103
+ - ".github/workflows/ci.yml"
104
+ - ".github/workflows/cla.yml"
104
105
  - ".gitignore"
105
106
  - ".rubocop.yml"
106
- - ".rubocop_todo.yml"
107
- - ".travis.yml"
108
107
  - Gemfile
109
108
  - History.md
110
109
  - LICENSE
@@ -172,30 +171,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
172
171
  - !ruby/object:Gem::Version
173
172
  version: '0'
174
173
  requirements: []
175
- rubygems_version: 3.0.3
174
+ rubygems_version: 3.4.12
176
175
  signing_key:
177
176
  specification_version: 4
178
177
  summary: An abstraction layer around arbitrary and diverse asset stores.
179
- test_files:
180
- - spec/active_record_bucket_spec.rb
181
- - spec/asset_cloud/metadata_spec.rb
182
- - spec/asset_extension_spec.rb
183
- - spec/asset_spec.rb
184
- - spec/base_spec.rb
185
- - spec/blackhole_bucket_spec.rb
186
- - spec/bucket_chain_spec.rb
187
- - spec/bucket_spec.rb
188
- - spec/callbacks_spec.rb
189
- - spec/file_system_spec.rb
190
- - spec/files/products/key.txt
191
- - spec/files/versioned_stuff/foo
192
- - spec/find_free_key_spec.rb
193
- - spec/gcs_bucket_remote_spec.rb
194
- - spec/gcs_bucket_spec.rb
195
- - spec/memory_bucket_spec.rb
196
- - spec/mock_s3_interface.rb
197
- - spec/remote_s3_bucket_spec.rb
198
- - spec/s3_bucket_spec.rb
199
- - spec/spec_helper.rb
200
- - spec/validations_spec.rb
201
- - spec/versioned_memory_bucket_spec.rb
178
+ test_files: []
data/.github/probots.yml DELETED
@@ -1,2 +0,0 @@
1
- enabled:
2
- - cla