cloud_encrypted_sync_s3_adapter 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,4 +1,2 @@
1
1
  source 'http://rubygems.org'
2
- gemspec
3
-
4
- gem 'cloud_encrypted_sync', :path => '~/workspace/cloud_encrypted_sync'
2
+ gemspec
data/Gemfile.lock CHANGED
@@ -2,13 +2,8 @@ PATH
2
2
  remote: .
3
3
  specs:
4
4
  cloud_encrypted_sync_s3_adapter (0.1.2)
5
- aws-sdk (~> 1.4.1)
6
- cloud_encrypted_sync (~> 0.1.1)
7
-
8
- PATH
9
- remote: ~/workspace/cloud_encrypted_sync
10
- specs:
11
- cloud_encrypted_sync (0.1.1)
5
+ aws-sdk (~> 1.7.1)
6
+ cloud_encrypted_sync (~> 0.2.0)
12
7
 
13
8
  GEM
14
9
  remote: http://rubygems.org/
@@ -16,16 +11,17 @@ GEM
16
11
  activesupport (3.2.3)
17
12
  i18n (~> 0.6)
18
13
  multi_json (~> 1.0)
19
- aws-sdk (1.4.1)
14
+ aws-sdk (1.7.1)
20
15
  httparty (~> 0.7)
21
16
  json (~> 1.4)
22
17
  nokogiri (>= 1.4.4)
23
18
  uuidtools (~> 2.1)
24
- httparty (0.8.3)
19
+ cloud_encrypted_sync (0.2.0)
20
+ httparty (0.9.0)
25
21
  multi_json (~> 1.0)
26
22
  multi_xml
27
23
  i18n (0.6.0)
28
- json (1.7.3)
24
+ json (1.7.5)
29
25
  metaclass (0.0.1)
30
26
  mocha (0.11.4)
31
27
  metaclass (~> 0.0.1)
@@ -37,14 +33,13 @@ GEM
37
33
  multi_json (~> 1.0)
38
34
  simplecov-html (~> 0.5.3)
39
35
  simplecov-html (0.5.3)
40
- uuidtools (2.1.2)
36
+ uuidtools (2.1.3)
41
37
 
42
38
  PLATFORMS
43
39
  ruby
44
40
 
45
41
  DEPENDENCIES
46
42
  activesupport
47
- cloud_encrypted_sync!
48
43
  cloud_encrypted_sync_s3_adapter!
49
44
  mocha
50
45
  rake
@@ -10,8 +10,8 @@ Gem::Specification.new do |s|
10
10
  s.summary = %q{Plugin adapter for CloudEncryptedSync gem that provides interface to AmazonS3.}
11
11
  s.description = %q{Plugin adapter for CloudEncryptedSync gem that provides interface to AmazonS3.}
12
12
 
13
- s.add_dependency('aws-sdk', '~> 1.4.1')
14
- s.add_dependency('cloud_encrypted_sync', '~> 0.1.1')
13
+ s.add_dependency('aws-sdk', '~> 1.7.1')
14
+ s.add_dependency('cloud_encrypted_sync', '~> 0.2.0')
15
15
 
16
16
  s.add_development_dependency('rake')
17
17
  s.add_development_dependency('mocha')
@@ -4,59 +4,56 @@ module CloudEncryptedSync
4
4
  module Adapters
5
5
  class S3 < Template
6
6
 
7
- class << self
8
-
9
- def parse_command_line_options(opts,command_line_options)
10
- opts.on('--bucket=BUCKETNAME', 'Name of S3 bucket to use.') do |bucket_name|
11
- command_line_options[:bucket] = bucket_name
12
- end
13
- opts.on('--s3-credentials=ACCESS_KEY_ID,SECRET_ACCESS_KEY', Array, "Credentials for your S3 account." ) do| credentials|
14
- command_line_options[:s3_credentials] = credentials
15
- end
16
- return command_line_options
7
+ def parse_command_line_options(opts,command_line_options)
8
+ opts.on('--bucket BUCKETNAME', 'Name of S3 bucket to use.') do |bucket_name|
9
+ command_line_options[:bucket] = bucket_name
17
10
  end
18
-
19
- def write(data, key)
20
- bucket.objects.create(key,data)
11
+ opts.on('--s3-credentials ACCESS_KEY_ID,SECRET_ACCESS_KEY', Array, "Credentials for your S3 account." ) do| credentials|
12
+ command_line_options[:s3_credentials] = credentials
21
13
  end
14
+ return command_line_options
15
+ end
22
16
 
23
- def read(key)
24
- begin
25
- bucket.objects[key].read
26
- rescue AWS::S3::Errors::NoSuchKey => exception
27
- raise CloudEncryptedSync::Errors::NoSuchKey.new(exception.message)
28
- end
29
- end
17
+ def write(data, key)
18
+ bucket.objects.create(key,data)
19
+ end
30
20
 
31
- def delete(key)
32
- bucket.objects[key].delete
21
+ def read(key)
22
+ begin
23
+ bucket.objects[key].read
24
+ rescue AWS::S3::Errors::NoSuchKey => exception
25
+ raise CloudEncryptedSync::Errors::NoSuchKey.new(exception.message)
33
26
  end
27
+ end
34
28
 
