dandelion 0.4.4 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 00110ac83b39564910efe70d62413f0131965c7a
4
- data.tar.gz: 08d3488e8bc26fe5ef82c5a4e01257b22de7eeb6
3
+ metadata.gz: 5520acb69585608fbf7087b4bb2ca2d37a7ba767
4
+ data.tar.gz: bcfa8fae2c7324ee5dfebf64d54f6f3aa38b1504
5
5
  SHA512:
6
- metadata.gz: ef0da54d71427e9307dbe9139cd642ce025e8ba23f09aba5bee3b383e8364847fa7497b6e33210a4cd1e653151e871a44ad935a30264d0372e42bb247e68d8f7
7
- data.tar.gz: 2e049e82a8a9c756dbd0f2012b27561d2e254fa48f8261b97b5ddada5972662a8d971882deb862a7e32a91f4742f665714de1deaa0df0f5fe4f7ff80d5d22ed8
6
+ metadata.gz: 0b0b3e1773552af905d074664285fc30f271d2c1dfbceb8fea159bc753cedeb124c0b2462bbc3bbb077c6d600ffc1f2d72acb3df5e0ae313149f710cc2af5b4a
7
+ data.tar.gz: 2f9e4b05a622d0a1a61bbdc99a7d23785d3e755b54f751364dedf896476ba0a377cbe073b794096ecf0bbe232321f004c1771a4aa719127a08d60ae48bb5e718
data/README.md CHANGED
@@ -83,7 +83,7 @@ Required:
83
83
  Optional:
84
84
 
85
85
  * `port` (defaults to 21)
86
- * `passive` (defaults to true)
86
+ * `passive` (defaults to false)
87
87
 
88
88
  **Amazon S3**: `adapter: s3`
89
89
 
@@ -96,6 +96,7 @@ Required:
96
96
  Optional:
97
97
 
98
98
  * `host` (defaults to s3.amazonaws.com)
99
+ * `preserve_permissions` (defaults to true)
99
100
 
100
101
  Usage
101
102
  -----
@@ -7,49 +7,55 @@ module Dandelion
7
7
  def initialize(config)
8
8
  require 'aws/s3'
9
9
 
10
- @access_key_id = config[:access_key_id]
11
- @secret_access_key = config[:secret_access_key]
12
- @bucket_name = config[:bucket_name]
13
- @host = config[:host]
14
- @path = config[:path]
10
+ @config = config
11
+ @config.defaults(preserve_permissions: true)
15
12
  end
16
13
 
17
14
  def read(file)
18
- s3connect!
19
- return nil unless AWS::S3::S3Object.exists?(path(file), @bucket_name)
20
- AWS::S3::S3Object.value(path(file), @bucket_name)
15
+ connect!
16
+ return nil unless AWS::S3::S3Object.exists?(path(file), bucket_name)
17
+ AWS::S3::S3Object.value(path(file), bucket_name)
21
18
  end
22
19
 
23
20
  def write(file, data)
24
- s3connect!
25
- AWS::S3::S3Object.store(path(file), data, @bucket_name)
21
+ connect!
22
+
23
+ key = path(file)
24
+ policy = AWS::S3::S3Object.acl(key, bucket_name) if @config[:preserve_permissions]
25
+
26
+ AWS::S3::S3Object.store(path(file), data, bucket_name)
27
+ AWS::S3::S3Object.acl(key, bucket_name, policy) unless policy.nil?
26
28
  end
27
29
 
28
30
  def delete(file)
29
- s3connect!
30
- AWS::S3::S3Object.delete(path(file), @bucket_name)
31
+ connect!
32
+ AWS::S3::S3Object.delete(path(file), bucket_name)
31
33
  end
32
34
 
33
35
  def to_s
34
- "s3://#{@access_key_id}@#{@bucket_name}/#{@path}"
36
+ "s3://#{@config[:access_key_id]}@#{bucket_name}/#{@config[:path]}"
35
37
  end
36
38
 
37
39
  protected
38
40
 
39
- def s3connect!
41
+ def connect!
40
42
  options = {
41
- access_key_id: @access_key_id,
42
- secret_access_key: @secret_access_key,
43
+ access_key_id: @config[:access_key_id],
44
+ secret_access_key: @config[:secret_access_key],
43
45
  use_ssl: true
44
46
  }
45
47
 
46
- options[:server] = @host if @host
48
+ options[:server] = @config[:host] if @config[:host]
47
49
  AWS::S3::Base.establish_connection!(options) unless AWS::S3::Base.connected?
48
50
  end
51
+
52
+ def bucket_name
53
+ @config[:bucket_name]
54
+ end
49
55
 
50
56
  def path(file)
51
- if @path and !@path.empty?
52
- "#{@path}/#{file}"
57
+ if @config[:path] and !@config[:path].empty?
58
+ "#{@config[:path]}/#{file}"
53
59
  else
54
60
  file
55
61
  end
data/lib/dandelion/cli.rb CHANGED
@@ -6,6 +6,8 @@ module Dandelion
6
6
  @args = args
7
7
  @options = {}
8
8
  @parser = Command::Base.parser(@options)
9
+
10
+ @options[:help] = true if @args.length == 0
9
11
  end
10
12
 
11
13
  def config
@@ -1,3 +1,3 @@
1
1
  module Dandelion
2
- VERSION = '0.4.4'
2
+ VERSION = '0.4.5'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dandelion
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Nelson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-15 00:00:00.000000000 Z
11
+ date: 2014-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rugged