asset_cloud 2.5.3 → 2.6.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: fa8b974322c07bc208a54567997c8b49d4cec0c08519458ac4e205cb84f375d1
4
- data.tar.gz: 7fa58473c81bed77e11b855e4d153e49fbebd07e53af888f976f6b3dae18fd41
3
+ metadata.gz: 134ba5f46359569f492531369197e78de71f48eabc0efef27c60b9f2a9b2a4fd
4
+ data.tar.gz: 28edd6a34bfb58f3fe796c697a0c58855a65f117c489a4d427711b88386b2df0
5
5
  SHA512:
6
- metadata.gz: 8fcec64888039982e1e435d39c8ec50684aeb661eeeebcbbc7471499cb8b5a9ec0d29bc543eeec394fd3f7682064ac9daa1131b671c7f63210803db0bb8dcb00
7
- data.tar.gz: c8625f3b8ce74509bb3c54b941c37f016d8bcb0adde0bd4851709f70b1d1deda80565313cc6f2d8255202965f8e686f1116383ee4133264a29afe656ce7f7063
6
+ metadata.gz: 161578c01372d753f3fe15558bc0f2b446e2cdbab75272c48c72bb3ce3e0a94c67616544b712efafc74eac6a7e0e18f69367712e5a37e87a769723177479c0c8
7
+ data.tar.gz: a65784b410afe987d821589a631cf16e4b78795b6e07cebf6b6a4252c5631dc35eaca8a1da8ea2cbe4bf37d3308965bd5ed3a6dafe0c57de37a49489d8e11d4d
@@ -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'
data/History.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Asset Cloud Version History
2
2
 