35
- def key_exists?(key)
36
- bucket.objects[key].exists?
37
- end
29
+ def delete(key)
30
+ bucket.objects[key].delete
31
+ end
38
32
 
39
- #######
40
- private
41
- #######
33
+ def key_exists?(key)
34
+ bucket.objects[key].exists?
35
+ end
42
36
 
43
- def credentials
44
- Configuration.settings[:s3_credentials]
45
- end
37
+ #######
38
+ private
39
+ #######
46
40
 
47
- def connection
48
- @connection ||= AWS::S3.new(:access_key_id => credentials[0], :secret_access_key => credentials[1])
49
- end
41
+ def credentials
42
+ Configuration.settings[:s3_credentials]
43
+ end
50
44
 
51
- def bucket_name
52
- Configuration.settings[:bucket].to_sym
53
- end
45
+ def connection
46
+ @connection ||= AWS::S3.new(:access_key_id => credentials[0], :secret_access_key => credentials[1])
47
+ end
54
48
 
55
- def bucket
56
- connection.buckets[bucket_name]
57
- end
49
+ def bucket_name
50
+ Configuration.settings[:bucket].to_sym
51
+ end
58
52
 
53
+ def bucket
54
+ connection.buckets[bucket_name]
59
55
  end
56
+
60
57
  end
61
58
  end
62
59
  end
@@ -1,3 +1,3 @@
1
1
  module CloudEncryptedSyncS3Adapter
2
- VERSION = '0.1.2'
2
+ VERSION = '0.2.0'
3
3
  end
data/test/test_helper.rb CHANGED
@@ -13,18 +13,10 @@ require 'cloud_encrypted_sync_s3_adapter'
13
13
  module CloudEncryptedSyncS3Adapter
14
14
  class ActiveSupport::TestCase
15
15
 
16
- setup :preset_environment
17
-
18
- def preset_environment
19
- CloudEncryptedSync::Master.instance_variable_set(:@config,nil)
20
- CloudEncryptedSync::Master.instance_variable_set(:@command_line_options, {
21
- :data_dir => "#{Etc.getpwuid.dir}/.cloud_encrypted_sync"
22
- })
23
- end
24
-
25
16
  def adapter
26
17
  CloudEncryptedSync::Adapters::S3
27
18
  end
19
+
28
20
  end
29
21
  end
30
22
  require 'mocha'
@@ -19,6 +19,21 @@ module CloudEncryptedSyncS3Adapter
19
19
  create_test_bucket
20
20
  end
21
21
 
22
+ def teardown
23
+ delete_test_bucket
24
+ end
25
+
26
+ test 'should parse command line options' do
27
+ Object.send(:remove_const,:ARGV)
28
+ ::ARGV = '--bucket foobar --s3-credentials KEY_ID,ACCESS_KEY'.split(/\s/)
29
+ @command_line_options = {}
30
+ @option_parser = OptionParser.new do |opts|
31
+ @command_line_options = adapter.parse_command_line_options(opts,@command_line_options)
32
+ end
33
+ @option_parser.parse!
34
+ assert_equal({:bucket => 'foobar', :s3_credentials => ['KEY_ID','ACCESS_KEY']},@command_line_options)
35
+ end
36
+
22
37
  test 'should write readable data to s3 and then delete it' do
23
38
 
24
39
  skip 'S3 credentials for test bucket not provided.' unless credentials.is_a?(Array) and credentials != []
@@ -27,14 +42,14 @@ module CloudEncryptedSyncS3Adapter
27
42
  test_key = 'testkey'
28
43
 
29
44
  assert !adapter.key_exists?(test_key)
30
- assert_difference('adapter.send(:bucket).objects.count') do
45
+ assert_difference('adapter.instance.send(:bucket).objects.count') do
31
46
  adapter.write(test_data,test_key)
32
47
  end
33
48
  assert adapter.key_exists?(test_key)
34
49
 
35
50
  assert_equal(test_data,adapter.read(test_key))
36
51
 
37
- assert_difference('adapter.send(:bucket).objects.count',-1) do
52
+ assert_difference('adapter.instance.send(:bucket).objects.count',-1) do
38
53
  adapter.delete(test_key)
39
54
  end
40
55
  assert !adapter.key_exists?(test_key)
@@ -54,11 +69,11 @@ module CloudEncryptedSyncS3Adapter
54
69
  end
55
70
 
56
71
  def create_test_bucket
57
- adapter.send(:connection).buckets.create(test_bucket_name)
72
+ adapter.instance.send(:connection).buckets.create(test_bucket_name)
58
73
  end
59
74
 
60
75
  def delete_test_bucket
61
- adapter.send(:bucket).delete! unless credentials == [] or !credentials.is_a?(Array)
76
+ adapter.instance.send(:bucket).delete! unless credentials == [] or !credentials.is_a?(Array)
62
77
  end
63
78
 
64
79
  def test_bucket_name
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloud_encrypted_sync_s3_adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-16 00:00:00.000000000 Z
12
+ date: 2012-11-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-sdk
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 1.4.1
21
+ version: 1.7.1
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
- version: 1.4.1
29
+ version: 1.7.1
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: cloud_encrypted_sync
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: 0.1.1
37
+ version: 0.2.0
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
- version: 0.1.1
45
+ version: 0.2.0
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: rake
48
48
  requirement: !ruby/object:Gem::Requirement