cynq 0.0.2 → 0.0.3

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/README.md CHANGED
@@ -48,7 +48,7 @@ remotes:
48
48
  ```
49
49
 
50
50
  This would instruct cynq to upload the contents of the ```build``` directory.
51
- The ```build``` directory itself is not uploaded, making your ```index.hml```
51
+ The ```build``` directory itself is not uploaded, making your ```index.html```
52
52
  file at the 'top-level' of your bucket.
53
53
 
54
54
  You also need AWS key information in your environment. Make sure to do something
data/lib/cynq/command.rb CHANGED
@@ -9,6 +9,10 @@ module Cynq
9
9
  desc "deploy REMOTE", "Upload files to REMOTE"
10
10
  method_option :dry_run, :type => :boolean, :aliases => "-n",
11
11
  :default => false, :desc => 'Do not do anything.'
12
+
13
+ attr_reader :local_dir, :remote_dir
14
+
15
+
12
16
  def deploy(remote)
13
17
  load_config(remote)
14
18
 
@@ -16,24 +20,22 @@ module Cynq
16
20
  puts " Dry run executing...".green
17
21
  end
18
22
 
19
- local = Local.new(@local_root)
20
- remote = Remote.new(@remote['directory'])
23
+ establish_roots
21
24
 
22
- p local
23
- p remote
24
-
25
- keys = (local.keys + remote.keys).sort
26
- keys.each do |key|
25
+ all_keys.each do |key|
27
26
  case
28
- when local.missing?(key)
27
+ when local_dir.missing?(key)
29
28
  puts " deleting #{key}".red
30
- remote.delete(key) unless options.dry_run?
31
- when remote.missing?(key)
32
- puts " adding #{key}".green
33
- remote << local[key] unless options.dry_run?
34
- when remote.modified?(local[key])
29
+ remote_dir.delete(key) unless options.dry_run?
30
+ when remote_dir.missing?(key)
31
+ puts " adding #{key} #{local_dir[key].content_type}".green
32
+ remote_dir << local_dir[key] unless options.dry_run?
33
+ when remote_dir.modified?(local_dir[key])
35
34
  puts " modified #{key}".magenta
36
- remote << local[key] unless options.dry_run?
35
+ remote_dir << local_dir[key] unless options.dry_run?
36
+ when !remote_dir.meta_equal?(local_dir[key])
37
+ puts " meta #{key} #{local_dir[key].content_type}".white.on_magenta
38
+ remote_dir << local_dir[key] unless options.dry_run?
37
39
  else
38
40
  puts " unchanged #{key}" unless options.dry_run?
39
41
  end
@@ -41,9 +43,20 @@ module Cynq
41
43
  end
42
44
 
43
45
  no_tasks do
46
+
47
+ def establish_roots
48
+ p (@local_dir = Local.new(@local_root))
49
+ p (@remote_dir = Remote.new(@remote_root['directory']))
50
+ end
51
+
52
+ def all_keys
53
+ (local_dir.keys + remote_dir.keys).sort
54
+ end
55
+
56
+
44
57
  def load_config(remote)
45
58
  conf_file = File.expand_path('cynq.yml')
46
-
59
+
47
60
  unless File.exist?(conf_file)
48
61
  $stderr.puts "Missing configuration file at #{conf_file}"
49
62
  raise "Configuration not found"
@@ -57,8 +70,8 @@ module Cynq
57
70
  raise "Configuration is invalid"
58
71
  end
59
72
 
60
- @remote = @config['remotes'][remote]
61
- unless @remote
73
+ @remote_root = @config['remotes'][remote]
74
+ unless @remote_root
62
75
  $stderr.puts("No environment matching '#{remote}' can be found.")
63
76
  raise "Configuration is invalid"
64
77
  end
@@ -31,9 +31,9 @@ module Cynq
31
31
  :key => other_file.key,
32
32
  :body => other_file.body
33
33
  })
34
- ct = content_type_for_key(other_file.key)
35
- file.content_type = ct if ct
36
34
  end
35
+ ct = content_type_for_key(other_file.key)
36
+ file.content_type = ct if ct
37
37
  file.public = true
38
38
  file.save
39
39
  end
@@ -48,6 +48,10 @@ module Cynq
48
48
  other_file.etag != self[other_file.key].etag
49
49
  end
50
50
 
51
+ def meta_equal?(other_file)
52
+ self[other_file.key].content_type == other_file.content_type
53
+ end
54
+
51
55
  def inspect
52
56
  "#{self.class.name}: #{@bucket.key} (#{keys.size} files, #{size} bytes)"
53
57
  end
@@ -69,7 +73,7 @@ module Cynq
69
73
 
70
74
  def read_current_files
71
75
  @current_files = @bucket.files.inject({}) do |hsh, file|
72
- hsh[file.key] = file
76
+ hsh[file.key] = @bucket.files.head(file.key)
73
77
  hsh
74
78
  end
75
79
  @keys = Set.new(@current_files.keys)
data/lib/cynq/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Cynq
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cynq
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-22 00:00:00.000000000 Z
12
+ date: 2012-08-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fog
16
- requirement: &70107579317080 !ruby/object:Gem::Requirement
16
+ requirement: &70197370073900 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '1.1'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70107579317080
24
+ version_requirements: *70197370073900
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: colorize
27
- requirement: &70107579316560 !ruby/object:Gem::Requirement
27
+ requirement: &70197370073400 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0.5'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70107579316560
35
+ version_requirements: *70197370073400
36
36
  description: Easy synchronization of local files to cloud based storage.
37
37
  email:
38
38
  - dboyd@realgravity.com