3
+ ## Version 2.6.0, 2020-05-22
4
+
5
+ * Add checksum to metadata (https://github.com/Shopify/asset_cloud/pull/57)
6
+
7
+ **Note:** There are versions between 2.2.2 and 2.6.0 not covered by the History.
8
+
3
9
  ## Version 2.2.2, 2016-02-11
4
10
 
5
11
  * 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 algorithms is documented (e.g. MD5)
13
+ and is not expected to change.
14
+
7
15
  == Installation
8
16
 
9
17
  === as a Gem
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.3"
5
+ s.version = "2.6.0"
6
6
 
7
7
  s.authors = %w(Shopify)
8
8
  s.summary = %q{An abstraction layer around arbitrary and diverse asset stores.}
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
23
23
 
24
24
  s.add_development_dependency 'rspec'
25
25
  s.add_development_dependency 'rake'
26
- s.add_development_dependency 'mocha'
27
26
  s.add_development_dependency 'pry'
28
27
  s.add_development_dependency 'pry-byebug'
28
+ s.add_development_dependency 'rubocop-shopify'
29
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
@@ -1,6 +1,6 @@
1
1
  module AssetCloud
2
2
  class Metadata
3
- attr_accessor :exist, :size, :created_at, :updated_at, :value_hash
3
+ attr_accessor :exist, :size, :created_at, :updated_at, :value_hash, :checksum
4
4
 
5
5
  def new?
6
6
  !self.exist
@@ -10,9 +10,16 @@ module AssetCloud
10
10
  self.exist
11
11
  end
12
12
 
13
- def initialize(exist, size = nil, created_at = nil, updated_at = nil, value_hash = nil)
14
- self.exist, self.size, self.created_at, self.updated_at, self.value_hash = exist, size, created_at, updated_at, value_hash
13
+ # rubocop:disable Metrics/ParameterLists
14
+ def initialize(exist, size = nil, created_at = nil, updated_at = nil, value_hash = nil, checksum = nil)
15
+ self.exist = exist
16
+ self.size = size
17
+ self.created_at = created_at
18
+ self.updated_at = updated_at
19
+ self.value_hash = value_hash
20
+ self.checksum = checksum
15
21
  end
22
+ # rubocop:enable Metrics/ParameterLists
16
23
 
17
24
  def self.existing
18
25
  self.new(true)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
 
3
4
  MockRecords = Object.new
@@ -5,7 +6,9 @@ MockRecords = Object.new
5
6
  class MockActiveRecordBucket < AssetCloud::ActiveRecordBucket
6
7
  self.key_attribute = 'name'
7
8
  self.value_attribute = 'body'
9
+
8
10
  protected
11
+
9
12
  def records
10
13
  MockRecords
11
14
  end
@@ -19,49 +22,49 @@ describe AssetCloud::ActiveRecordBucket do
19
22
  directory = File.dirname(__FILE__) + '/files'
20
23
 
21
24
  before do
22
- @cloud = RecordCloud.new(directory , 'http://assets/files' )
25
+ @cloud = RecordCloud.new(directory, 'http://assets/files')
23
26
  @bucket = @cloud.buckets[:stuff]
24
27
  end
25
28
 
26
29
  describe '#ls' do
27
30
  before do
28
- MockRecords.should_receive(:connection).and_return(@mock_connection = double("connection"))
29
- @mock_connection.should_receive(:quote_column_name).with('name').and_return("`name`")
30
- (@mock_record = double("record")).should_receive(:name).and_return('stuff/a1')
31
+ expect(MockRecords).to(receive(:connection).and_return(@mock_connection = double("connection")))
32
+ expect(@mock_connection).to(receive(:quote_column_name).with('name').and_return("`name`"))
33
+ expect(@mock_record = double("record")).to(receive(:name).and_return('stuff/a1'))
31
34
  end
32
35
 
33
36
  it "should return a list of assets which start with the given prefix" do
34
- MockRecords.should_receive(:all).with(:conditions => ["`name` LIKE ?", "stuff/a%"]).and_return([@mock_record])
37
+ expect(MockRecords).to(receive(:all).with(conditions: ["`name` LIKE ?", "stuff/a%"]).and_return([@mock_record]))
35
38
 
36
- @bucket.ls('stuff/a').size.should == 1
39
+ expect(@bucket.ls('stuff/a').size).to(eq(1))
37
40
  end
38
41
 
39
42
  it "should return a list of all assets when a prefix is not given" do
40
- MockRecords.should_receive(:all).with(:conditions => ["`name` LIKE ?", "stuff%"]).and_return([@mock_record])
43
+ expect(MockRecords).to(receive(:all).with(conditions: ["`name` LIKE ?", "stuff%"]).and_return([@mock_record]))
41
44
 
42
- @bucket.ls.size.should == 1
45
+ expect(@bucket.ls.size).to(eq(1))
43
46
  end
44
47
  end
45
48
 
46
49
  describe '#read' do
47
50
  it "should return the value of a key when it exists" do
48
- (@mock_record = double("record")).should_receive(:body).and_return('foo')
49
- MockRecords.should_receive(:first).with(:conditions => {'name' => 'stuff/a1'}).and_return(@mock_record)
51
+ expect(@mock_record = double("record")).to(receive(:body).and_return('foo'))
52
+ expect(MockRecords).to(receive(:first).with(conditions: { 'name' => 'stuff/a1' }).and_return(@mock_record))
50
53
 
51
54
  @bucket.read('stuff/a1')
52
55
  end
53
56
  it "should raise AssetNotFoundError when nothing is there" do
54
- MockRecords.should_receive(:first).with(:conditions => {'name' => 'stuff/a1'}).and_return(nil)
57
+ expect(MockRecords).to(receive(:first).with(conditions: { 'name' => 'stuff/a1' }).and_return(nil))
55
58
 
56
- lambda {@bucket.read('stuff/a1')}.should raise_error(AssetCloud::AssetNotFoundError)
59
+ expect { @bucket.read('stuff/a1') }.to(raise_error(AssetCloud::AssetNotFoundError))
57
60
  end
58
61
  end
59
62
 
60
63
  describe '#write' do
61
64
  it "should write to the DB" do
62
- (@mock_record = double("record")).should_receive(:body=).with('foo').and_return('foo')
63
- @mock_record.should_receive(:save!).and_return(true)
64
- MockRecords.should_receive(:find_or_initialize_by_name).with('stuff/a1').and_return(@mock_record)
65
+ expect(@mock_record = double("record")).to(receive(:body=).with('foo').and_return('foo'))
66
+ expect(@mock_record).to(receive(:save!).and_return(true))
67
+ expect(MockRecords).to(receive(:find_or_initialize_by_name).with('stuff/a1').and_return(@mock_record))
65
68
 
66
69
  @bucket.write('stuff/a1', 'foo')
67
70
  end
@@ -69,8 +72,8 @@ describe AssetCloud::ActiveRecordBucket do
69
72
 
70
73
  describe '#delete' do
71
74
  it "should destroy records" do
72
- (@mock_record = double("record")).should_receive(:destroy).and_return(true)
73
- MockRecords.should_receive(:first).with(:conditions => {'name' => 'stuff/a1'}).and_return(@mock_record)
75
+ expect(@mock_record = double("record")).to(receive(:destroy).and_return(true))
76
+ expect(MockRecords).to(receive(:first).with(conditions: { 'name' => 'stuff/a1' }).and_return(@mock_record))
74
77
 
75
78
  @bucket.delete('stuff/a1')
76
79
  end
@@ -78,18 +81,15 @@ describe AssetCloud::ActiveRecordBucket do
78
81
 
79
82
  describe '#stat' do
80
83
  it "should return appropriate metadata" do
81
- (@mock_record = double("record")).should_receive(:created_at).and_return(1982)
82
- @mock_record.should_receive(:updated_at).and_return(2002)
83
- @mock_record.should_receive(:body).and_return('foo')
84
- MockRecords.should_receive(:first).with(:conditions => {'name' => 'stuff/a1'}).and_return(@mock_record)
84
+ expect(@mock_record = double("record")).to(receive(:created_at).and_return(1982))
85
+ expect(@mock_record).to(receive(:updated_at).and_return(2002))
86
+ expect(@mock_record).to(receive(:body).and_return('foo'))
87
+ expect(MockRecords).to(receive(:first).with(conditions: { 'name' => 'stuff/a1' }).and_return(@mock_record))
85
88
 
86
89
  metadata = @bucket.stat('stuff/a1')
87
- metadata.created_at.should == 1982
88
- metadata.updated_at.should == 2002
89
- metadata.size.should == 3
90
+ expect(metadata.created_at).to(eq(1982))
91
+ expect(metadata.updated_at).to(eq(2002))
92
+ expect(metadata.size).to(eq(3))
90
93
  end
91
94
  end
92
-
93
-
94
-
95
95
  end