asset_cloud 2.7.1 → 2.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +20 -5
  3. data/.github/workflows/cla.yml +22 -0
  4. data/.rubocop.yml +3 -1
  5. data/Gemfile +5 -3
  6. data/History.md +4 -0
  7. data/Rakefile +18 -16
  8. data/asset_cloud.gemspec +19 -18
  9. data/dev.yml +1 -1
  10. data/lib/asset_cloud/asset.rb +17 -13
  11. data/lib/asset_cloud/asset_extension.rb +27 -15
  12. data/lib/asset_cloud/base.rb +77 -72
  13. data/lib/asset_cloud/bucket.rb +5 -2
  14. data/lib/asset_cloud/buckets/active_record_bucket.rb +16 -14
  15. data/lib/asset_cloud/buckets/blackhole_bucket.rb +2 -0
  16. data/lib/asset_cloud/buckets/bucket_chain.rb +38 -31
  17. data/lib/asset_cloud/buckets/file_system_bucket.rb +14 -15
  18. data/lib/asset_cloud/buckets/gcs_bucket.rb +6 -8
  19. data/lib/asset_cloud/buckets/invalid_bucket.rb +9 -6
  20. data/lib/asset_cloud/buckets/memory_bucket.rb +7 -4
  21. data/lib/asset_cloud/buckets/s3_bucket.rb +11 -8
  22. data/lib/asset_cloud/buckets/versioned_memory_bucket.rb +4 -2
  23. data/lib/asset_cloud/callbacks.rb +7 -3
  24. data/lib/asset_cloud/free_key_locator.rb +6 -6
  25. data/lib/asset_cloud/metadata.rb +11 -7
  26. data/lib/asset_cloud/validations.rb +9 -5
  27. data/lib/asset_cloud.rb +23 -21
  28. data/spec/active_record_bucket_spec.rb +27 -26
  29. data/spec/asset_cloud/metadata_spec.rb +4 -2
  30. data/spec/asset_extension_spec.rb +17 -16
  31. data/spec/asset_spec.rb +27 -21
  32. data/spec/base_spec.rb +93 -92
  33. data/spec/blackhole_bucket_spec.rb +12 -11
  34. data/spec/bucket_chain_spec.rb +61 -56
  35. data/spec/bucket_spec.rb +6 -5
  36. data/spec/callbacks_spec.rb +41 -39
  37. data/spec/file_system_spec.rb +25 -24
  38. data/spec/find_free_key_spec.rb +16 -17
  39. data/spec/gcs_bucket_remote_spec.rb +23 -22
  40. data/spec/gcs_bucket_spec.rb +48 -60
  41. data/spec/memory_bucket_spec.rb +12 -11
  42. data/spec/mock_s3_interface.rb +17 -6
  43. data/spec/remote_s3_bucket_spec.rb +31 -28
  44. data/spec/s3_bucket_spec.rb +19 -17
  45. data/spec/spec_helper.rb +8 -7
  46. data/spec/validations_spec.rb +13 -12
  47. data/spec/versioned_memory_bucket_spec.rb +11 -10
  48. metadata +9 -32
  49. data/.github/probots.yml +0 -2
  50. data/.rubocop_todo.yml +0 -326
@@ -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.1
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: 2022-03-23 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"
104
103
  - ".github/workflows/ci.yml"
104
+ - ".github/workflows/cla.yml"
105
105
  - ".gitignore"
106
106
  - ".rubocop.yml"
107
- - ".rubocop_todo.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.2.20
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