guard-sync 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/guard/sync.rb CHANGED
@@ -7,11 +7,14 @@ module Guard
7
7
  super
8
8
  @options = {
9
9
  :all_on_start => false,
10
- :archive => true,
10
+ :archive => false,
11
+ :recursive => true,
11
12
  :compress => true,
12
- :verbose => false,
13
+ :permissions => true,
13
14
  :delete => false,
14
- :src => '.'
15
+ :src => '.',
16
+ :verbose => false,
17
+ :quiet => true
15
18
  }.merge options
16
19
  update
17
20
  end
@@ -20,21 +23,14 @@ module Guard
20
23
  run_all if @options[:all_on_start]
21
24
  end
22
25
 
23
- def stop
24
- end
25
-
26
- def reload
27
- end
28
-
29
26
  def run_all
30
- UI.info "Guard::Sync is running" if @opts
31
- %x{#{@command}} if @opts
32
- end
33
-
34
- def run_on_changes paths
27
+ # UI.info "Guard::Sync is running" if @opts
28
+ UI.info "#{@action}d #{@options[:include]}"
29
+ `#{@command}` if @opts
35
30
  end
36
31
 
37
32
  def run_on_additions paths
33
+ @action = "create"
38
34
  @options[:exclude] = '*'
39
35
  @options[:include] = paths.to_s[1..-2]
40
36
  @options[:delete] = false
@@ -42,10 +38,8 @@ module Guard
42
38
  run_all
43
39
  end
44
40
 
45
- def run_on_modifications paths
46
- end
47
-
48
41
  def run_on_removals paths
42
+ @action = "remove"
49
43
  @options[:exclude] = '*'
50
44
  @options[:include] = paths.to_s[1..-2]
51
45
  @options[:delete] = true
@@ -74,11 +68,28 @@ module Guard
74
68
  long_opts = []
75
69
 
76
70
  opt_list.push('a') if @options[:archive]
77
- opt_list.push('v') if @options[:verbose]
71
+ opt_list.push('r') if @options[:recursive]
72
+ opt_list.push('p') if @options[:permissions]
78
73
  opt_list.push('z') if @options[:compress]
74
+ opt_list.push('v') if @options[:verbose]
75
+ opt_list.push('q') if @options[:quiet]
76
+
77
+ include_paths = @options[:include]
78
+ include_paths = include_paths[1..-2] if include_paths
79
+ split_paths = include_paths.split('/') if include_paths
80
+ joined_paths = []
81
+
82
+ if split_paths.kind_of?(Array)
83
+ included_paths = []
84
+ split_paths.each_with_index do |path, index|
85
+ combined_path = get_combined_path split_paths, index
86
+ included_paths << "--include=#{combined_path.chop}"
87
+ end
88
+ joined_paths = included_paths.join(" ")
89
+ end
79
90
 
80
91
  long_opts.push('--del') if @options[:delete]
81
- long_opts.push("--include=#{@options[:include]}") if @options[:include]
92
+ long_opts.push(joined_paths) if @options[:include] and joined_paths
82
93
  long_opts.push("--exclude=#{@options[:exclude]}") if @options[:exclude]
83
94
 
84
95
  raise :MissingOptions, "No options to pass to rsync" unless opt_list != []
@@ -87,7 +98,15 @@ module Guard
87
98
  long_opts = long_opts.reduce { |a,b| a + ' ' + b }
88
99
 
89
100
  @opts = @opts + " #{long_opts}" if long_opts
90
- puts @opts
101
+ end
102
+
103
+ def get_combined_path array, num
104
+ path = ''
105
+ array.each_with_index do |folder, i|
106
+ path << "#{folder}/"
107
+ break if i == num
108
+ end unless array.length < num
109
+ path
91
110
  end
92
111
  end
93
112
  end
@@ -0,0 +1,3 @@
1
+ guard 'sync', :all_on_start => false, :host => 'dev', :dest => 'app' do
2
+ watch(%r{.*})
3
+ end
@@ -1,5 +1,5 @@
1
1
  module Guard
2
2
  class SyncVersion
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guard-sync
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Kyle Cook
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-07-02 00:00:00.000000000 Z
12
+ date: 2013-07-17 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: guard
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ! '>='
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ! '>='
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: bundler
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ~>
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ~>
39
44
  - !ruby/object:Gem::Version
@@ -53,26 +58,26 @@ files:
53
58
  homepage: ''
54
59
  licenses:
55
60
  - MIT
56
- metadata: {}
57
61
  post_install_message:
58
62
  rdoc_options: []
59
63
  require_paths:
60
64
  - lib
61
65
  required_ruby_version: !ruby/object:Gem::Requirement
66
+ none: false
62
67
  requirements:
63
68
  - - ! '>='
64
69
  - !ruby/object:Gem::Version
65
70
  version: '0'
66
71
  required_rubygems_version: !ruby/object:Gem::Requirement
72
+ none: false
67
73
  requirements:
68
74
  - - ! '>='
69
75
  - !ruby/object:Gem::Version
70
76
  version: '0'
71
77
  requirements: []
72
78
  rubyforge_project:
73
- rubygems_version: 2.0.3
79
+ rubygems_version: 1.8.23
74
80
  signing_key:
75
- specification_version: 4
81
+ specification_version: 3
76
82
  summary: Synchronization for guard
77
83
  test_files: []
78
- has_rdoc:
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MTViMjAyZjM3ODhhOWM1MDVlNzBmYTFiYzJkYWUzMDYxZTQyMDQ2ZQ==
5
- data.tar.gz: !binary |-
6
- MTBmYjI4N2VhZmY4MzRmZmZiMTE0OTY1YzU1ZTk2ZmU3Mzk3NjQ0MA==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- NzA4MmUyMjYzNDlkZDQ4NDM0MDQ1NzQzODAyNTIxN2I2NGRmMGM1MjBhMGFj
10
- MDhmYzliODljNTQ0NDhjMzZmOTg0Y2UwMTk4MjMxN2U4ZGFiMDcwMmMxNGNh
11
- MDliMDRmNWE1MTExZTY2ZmFiMjlhNDcwYjJhOGMwMTdiNjY4Yzg=
12
- data.tar.gz: !binary |-
13
- Mjg1NzkyOTczMDllZWYzZDA0MmI2YWI5YjBjYjBlNTA4YWExZGYwNzkyNzk3
14
- YTU1NGIzYzcyMGJmNGRiYTlmNWNhNTJhNTU4YWE0NDYwY2Q2MDQwZmMyZDU2
15
- YjhlZGZkNjg5N2NkODJiYmVjZjRkMTQwMTFjY2I2ZDY3OTE3Mjg=