asset_cloud 2.5.1 → 2.7.0

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
  SHA256:
3
- metadata.gz: a71b62c2f478fc40fdb09ab52eccfe6ca023710082b69c656a7be5e5e73b78a2
4
- data.tar.gz: 813c07e4b4e89d17fde3488d2f8d127d843cdeea5ae9f3d4310b3eae52bd32fa
3
+ metadata.gz: 8573a0d845bd6022d3540cbb6e28027637bea815896060a6637ed70402fb0614
4
+ data.tar.gz: df5f502bd556e2414ee896327ba18c54ce679faa2a2ebcf5b50a630803454719
5
5
  SHA512:
6
- metadata.gz: 5665996149043348177e3f15f5d95d83ee98b074ca28f8650a20dd9a5fa5a8a3102465602620f2289a72202128c7cdd53fe2c91c5cf9bcfbf1095a4dadedfca2
7
- data.tar.gz: d5f61fa661547b5851e99ce6db394aa3930640d94e83bd59b13edc436f06394f97dffd75ccf5c67306624132f3b8a33730987febf66d5f61e55c36c075bbd94c
6
+ metadata.gz: 7302dd7d0e4e4ca392b344c530d3ebd3e610c25e5e6aa45658582944e2333ca66371e511e911f93e38f471815fb184a7d2c52d38dadfdda172a33ff7ff90e6ec
7
+ data.tar.gz: 91a7fcfaf2dddbb1b855d6b25cadd563c414e09a625ceafdaaecf68faf07d4b89a6e80b89ab9cd2f264098f3ab9f1f387cf08f8ec8bcde19b67179045989bf40
@@ -0,0 +1,3 @@
1
+ inherit_gem:
2
+ rubocop-shopify: rubocop.yml
3
+ inherit_from: .rubocop_todo.yml
@@ -0,0 +1,326 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2020-05-22 10:33:52 -0400 using RuboCop version 0.82.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 7
10
+ # Cop supports --auto-correct.
11
+ # Configuration parameters: AllowAdjacentOneLineDefs, NumberOfEmptyLines.
12
+ Layout/EmptyLineBetweenDefs:
13
+ Exclude:
14
+ - 'lib/asset_cloud/asset_extension.rb'
15
+ - 'lib/asset_cloud/buckets/bucket_chain.rb'
16
+
17
+ # Offense count: 1
18
+ # Cop supports --auto-correct.
19
+ # Configuration parameters: EnforcedStyle.
20
+ # SupportedStyles: empty_lines, no_empty_lines
21
+ Layout/EmptyLinesAroundBlockBody:
22
+ Exclude:
23
+ - 'lib/asset_cloud/callbacks.rb'
24
+
25
+ # Offense count: 4
26
+ # Cop supports --auto-correct.
27
+ # Configuration parameters: EnforcedStyle.
28
+ # SupportedStyles: empty_lines, empty_lines_except_namespace, empty_lines_special, no_empty_lines, beginning_only, ending_only
29
+ Layout/EmptyLinesAroundClassBody:
30
+ Exclude:
31
+ - 'lib/asset_cloud/base.rb'
32
+ - 'lib/asset_cloud/buckets/bucket_chain.rb'
33
+ - 'lib/asset_cloud/buckets/file_system_bucket.rb'
34
+ - 'lib/asset_cloud/buckets/versioned_memory_bucket.rb'
35
+
36
+ # Offense count: 6
37
+ # Cop supports --auto-correct.
38
+ # Configuration parameters: EnforcedStyle.
39
+ # SupportedStyles: empty_lines, empty_lines_except_namespace, empty_lines_special, no_empty_lines
40
+ Layout/EmptyLinesAroundModuleBody:
41
+ Exclude:
42
+ - 'lib/asset_cloud/asset.rb'
43
+ - 'lib/asset_cloud/base.rb'
44
+ - 'lib/asset_cloud/buckets/bucket_chain.rb'
45
+ - 'lib/asset_cloud/buckets/file_system_bucket.rb'
46
+ - 'lib/asset_cloud/free_key_locator.rb'
47
+
48
+ # Offense count: 2
49
+ # Cop supports --auto-correct.
50
+ # Configuration parameters: AllowForAlignment, AllowBeforeTrailingComments, ForceEqualSignAlignment.
51
+ Layout/ExtraSpacing:
52
+ Exclude:
53
+ - 'lib/asset_cloud/base.rb'
54
+
55
+ # Offense count: 9
56
+ # Cop supports --auto-correct.
57
+ # Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
58
+ # URISchemes: http, https
59
+ Layout/LineLength:
60
+ Max: 187
61
+
62
+ # Offense count: 1
63
+ # Cop supports --auto-correct.
64
+ Layout/RescueEnsureAlignment:
65
+ Exclude:
66
+ - 'lib/asset_cloud/buckets/bucket_chain.rb'
67
+
68
+ # Offense count: 5
69
+ # Cop supports --auto-correct.
70
+ Layout/SpaceAfterComma:
71
+ Exclude:
72
+ - 'lib/asset_cloud/asset.rb'
73
+ - 'lib/asset_cloud/base.rb'
74
+ - 'lib/asset_cloud/buckets/bucket_chain.rb'
75
+ - 'lib/asset_cloud/buckets/memory_bucket.rb'
76
+
77
+ # Offense count: 7
78
+ # Cop supports --auto-correct.
79
+ # Configuration parameters: EnforcedStyle.
80
+ # SupportedStyles: space, no_space
81
+ Layout/SpaceAroundEqualsInParameterDefault:
82
+ Exclude:
83
+ - 'lib/asset_cloud/base.rb'
84
+ - 'lib/asset_cloud/bucket.rb'
85
+ - 'lib/asset_cloud/buckets/active_record_bucket.rb'
86
+ - 'lib/asset_cloud/buckets/bucket_chain.rb'
87
+ - 'lib/asset_cloud/buckets/memory_bucket.rb'
88
+
89
+ # Offense count: 3
90
+ # Cop supports --auto-correct.
91
+ # Configuration parameters: AllowForAlignment, EnforcedStyleForExponentOperator.
92
+ # SupportedStylesForExponentOperator: space, no_space
93
+ Layout/SpaceAroundOperators:
94
+ Exclude:
95
+ - 'lib/asset_cloud/base.rb'
96
+ - 'lib/asset_cloud/buckets/bucket_chain.rb'
97
+
98
+ # Offense count: 22
99
+ # Cop supports --auto-correct.
100
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
101
+ # SupportedStyles: space, no_space
102
+ # SupportedStylesForEmptyBraces: space, no_space
103
+ Layout/SpaceInsideBlockBraces:
104
+ Exclude:
105
+ - 'lib/asset_cloud/base.rb'
106
+ - 'lib/asset_cloud/buckets/bucket_chain.rb'
107
+
108
+ # Offense count: 2
109
+ # Cop supports --auto-correct.
110
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
111
+ # SupportedStyles: space, no_space, compact
112
+ # SupportedStylesForEmptyBraces: space, no_space
113
+ Layout/SpaceInsideHashLiteralBraces:
114
+ Exclude:
115
+ - 'lib/asset_cloud/buckets/active_record_bucket.rb'
116
+
117
+ # Offense count: 9
118
+ # Configuration parameters: AllowSafeAssignment.
119
+ Lint/AssignmentInCondition:
120
+ Exclude:
121
+ - 'lib/asset_cloud/asset.rb'
122
+ - 'lib/asset_cloud/base.rb'
123
+ - 'lib/asset_cloud/buckets/active_record_bucket.rb'
124
+ - 'lib/asset_cloud/buckets/bucket_chain.rb'
125
+ - 'lib/asset_cloud/buckets/s3_bucket.rb'
126
+
127
+ # Offense count: 2
128
+ Lint/DuplicateMethods:
129
+ Exclude:
130
+ - 'lib/asset_cloud/asset.rb'
131
+
132
+ # Offense count: 1
133
+ Lint/IneffectiveAccessModifier:
134
+ Exclude:
135
+ - 'lib/asset_cloud/base.rb'
136
+
137
+ # Offense count: 1
138
+ # Configuration parameters: AllowComments.
139
+ Lint/SuppressedException:
140
+ Exclude:
141
+ - 'lib/asset_cloud/buckets/file_system_bucket.rb'
142
+
143
+ # Offense count: 1
144
+ # Cop supports --auto-correct.
145
+ # Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments.
146
+ Lint/UnusedBlockArgument:
147
+ Exclude:
148
+ - 'lib/asset_cloud/buckets/memory_bucket.rb'
149
+
150
+ # Offense count: 9
151
+ # Cop supports --auto-correct.
152
+ # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods, IgnoreNotImplementedMethods.
153
+ Lint/UnusedMethodArgument:
154
+ Exclude:
155
+ - 'lib/asset_cloud/base.rb'
156
+ - 'lib/asset_cloud/buckets/blackhole_bucket.rb'
157
+ - 'lib/asset_cloud/buckets/bucket_chain.rb'
158
+ - 'lib/asset_cloud/buckets/invalid_bucket.rb'
159
+
160
+ # Offense count: 6
161
+ Lint/UselessAssignment:
162
+ Exclude:
163
+ - 'lib/asset_cloud/buckets/bucket_chain.rb'
164
+ - 'lib/asset_cloud/buckets/file_system_bucket.rb'
165
+ - 'spec/gcs_bucket_spec.rb'
166
+
167
+ # Offense count: 1
168
+ Naming/ConstantName:
169
+ Exclude:
170
+ - 'lib/asset_cloud/buckets/invalid_bucket.rb'
171
+
172
+ # Offense count: 2
173
+ # Cop supports --auto-correct.
174
+ # Configuration parameters: EnforcedStyle.
175
+ # SupportedStyles: always, conditionals
176
+ Style/AndOr:
177
+ Exclude:
178
+ - 'lib/asset_cloud/asset.rb'
179
+ - 'lib/asset_cloud/buckets/active_record_bucket.rb'
180
+
181
+ # Offense count: 1
182
+ # Cop supports --auto-correct.
183
+ # Configuration parameters: EnforcedStyle, AllowInnerBackticks.
184
+ # SupportedStyles: backticks, percent_x, mixed
185
+ Style/CommandLiteral:
186
+ Exclude:
187
+ - 'asset_cloud.gemspec'
188
+
189
+ # Offense count: 1
190
+ # Cop supports --auto-correct.
191
+ # Configuration parameters: EnforcedStyle, SingleLineConditionsOnly, IncludeTernaryExpressions.
192
+ # SupportedStyles: assign_to_condition, assign_inside_condition
193
+ Style/ConditionalAssignment:
194
+ Exclude:
195
+ - 'lib/asset_cloud/base.rb'
196
+
197
+ # Offense count: 22
198
+ # Cop supports --auto-correct.
199
+ # Configuration parameters: EnforcedStyle.
200
+ # SupportedStyles: always, always_true, never
201
+ Style/FrozenStringLiteralComment:
202
+ Enabled: false
203
+
204
+ # Offense count: 3
205
+ # Cop supports --auto-correct.
206
+ # Configuration parameters: EnforcedStyle, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
207
+ # SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys
208
+ Style/HashSyntax:
209
+ Exclude:
210
+ - 'lib/asset_cloud/asset_extension.rb'
211
+ - 'lib/asset_cloud/buckets/active_record_bucket.rb'
212
+
213
+ # Offense count: 17
214
+ # Cop supports --auto-correct.
215
+ # Configuration parameters: IgnoreMacros, IgnoredMethods, IgnoredPatterns, IncludedMacros, AllowParenthesesInMultilineCall, AllowParenthesesInChaining, AllowParenthesesInCamelCaseMethod, EnforcedStyle.
216
+ # SupportedStyles: require_parentheses, omit_parentheses
217
+ Style/MethodCallWithArgsParentheses:
218
+ Exclude:
219
+ - 'Gemfile'
220
+ - 'Rakefile'
221
+ - 'asset_cloud.gemspec'
222
+ - 'lib/asset_cloud.rb'
223
+ - 'lib/asset_cloud/asset.rb'
224
+ - 'lib/asset_cloud/base.rb'
225
+ - 'lib/asset_cloud/buckets/file_system_bucket.rb'
226
+ - 'lib/asset_cloud/metadata.rb'
227
+
228
+ # Offense count: 2
229
+ Style/MethodMissingSuper:
230
+ Exclude:
231
+ - 'lib/asset_cloud/buckets/bucket_chain.rb'
232
+ - 'spec/callbacks_spec.rb'
233
+
234
+ # Offense count: 2
235
+ Style/MissingRespondToMissing:
236
+ Exclude:
237
+ - 'lib/asset_cloud/buckets/bucket_chain.rb'
238
+ - 'spec/callbacks_spec.rb'
239
+
240
+ # Offense count: 2
241
+ # Cop supports --auto-correct.
242
+ Style/ParallelAssignment:
243
+ Exclude:
244
+ - 'lib/asset_cloud/base.rb'
245
+ - 'lib/asset_cloud/bucket.rb'
246
+
247
+ # Offense count: 2
248
+ # Cop supports --auto-correct.
249
+ Style/PerlBackrefs:
250
+ Exclude:
251
+ - 'lib/asset_cloud/base.rb'
252
+ - 'lib/asset_cloud/buckets/s3_bucket.rb'
253
+
254
+ # Offense count: 3
255
+ # Cop supports --auto-correct.
256
+ # Configuration parameters: EnforcedStyle.
257
+ # SupportedStyles: short, verbose
258
+ Style/PreferredHashMethods:
259
+ Exclude:
260
+ - 'lib/asset_cloud/buckets/memory_bucket.rb'
261
+ - 'lib/asset_cloud/buckets/versioned_memory_bucket.rb'
262
+
263
+ # Offense count: 2
264
+ # Cop supports --auto-correct.
265
+ Style/RedundantBegin:
266
+ Exclude:
267
+ - 'lib/asset_cloud/buckets/file_system_bucket.rb'
268
+ - 'lib/asset_cloud/buckets/gcs_bucket.rb'
269
+
270
+ # Offense count: 5
271
+ # Cop supports --auto-correct.
272
+ Style/RedundantPercentQ:
273
+ Exclude:
274
+ - 'asset_cloud.gemspec'
275
+
276
+ # Offense count: 3
277
+ # Cop supports --auto-correct.
278
+ # Configuration parameters: AllowMultipleReturnValues.
279
+ Style/RedundantReturn:
280
+ Exclude:
281
+ - 'lib/asset_cloud/buckets/bucket_chain.rb'
282
+ - 'lib/asset_cloud/buckets/gcs_bucket.rb'
283
+ - 'lib/asset_cloud/buckets/s3_bucket.rb'
284
+
285
+ # Offense count: 14
286
+ # Cop supports --auto-correct.
287
+ Style/RedundantSelf:
288
+ Exclude:
289
+ - 'lib/asset_cloud/asset.rb'
290
+ - 'lib/asset_cloud/buckets/active_record_bucket.rb'
291
+ - 'lib/asset_cloud/callbacks.rb'
292
+ - 'lib/asset_cloud/metadata.rb'
293
+ - 'lib/asset_cloud/validations.rb'
294
+
295
+ # Offense count: 4
296
+ # Cop supports --auto-correct.
297
+ # Configuration parameters: EnforcedStyle, AllowInnerSlashes.
298
+ # SupportedStyles: slashes, percent_r, mixed
299
+ Style/RegexpLiteral:
300
+ Exclude:
301
+ - 'lib/asset_cloud/base.rb'
302
+ - 'lib/asset_cloud/buckets/file_system_bucket.rb'
303
+ - 'lib/asset_cloud/buckets/s3_bucket.rb'
304
+
305
+ # Offense count: 10
306
+ # Cop supports --auto-correct.
307
+ # Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods.
308
+ # AllowedMethods: present?, blank?, presence, try, try!
309
+ Style/SafeNavigation:
310
+ Exclude:
311
+ - 'lib/asset_cloud/base.rb'
312
+
313
+ # Offense count: 2
314
+ # Cop supports --auto-correct.
315
+ # Configuration parameters: AllowIfMethodIsEmpty.
316
+ Style/SingleLineMethods:
317
+ Exclude:
318
+ - 'lib/asset_cloud/asset_extension.rb'
319
+
320
+ # Offense count: 1
321
+ # Cop supports --auto-correct.
322
+ # Configuration parameters: EnforcedStyle.
323
+ # SupportedStyles: use_perl_names, use_english_names
324
+ Style/SpecialGlobalVars:
325
+ Exclude:
326
+ - 'asset_cloud.gemspec'
@@ -4,3 +4,9 @@ before_install:
4
4
  rvm:
5
5
  - '2.5'
6
6
  - '2.6'
7
+ - '2.7'
8
+
9
+ matrix:
10
+ exclude:
11
+ rvm: '2.7'
12
+ gemfile: gemfiles/Gemfile.activerecord52
data/History.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Asset Cloud Version History
2
2
 
3
+ ## Version 2.7.0, 2020-07-15
4
+
5
+ * Add `Asset#write!` which raises on validation failure (https://github.com/Shopify/asset_cloud/pull/67)
6
+
7
+ ## Version 2.6.0, 2020-05-22
8
+
9
+ * Add checksum to metadata (https://github.com/Shopify/asset_cloud/pull/57)
10
+
11
+ **Note:** There are versions between 2.2.2 and 2.6.0 not covered by the History.
12
+
3
13
  ## Version 2.2.2, 2016-02-11
4
14
 
5
15
  * Allow asset_class to be a proc which determines the class to use within a bucket (https://github.com/Shopify/asset_cloud/pull/15)
@@ -4,6 +4,14 @@
4
4
 
5
5
  An abstraction layer around arbitrary and diverse asset stores.
6
6
 
7
+ == Value Hash vs Checksum
8
+
9
+ +value_hash+ is intended as a *private* hash/checksum, not exposed to end users. Its underlying algorithm is private, and
10
+ could change over time so should not be relied on by clients.
11
+
12
+ +checksum+ is intended as a *public* hash/checksum, exposed to end users. Its underlying algorithm is documented (e.g. MD5)
13
+ and is not expected to change.
14
+
7
15
  == Installation
8
16
 
9
17
  === as a Gem
@@ -22,6 +30,18 @@ With GCS Remote test:
22
30
 
23
31
  GCS_PROJECT_ID="<project_id>" GCS_KEY_FILEPATH="<path_to_key>" GCS_BUCKET="<bucket_name>" bundle exec rake spec
24
32
 
33
+ == Releasing
34
+
35
+ Releasing is handled by Shopify's internal Shipit server.
36
+
37
+ After merging a change, a separate PR should be opened to update `History.md` and bump the version
38
+ (following [Semantic Versioning](https://semver.org/))
39
+
40
+ When merged, the new release will be automatically tagged and deployed to rubygems.org.
41
+
42
+ Note that the automatic process does not create a new [release](https://github.com/Shopify/asset_cloud/releases) on
43
+ GitHub.
44
+
25
45
  == Copyright
26
46
 
27
47
  Copyright (c) 2008-2014 Tobias Lütke & Shopify, Inc. Released under the MIT license (see LICENSE for details).
data/Rakefile CHANGED
@@ -5,9 +5,10 @@ require 'rake'
5
5
  require 'rake/testtask'
6
6
  require 'rdoc/task'
7
7
  require 'rspec/core/rake_task'
8
+ require 'rubocop/rake_task'
8
9
 
9
- desc 'Default: run unit tests.'
10
- task :default => [:spec]
10
+ desc 'Default: run unit tests and style checks.'
11
+ task default: [:spec, :rubocop]
11
12
 
12
13
  desc "Run all spec examples"
13
14
  RSpec::Core::RakeTask.new do |t|
@@ -23,3 +24,5 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
23
24
  rdoc.rdoc_files.include('README')
24
25
  rdoc.rdoc_files.include('lib/**/*.rb')
25
26
  end
27
+
28
+ RuboCop::RakeTask.new
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{asset_cloud}
5
- s.version = "2.5.1"
5
+ s.version = "2.7.0"
6
6
 
7
7
  s.authors = %w(Shopify)
8
8
  s.summary = %q{An abstraction layer around arbitrary and diverse asset stores.}
@@ -18,13 +18,12 @@ Gem::Specification.new do |s|
18
18
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
19
19
 
20
20
  s.add_dependency 'activesupport'
21
- s.add_dependency 'addressable'
22
21
 
23
22
  s.metadata['allowed_push_host'] = "https://rubygems.org"
24
23
 
25
24
  s.add_development_dependency 'rspec'
26
25
  s.add_development_dependency 'rake'
27
- s.add_development_dependency 'mocha'
28
26
  s.add_development_dependency 'pry'
29
27
  s.add_development_dependency 'pry-byebug'
28
+ s.add_development_dependency 'rubocop-shopify'
30
29
  end
@@ -89,6 +89,10 @@ module AssetCloud
89
89
  metadata.value_hash
90
90
  end
91
91
 
92
+ def checksum
93
+ metadata.checksum
94
+ end
95
+
92
96
  def delete
93
97
  if new_asset?
94
98
  false