asset_cloud 2.5.1 → 2.7.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
  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