aws-s3 0.6.0 → 0.6.1
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.
- data/COPYING +1 -1
- data/Rakefile +2 -2
- data/lib/aws/s3/acl.rb +2 -2
- data/lib/aws/s3/connection.rb +9 -54
- data/lib/aws/s3/exceptions.rb +1 -1
- data/lib/aws/s3/extensions.rb +3 -3
- data/lib/aws/s3/object.rb +2 -2
- data/lib/aws/s3/version.rb +2 -2
- data/test/connection_test.rb +1 -2
- data/test/extensions_test.rb +2 -2
- metadata +2 -2
data/COPYING
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Copyright (c) 2006-
|
2
|
+
# Copyright (c) 2006-2009 Marcel Molina Jr. <marcel@vernix.org>
|
3
3
|
#
|
4
4
|
# Permission is hereby granted, free of charge, to any person obtaining a copy of
|
5
5
|
# this software and associated documentation files (the "Software"), to deal in the
|
data/Rakefile
CHANGED
@@ -208,7 +208,7 @@ namespace :test do
|
|
208
208
|
|
209
209
|
desc 'Check test coverage'
|
210
210
|
task :coverage do
|
211
|
-
system("rcov --sort coverage #{File.join(library_root, 'test/*_test.rb')}")
|
211
|
+
system("rcov -x Library -x support --sort coverage #{File.join(library_root, 'test/*_test.rb')}")
|
212
212
|
show_test_coverage_results
|
213
213
|
end
|
214
214
|
|
@@ -224,7 +224,7 @@ namespace :test do
|
|
224
224
|
|
225
225
|
desc 'Check test coverage of full stack remote tests'
|
226
226
|
task :full_coverage do
|
227
|
-
system("rcov --sort coverage #{File.join(library_root, 'test/remote/*_test.rb')} #{File.join(library_root, 'test/*_test.rb')}")
|
227
|
+
system("rcov -x Library -x support --sort coverage #{File.join(library_root, 'test/remote/*_test.rb')} #{File.join(library_root, 'test/*_test.rb')}")
|
228
228
|
show_test_coverage_results
|
229
229
|
end
|
230
230
|
|
data/lib/aws/s3/acl.rb
CHANGED
@@ -528,7 +528,7 @@ module AWS
|
|
528
528
|
# bucket.acl(bucket.acl)
|
529
529
|
def acl(reload = false)
|
530
530
|
policy = reload.is_a?(ACL::Policy) ? reload : nil
|
531
|
-
|
531
|
+
expirable_memoize(reload) do
|
532
532
|
self.class.acl(name, policy) if policy
|
533
533
|
self.class.acl(name)
|
534
534
|
end
|
@@ -579,7 +579,7 @@ module AWS
|
|
579
579
|
# object.acl(object.acl)
|
580
580
|
def acl(reload = false)
|
581
581
|
policy = reload.is_a?(ACL::Policy) ? reload : nil
|
582
|
-
|
582
|
+
expirable_memoize(reload) do
|
583
583
|
self.class.acl(key, bucket.name, policy) if policy
|
584
584
|
self.class.acl(key, bucket.name)
|
585
585
|
end
|
data/lib/aws/s3/connection.rb
CHANGED
@@ -249,73 +249,28 @@ module AWS
|
|
249
249
|
end
|
250
250
|
|
251
251
|
class Options < Hash #:nodoc:
|
252
|
-
|
253
|
-
def valid_options
|
254
|
-
[:access_key_id, :secret_access_key, :server, :port, :use_ssl, :persistent, :proxy]
|
255
|
-
end
|
256
|
-
end
|
252
|
+
VALID_OPTIONS = [:access_key_id, :secret_access_key, :server, :port, :use_ssl, :persistent, :proxy].freeze
|
257
253
|
|
258
|
-
attr_reader :options
|
259
254
|
def initialize(options = {})
|
260
255
|
super()
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
extract_persistent!
|
265
|
-
extract_server!
|
266
|
-
extract_port!
|
267
|
-
extract_remainder!
|
256
|
+
validate(options)
|
257
|
+
replace(:server => DEFAULT_HOST, :port => (options[:use_ssl] ? 443 : 80))
|
258
|
+
merge!(options)
|
268
259
|
end
|
269
|
-
|
260
|
+
|
270
261
|
def connecting_through_proxy?
|
271
262
|
!self[:proxy].nil?
|
272
263
|
end
|
273
264
|
|
274
265
|
def proxy_settings
|
275
|
-
|
276
|
-
self[:proxy][proxy_key]
|
277
|
-
end
|
266
|
+
self[:proxy].values_at(:host, :port, :user, :password)
|
278
267
|
end
|
279
268
|
|
280
269
|
private
|
281
|
-
def
|
282
|
-
|
283
|
-
end
|
284
|
-
|
285
|
-
def missing_proxy_settings?
|
286
|
-
!self[:proxy].keys.include?(:host)
|
287
|
-
end
|
288
|
-
|
289
|
-
def extract_persistent!
|
290
|
-
self[:persistent] = options.has_key?(:persitent) ? options[:persitent] : false
|
291
|
-
end
|
292
|
-
|
293
|
-
def extract_proxy_settings!
|
294
|
-
self[:proxy] = options.delete(:proxy) if options.include?(:proxy)
|
295
|
-
validate_proxy_settings!
|
296
|
-
end
|
297
|
-
|
298
|
-
def extract_server!
|
299
|
-
self[:server] = options.delete(:server) || DEFAULT_HOST
|
300
|
-
end
|
301
|
-
|
302
|
-
def extract_port!
|
303
|
-
self[:port] = options.delete(:port) || (options[:use_ssl] ? 443 : 80)
|
304
|
-
end
|
305
|
-
|
306
|
-
def extract_remainder!
|
307
|
-
update(options)
|
308
|
-
end
|
309
|
-
|
310
|
-
def validate!
|
311
|
-
invalid_options = options.keys.select {|key| !self.class.valid_options.include?(key)}
|
270
|
+
def validate(options)
|
271
|
+
invalid_options = options.keys - VALID_OPTIONS
|
312
272
|
raise InvalidConnectionOption.new(invalid_options) unless invalid_options.empty?
|
313
|
-
|
314
|
-
|
315
|
-
def validate_proxy_settings!
|
316
|
-
if connecting_through_proxy? && missing_proxy_settings?
|
317
|
-
raise ArgumentError, "Missing proxy settings. Must specify at least :host."
|
318
|
-
end
|
273
|
+
raise ArgumentError, "Missing proxy settings. Must specify at least :host." if options[:proxy] && !options[:proxy][:host]
|
319
274
|
end
|
320
275
|
end
|
321
276
|
end
|
data/lib/aws/s3/exceptions.rb
CHANGED
@@ -58,7 +58,7 @@ module AWS
|
|
58
58
|
class InvalidConnectionOption < InvalidOption
|
59
59
|
def initialize(invalid_options)
|
60
60
|
message = "The following connection options are invalid: #{invalid_options.join(', ')}. " +
|
61
|
-
"The valid connection options are: #{Connection::Options.
|
61
|
+
"The valid connection options are: #{Connection::Options::VALID_OPTIONS.join(', ')}."
|
62
62
|
super(message)
|
63
63
|
end
|
64
64
|
end
|
data/lib/aws/s3/extensions.rb
CHANGED
@@ -133,8 +133,8 @@ module Kernel
|
|
133
133
|
caller[1][/`([^']+)'/, 1]
|
134
134
|
end if RUBY_VERSION > '1.8.7'
|
135
135
|
|
136
|
-
def
|
137
|
-
current_method = RUBY_VERSION
|
136
|
+
def expirable_memoize(reload = false, storage = nil)
|
137
|
+
current_method = RUBY_VERSION > '1.8.7' ? __called_from__ : __method__(1)
|
138
138
|
storage = "@#{storage || current_method}"
|
139
139
|
if reload
|
140
140
|
instance_variable_set(storage, nil)
|
@@ -174,7 +174,7 @@ class Module
|
|
174
174
|
alias_method original_method, method_name
|
175
175
|
module_eval(<<-EVAL, __FILE__, __LINE__)
|
176
176
|
def #{method_name}(reload = false, *args, &block)
|
177
|
-
|
177
|
+
expirable_memoize(reload) do
|
178
178
|
send(:#{original_method}, *args, &block)
|
179
179
|
end
|
180
180
|
end
|
data/lib/aws/s3/object.rb
CHANGED
@@ -485,7 +485,7 @@ module AWS
|
|
485
485
|
reload = options
|
486
486
|
options = {}
|
487
487
|
end
|
488
|
-
|
488
|
+
expirable_memoize(reload) do
|
489
489
|
self.class.stream(key, bucket.name, options, &block)
|
490
490
|
end
|
491
491
|
end
|
@@ -561,7 +561,7 @@ module AWS
|
|
561
561
|
|
562
562
|
def etag(reload = false)
|
563
563
|
return nil unless stored?
|
564
|
-
|
564
|
+
expirable_memoize(reload) do
|
565
565
|
reload ? about(reload)['etag'][1...-1] : attributes['e_tag'][1...-1]
|
566
566
|
end
|
567
567
|
end
|
data/lib/aws/s3/version.rb
CHANGED
data/test/connection_test.rb
CHANGED
@@ -3,7 +3,7 @@ require File.dirname(__FILE__) + '/test_helper'
|
|
3
3
|
class ConnectionTest < Test::Unit::TestCase
|
4
4
|
attr_reader :keys
|
5
5
|
def setup
|
6
|
-
@keys = {:access_key_id => '123', :secret_access_key => 'abc'}
|
6
|
+
@keys = {:access_key_id => '123', :secret_access_key => 'abc'}.freeze
|
7
7
|
end
|
8
8
|
|
9
9
|
def test_creating_a_connection
|
@@ -207,7 +207,6 @@ class ConnectionOptionsTest < Test::Unit::TestCase
|
|
207
207
|
private
|
208
208
|
def assert_key_transfered(key, value, options)
|
209
209
|
assert_equal value, options[key]
|
210
|
-
assert !options.instance_variable_get('@options').has_key?(key)
|
211
210
|
end
|
212
211
|
|
213
212
|
def generate_options(options = {})
|
data/test/extensions_test.rb
CHANGED
@@ -144,13 +144,13 @@ end if RUBY_VERSION < '1.8.7'
|
|
144
144
|
class ModuleExtensionsTest < Test::Unit::TestCase
|
145
145
|
class Foo
|
146
146
|
def foo(reload = false)
|
147
|
-
|
147
|
+
expirable_memoize(reload) do
|
148
148
|
Time.now
|
149
149
|
end
|
150
150
|
end
|
151
151
|
|
152
152
|
def bar(reload = false)
|
153
|
-
|
153
|
+
expirable_memoize(reload, :baz) do
|
154
154
|
Time.now
|
155
155
|
end
|
156
156
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-s3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marcel Molina Jr.
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-04-
|
12
|
+
date: 2009-04-20 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|