cloud_encrypted_sync_s3_adapter 0.2.0 → 0.3.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.
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cloud_encrypted_sync_s3_adapter (0.1.2)
4
+ cloud_encrypted_sync_s3_adapter (0.3.0)
5
5
  aws-sdk (~> 1.7.1)
6
- cloud_encrypted_sync (~> 0.2.0)
6
+ cloud_encrypted_sync (~> 0.3.0)
7
7
 
8
8
  GEM
9
9
  remote: http://rubygems.org/
@@ -16,7 +16,7 @@ GEM
16
16
  json (~> 1.4)
17
17
  nokogiri (>= 1.4.4)
18
18
  uuidtools (~> 2.1)
19
- cloud_encrypted_sync (0.2.0)
19
+ cloud_encrypted_sync (0.3.0)
20
20
  httparty (0.9.0)
21
21
  multi_json (~> 1.0)
22
22
  multi_xml
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
11
11
  s.description = %q{Plugin adapter for CloudEncryptedSync gem that provides interface to AmazonS3.}
12
12
 
13
13
  s.add_dependency('aws-sdk', '~> 1.7.1')
14
- s.add_dependency('cloud_encrypted_sync', '~> 0.2.0')
14
+ s.add_dependency('cloud_encrypted_sync', '~> 0.3.0')
15
15
 
16
16
  s.add_development_dependency('rake')
17
17
  s.add_development_dependency('mocha')
@@ -3,15 +3,15 @@ require 'aws-sdk'
3
3
  module CloudEncryptedSync
4
4
  module Adapters
5
5
  class S3 < Template
6
+ attr_accessor :bucket_name, :credentials
6
7
 
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
8
+ def parse_command_line_options(parser)
9
+ parser.on('--bucket BUCKETNAME', 'Name of S3 bucket to use.') do |bucket_argument|
10
+ self.bucket_name = bucket_argument.to_sym
10
11
  end
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
12
+ parser.on('--s3-credentials ACCESS_KEY_ID,SECRET_ACCESS_KEY', Array, "Credentials for your S3 account." ) do |credentials_argument|
13
+ self.credentials = credentials_argument
13
14
  end
14
- return command_line_options
15
15
  end
16
16
 
17
17
  def write(data, key)
@@ -38,18 +38,10 @@ module CloudEncryptedSync
38
38
  private
39
39
  #######
40
40
 
41
- def credentials
42
- Configuration.settings[:s3_credentials]
43
- end
44
-
45
41
  def connection
46
42
  @connection ||= AWS::S3.new(:access_key_id => credentials[0], :secret_access_key => credentials[1])
47
43
  end
48
44
 
49
- def bucket_name
50
- Configuration.settings[:bucket].to_sym
51
- end
52
-
53
45
  def bucket
54
46
  connection.buckets[bucket_name]
55
47
  end
@@ -1,3 +1,3 @@
1
1
  module CloudEncryptedSyncS3Adapter
2
- VERSION = '0.2.0'
2
+ VERSION = '0.3.0'
3
3
  end
@@ -7,15 +7,7 @@ module CloudEncryptedSyncS3Adapter
7
7
  if File.exist?(CloudEncryptedSync::Configuration.send(:config_file_path))
8
8
  @config = YAML.load_file(CloudEncryptedSync::Configuration.send(:config_file_path))
9
9
  end
10
- CloudEncryptedSync::Configuration.stubs(:settings).returns(
11
- {
12
- :excryption_key => 'abc',
13
- :adapter => 's3',
14
- :bucket => test_bucket_name,
15
- :sync_path => '/non/existent/path',
16
- :s3_credentials => @config['s3_credentials']
17
- }
18
- )
10
+ stub_configuration
19
11
  create_test_bucket
20
12
  end
21
13
 
@@ -24,14 +16,17 @@ module CloudEncryptedSyncS3Adapter
24
16
  end
25
17
 
26
18
  test 'should parse command line options' do
19
+ unstub_configuration
27
20
  Object.send(:remove_const,:ARGV)
28
21
  ::ARGV = '--bucket foobar --s3-credentials KEY_ID,ACCESS_KEY'.split(/\s/)
29
22
  @command_line_options = {}
30
- @option_parser = OptionParser.new do |opts|
31
- @command_line_options = adapter.parse_command_line_options(opts,@command_line_options)
23
+ @option_parser = OptionParser.new do |parser|
24
+ adapter.parse_command_line_options(parser)
32
25
  end
33
26
  @option_parser.parse!
34
- assert_equal({:bucket => 'foobar', :s3_credentials => ['KEY_ID','ACCESS_KEY']},@command_line_options)
27
+ assert_equal(:foobar,CloudEncryptedSync::Adapters::S3.instance.bucket_name)
28
+ assert_equal(['KEY_ID','ACCESS_KEY'],CloudEncryptedSync::Adapters::S3.instance.credentials)
29
+ stub_configuration
35
30
  end
36
31
 
37
32
  test 'should write readable data to s3 and then delete it' do
@@ -80,5 +75,24 @@ module CloudEncryptedSyncS3Adapter
80
75
  @test_bucket_name ||= "cloud_encrypted_sync_unit_test_bucket_#{Digest::SHA1.hexdigest(rand.to_s)}"
81
76
  end
82
77
 
78
+ def stub_configuration
79
+ CloudEncryptedSync::Configuration.stubs(:settings).returns(
80
+ {
81
+ :excryption_key => 'abc',
82
+ :adapter => 's3',
83
+ :bucket => test_bucket_name,
84
+ :sync_path => '/non/existent/path',
85
+ :s3_credentials => @config['s3_credentials']
86
+ }
87
+ )
88
+ CloudEncryptedSync::Adapters::S3.any_instance.stubs(:bucket_name).returns(test_bucket_name)
89
+ CloudEncryptedSync::Adapters::S3.any_instance.stubs(:credentials).returns(@config['s3_credentials'])
90
+ end
91
+
92
+ def unstub_configuration
93
+ CloudEncryptedSync::Configuration.unstub(:settings)
94
+ CloudEncryptedSync::Adapters::S3.any_instance.unstub(:bucket_name)
95
+ CloudEncryptedSync::Adapters::S3.any_instance.unstub(:credentials)
96
+ end
83
97
  end
84
98
  end
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.2.0
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: 0.2.0
37
+ version: 0.3.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.2.0
45
+ version: 0.3.0
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: rake
48
48
  requirement: !ruby/object:Gem::Requirement