guard-autoupload 0.3.6 → 1.0.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2a76d209ee938526ce9381c587699b936fd4e29f
4
+ data.tar.gz: ac65618097d9d518ba890d75b879146cd1f430aa
5
+ SHA512:
6
+ metadata.gz: 390b6e1683a9dc0ee7b3e5bfa1530d59b7d16e24174d28b658012f8e824bc9a95910637934ab8b1f40f3ed1188602903152a15652da2f7f6a2d9f984c6f1fcac
7
+ data.tar.gz: e6ac7b7886cc8285a7e09fa475a6b17c9f0762e9cd36af8b8a930f9a5f10f334bc338b6c432544665ed45923abc11dbc4ff2e63ff4a3d972dbec6026e6bc23a1
data/.gitignore CHANGED
@@ -58,7 +58,6 @@ local.properties
58
58
  *.tlb
59
59
  *.tli
60
60
  *.tlh
61
- *.tmp
62
61
  *.vspscc
63
62
  .builds
64
63
  *.dotCover
@@ -164,3 +163,4 @@ pip-log.txt
164
163
 
165
164
  # Ignore built gems
166
165
  *.gem
166
+ /.idea/
data/Gemfile CHANGED
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ gem 'rake'
6
+
7
+ require 'rbconfig'
8
+ gem 'wdm', '>= 0.1.0' if RbConfig::CONFIG['target_os'] =~ /mswin|mingw|cygwin/i
9
+
10
+ group :development do
11
+ gem 'guard'
12
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,65 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ guard-autoupload (0.4.1)
5
+ guard (~> 2.6)
6
+ net-sftp (~> 2.1)
7
+ net-ssh-simple (~> 1.6)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ blockenspiel (0.4.5)
13
+ celluloid (0.15.2)
14
+ timers (~> 1.1.0)
15
+ celluloid-io (0.15.0)
16
+ celluloid (>= 0.15.0)
17
+ nio4r (>= 0.5.0)
18
+ coderay (1.1.0)
19
+ ffi (1.9.3)
20
+ formatador (0.2.4)
21
+ guard (2.6.0)
22
+ formatador (>= 0.2.4)
23
+ listen (~> 2.7)
24
+ lumberjack (~> 1.0)
25
+ pry (>= 0.9.12)
26
+ thor (>= 0.18.1)
27
+ hashie (2.1.1)
28
+ listen (2.7.2)
29
+ celluloid (>= 0.15.2)
30
+ celluloid-io (>= 0.15.0)
31
+ rb-fsevent (>= 0.9.3)
32
+ rb-inotify (>= 0.9)
33
+ lumberjack (1.0.5)
34
+ method_source (0.8.2)
35
+ net-scp (1.1.2)
36
+ net-ssh (>= 2.6.5)
37
+ net-sftp (2.1.2)
38
+ net-ssh (>= 2.6.5)
39
+ net-ssh (2.8.0)
40
+ net-ssh-simple (1.6.5)
41
+ blockenspiel (~> 0.4.3)
42
+ hashie (>= 1.1.0)
43
+ net-scp (~> 1.1.0)
44
+ net-ssh (~> 2.8.0)
45
+ nio4r (1.0.0)
46
+ pry (0.9.12.6)
47
+ coderay (~> 1.0)
48
+ method_source (~> 0.8)
49
+ slop (~> 3.4)
50
+ rake (10.3.1)
51
+ rb-fsevent (0.9.4)
52
+ rb-inotify (0.9.3)
53
+ ffi (>= 0.5.0)
54
+ slop (3.5.0)
55
+ thor (0.19.1)
56
+ timers (1.1.0)
57
+
58
+ PLATFORMS
59
+ ruby
60
+
61
+ DEPENDENCIES
62
+ bundler (~> 1.5)
63
+ guard
64
+ guard-autoupload!
65
+ rake
data/Guardfile ADDED
@@ -0,0 +1,23 @@
1
+ # Configuartion Options for guard-autoupload
2
+
3
+ opts = {
4
+ :protocol => :scp, # Protocol used to connect to remote host.
5
+ # Possible values are :scp, :sftp and :ftp.
6
+ # Of these :scp is the preferred one for
7
+ # its stability.
8
+ :host => "localhost",
9
+ # :port => 22, # Uncomment this if you need to set port to
10
+ # something else than default.
11
+ :user => "jyrkililja",
12
+ :remote => "/Users/jyrkililja/projects/guard-development/test/",
13
+ :verbose => true, # if true you get all outputs
14
+ :quiet => false # if true outputs only on exceptions.
15
+ }
16
+
17
+ guard :autoupload, opts do
18
+ watch(/^./)
19
+ ignore [%r{^.idea},
20
+ %r{^Guardfile}, #ignore the root guardfile
21
+ %r{__jb_old__}, %r{__jb_bak__} # ruby idea ingores
22
+ ]
23
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Jyrki Lilja
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -1,11 +1,23 @@
1
- guard-autoupload
2
- ================
1
+ # guard-autoupload
3
2
 
4
3
  Autoupload plugin used for uploading all local changes to remote host.
5
4
  Uses either SFTP or FTP.
6
5
 
7
- Usage
8
- -----
6
+ ## Installation
7
+
8
+ Add this line to your application's Gemfile:
9
+
10
+ gem 'guard-autoupload'
11
+
12
+ And then execute:
13
+
14
+ $ bundle
15
+
16
+ Or install it yourself as:
17
+
18
+ $ gem install guard-autoupload
19
+
20
+ ## Usage
9
21
 
10
22
  Sample guardfile:
11
23
 
@@ -30,22 +42,15 @@ Sample guardfile:
30
42
  # accidentally upload the credentials.
31
43
  end
32
44
 
33
- Dependencies
34
- ------------
35
-
36
- - guard
37
- - Net::SFTP
38
- - Net::SSH::Simple
39
-
40
- Installation
41
- ------------
42
-
43
- Finally the gem has been uploaded to rubygems. Install it with
45
+ ## Contributing
44
46
 
45
- gem install guard-autoupload
47
+ 1. Fork it ( https://github.com/jyrkij/guard-autoupload/fork )
48
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
49
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
50
+ 4. Push to the branch (`git push origin my-new-feature`)
51
+ 5. Create new Pull Request
46
52
 
47
- Author
48
- ------
53
+ ## Author
49
54
 
50
55
  This guard plugin was written by Jyrki Lilja and is used at FocusFlow.
51
56
  The code is hevily based on [vincenthu's guard-flopbox][gsftp] and
data/Rakefile CHANGED
@@ -1,2 +1 @@
1
- require 'bundler'
2
- Bundler::GemHelper.install_tasks
1
+ require "bundler/gem_tasks"
@@ -1,23 +1,27 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'guard/autoupload/version'
3
5
 
4
- Gem::Specification.new do |s|
5
- s.name = "guard-autoupload"
6
- s.version = "0.3.6"
7
- s.authors = ["Jyrki Lilja"]
8
- s.email = ["jyrki dot lilja at outlook dot com"]
9
- s.homepage = "https://github.com/jyrkij/guard-autosync"
10
- s.summary = %q{Autoupload plugin - uploads local changes to remote host.}
11
- s.description = %q{Uses either SFTP or FTP.}
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "guard-autoupload"
8
+ spec.version = Guard::AutouploadVersion::VERSION
9
+ spec.authors = ["Jyrki Lilja"]
10
+ spec.email = ["jyrki.lilja@focus.fi"]
11
+ spec.summary = %q{Autoupload plugin - uploads local changes to remote host.}
12
+ spec.description = %q{Uses either SFTP or FTP.}
13
+ spec.homepage = "https://github.com/jyrkij/guard-autosync"
14
+ spec.license = "MIT"
12
15
 
13
- s.rubyforge_project = "guard-autoupload"
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_runtime_dependency 'guard', '~> 2.6'
22
+ spec.add_runtime_dependency 'net-sftp', '~> 2.1'
23
+ spec.add_runtime_dependency 'net-ssh-simple', '~> 1.6'
14
24
 
15
- s.files = `git ls-files`.split("\n")
16
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
- s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
18
- s.require_paths = ["lib"]
19
-
20
- s.add_dependency('guard')
21
- s.add_dependency('net-sftp')
22
- s.add_dependency('net-ssh-simple')
25
+ spec.add_development_dependency "bundler", "~> 1.5"
26
+ spec.add_development_dependency "rake", "~> 10.3"
23
27
  end
@@ -1,136 +1,141 @@
1
- $LOAD_PATH.unshift File.dirname(__FILE__)
2
-
3
1
  require 'guard'
4
- require 'guard/guard'
5
- require 'autoupload/scpsession.rb'
6
- require 'autoupload/sftpsession.rb'
7
- require 'autoupload/ftpsession.rb'
2
+ require 'guard/plugin'
3
+ require 'guard/autoupload/scpsession.rb'
4
+ require 'guard/autoupload/sftpsession.rb'
5
+ require 'guard/autoupload/ftpsession.rb'
6
+ require 'kconv'
8
7
 
9
8
  module Guard
10
- class Autoupload < Guard
11
- def initialize(watchers = [], options = {})
12
- super
13
-
14
- @instance = self
15
- if options[:protocol] == :scp
16
- @session = SCPSession.new(
17
- options[:host],
18
- options[:port] || 22,
19
- options[:user],
20
- options[:password],
21
- self
22
- )
23
- elsif options[:protocol] == :sftp
24
- @session = SFTPSession.new(
25
- options[:host],
26
- options[:port] || 22,
27
- options[:user],
28
- options[:password],
29
- @instance
30
- )
31
- elsif options[:protocol] == :ftp
32
- @session = FTPSession.new(
33
- options[:host],
34
- options[:port] || 21,
35
- options[:user],
36
- options[:password]
37
- )
38
- else
39
- throw :task_has_failed
40
- end
41
-
42
- @remote = options[:remote]
43
- @local = Dir.pwd
44
- @verbose = options[:verbose]
45
- @quiet = options[:quiet] unless verbose?
46
- output = options.dup
47
- output[:password] = options[:password].gsub(/./, '*') if options.include? :password
48
- log "Initialized with watchers #{watchers.inspect}" if verbose?
49
- log "Initialized with options #{output.inspect}" unless quiet?
50
- end
51
-
52
- def run_on_change(paths)
53
- paths.each do |path|
54
- local_file = File.join(@local, path)
55
- remote_file = File.join(@remote, path)
56
-
57
- attempts = 0
58
-
59
- begin
60
- log "Upload #{local_file} => #{remote_file}" if verbose?
61
- @session.upload!(local_file, remote_file)
62
- log "Uploaded #{path}" unless quiet?
63
- rescue => ex
64
- log "Exception on uploading #{path}\n#{ex.inspect}"
65
- log ex.backtrace.join("\n") if verbose?
66
- attempts += 1
67
- remote_dir = File.dirname(remote_file)
68
- recursively_create_dirs(remote_dir)
69
- retry if attempts < 3
70
- log "Exceeded 3 attempts to upload #{path}"
71
- throw :task_has_failed
72
- end
73
- end
74
-
75
- msg = "Uploaded:\n#{paths.join("\n")}"
76
- ::Guard::Notifier.notify msg, :title => "Uploaded"
77
- end
78
-
79
- def run_on_removals(paths)
80
- paths.each do |path|
81
- remote_file = File.join(@remote, path)
9
+ class Autoupload < Plugin
10
+ def initialize(options = {})
11
+ super
12
+
13
+ @instance = self
14
+ if options[:protocol] == :scp
15
+ @session = SCPSession.new(
16
+ options[:host],
17
+ options[:port] || 22,
18
+ options[:user],
19
+ options[:password],
20
+ self
21
+ )
22
+ elsif options[:protocol] == :sftp
23
+ @session = SFTPSession.new(
24
+ options[:host],
25
+ options[:port] || 22,
26
+ options[:user],
27
+ options[:password],
28
+ @instance
29
+ )
30
+ elsif options[:protocol] == :ftp
31
+ @session = FTPSession.new(
32
+ options[:host],
33
+ options[:port] || 21,
34
+ options[:user],
35
+ options[:password]
36
+ )
37
+ else
38
+ throw :task_has_failed
39
+ end
40
+
41
+ @remote = options[:remote]
42
+ @local = Dir.pwd
43
+ @local_subpath = options[:local] || ''
44
+ @verbose = options[:verbose]
45
+ @quiet = options[:quiet] unless verbose?
46
+ output = options.dup
47
+ output[:password] = options[:password].gsub(/./, '*') if options.include? :password
48
+
49
+ UI.info("Initialized with watchers #{watchers.inspect}") if verbose?
50
+ UI.info("Initialized with options #{output.inspect}") unless quiet?
51
+ end
82
52
 
83
- begin
84
- log "Delete #{remote_file}" if verbose?
85
- @session.remove!(remote_file)
86
- rescue => ex
87
- log "Exception on deleting #{path}\n#{ex.inspect}"
88
- log ex.backtrace.join("\n") if verbose?
89
- end
53
+ def run_on_change(paths)
54
+ paths.each do |path|
55
+ path = path.encode(Kconv::UTF8, Encoding::UTF8_MAC) if RUBY_PLATFORM.include? "darwin"
90
56
 
91
- log "Deleted #{path}" unless quiet?
92
- end
57
+ local_file = File.join(@local, path)
58
+ path.sub!(/^#{@local_subpath}/, '')
59
+ remote_file = File.join(@remote, path)
93
60
 
94
- msg = "Deleted:\n#{paths.join("\n")}"
95
- ::Guard::Notifier.notify msg, :title => "Deleted"
61
+ if(File.directory?(local_file))
62
+ next
96
63
  end
97
64
 
98
- def verbose?
99
- @verbose || false
65
+ attempts = 0
66
+
67
+ begin
68
+ UI.info("Upload #{local_file} => #{remote_file}") if verbose?
69
+ @session.upload!(local_file, remote_file)
70
+ UI.info("Uploaded #{path}") unless quiet?
71
+ rescue => ex
72
+ UI.error("Exception on uploading #{path}\n#{ex.inspect.toutf8}")
73
+ UI.error(ex.backtrace.join("\n")) if verbose?
74
+ attempts += 1
75
+ remote_dir = File.dirname(remote_file)
76
+ recursively_create_dirs(remote_dir)
77
+ retry if attempts < 3
78
+ UI.info("Exceeded 3 attempts to upload #{path}")
79
+ throw :task_has_failed
100
80
  end
81
+ end
101
82
 
102
- def quiet?
103
- @quiet || false
104
- end
83
+ msg = "Uploaded:\n#{paths.join("\n")}"
84
+ UI.info(msg)
85
+ ::Guard::Notifier.notify "uploaded", :title => "Uploaded"
86
+ end
105
87
 
106
- def log(message)
107
- puts "[#{Time.now}] #{message}"
88
+ def run_on_removals(paths)
89
+ paths.each do |path|
90
+ path.sub!(/^#{@local_subpath}/, '')
91
+ remote_file = File.join(@remote, path)
92
+
93
+ begin
94
+ UI.info("Delete #{remote_file}") if verbose?
95
+ @session.remove!(remote_file)
96
+ rescue => ex
97
+ UI.error("Exception on deleting #{path}\n#{ex.inspect.toutf8}")
98
+ UI.error(ex.backtrace.join("\n")) if verbose?
108
99
  end
100
+
101
+ UI.info("Deleted #{path}") unless quiet?
102
+ end
103
+
104
+ ::Guard::Notifier.notify "Deleted", :title => "Deleted"
105
+ end
109
106
 
110
- def stop
111
- log "Tearing down connections" unless quiet?
112
- if @session.is_a? SCPSession
113
- @session.close
114
- end
115
- end
107
+ def verbose?
108
+ @verbose || false
109
+ end
116
110
 
117
- private
111
+ def quiet?
112
+ @quiet || false
113
+ end
118
114
 
119
- def recursively_create_dirs(remote_dir)
120
- new_dir = @remote
121
- remote_dir.gsub(@remote, "").split("/").each do |dir|
122
- new_dir = File.join(new_dir, dir)
115
+ def stop
116
+ UI.info("Tearing down connections") unless quiet?
117
+ if @session.is_a? SCPSession
118
+ @session.close
119
+ end
120
+ end
121
+
122
+ private
123
123
 
124
- begin
125
- log "Creating #{new_dir}" if verbose?
126
- @session.mkdir!(new_dir)
127
- rescue => ex
128
- log "Cannot create directory #{new_dir}\n#{ex.inspect}"
129
- log ex.backtrace.join("\n") if verbose?
130
- end
131
- end
124
+ def recursively_create_dirs(remote_dir)
125
+ new_dir = @remote
126
+ remote_dir.gsub(@remote, "").split("/").each do |dir|
127
+ new_dir = File.join(new_dir, dir)
132
128
 
133
- log "Created directory #{remote_dir}" unless quiet?
129
+ begin
130
+ UI.info("Creating #{new_dir}") if verbose?
131
+ @session.mkdir!(new_dir)
132
+ rescue => ex
133
+ UI.info("Cannot create directory #{new_dir}\n#{ex.inspect.toutf8}")
134
+ UI.info(ex.backtrace.join("\n")) if verbose?
134
135
  end
136
+ end
137
+
138
+ UI.info("Created directory #{remote_dir}") unless quiet?
135
139
  end
140
+ end
136
141
  end
@@ -9,7 +9,7 @@ class FTPSession
9
9
  @user = user
10
10
  @password = password
11
11
  @last_timestamp = Time.new(0)
12
- @session.connect(@host)
12
+ @session.connect(@host, port)
13
13
  @session.login(@user, @password)
14
14
  end
15
15
 
@@ -12,7 +12,7 @@ class SCPSession
12
12
  end
13
13
 
14
14
  def ss
15
- Thread.current[:simplessh] ||= Net::SSH::Simple.new({:user => @user, :password => @password.clone})
15
+ Thread.current[:simplessh] ||= Net::SSH::Simple.new({:user => @user, :password => @password})
16
16
  end
17
17
 
18
18
  def upload!(local, remote)
@@ -2,21 +2,24 @@
2
2
 
3
3
  opts = {
4
4
  :protocol => :scp, # Protocol used to connect to remote host.
5
- # Possible values are :scp, :sftp and :ftp.
6
- # Of these :scp is the preferred one for
7
- # its stability.
5
+ # Possible values are :scp, :sftp and :ftp.
6
+ # Of these :scp is the preferred one for
7
+ # its stability.
8
8
  :host => "remote_host",
9
9
  # :port => 22, # Uncomment this if you need to set port to
10
- # something else than default.
10
+ # something else than default.
11
11
  :user => "username",
12
12
  :password => "password",
13
13
  :remote => "remote_path",
14
- :verbose => false, # if true you get all outputs
14
+ :verbose => true, # if true you get all outputs
15
15
  :quiet => false # if true outputs only on exceptions.
16
16
  }
17
17
 
18
18
  guard :autoupload, opts do
19
- watch(/^((?!Guardfile$).)*$/)
20
- # Matches every other file but Guardfile. This way we don't
21
- # accidentally upload the credentials.
19
+ watch(/^./)
20
+ ignore [%r{^.idea},
21
+ %r{^Guardfile}, #ignore the root guardfile
22
+ %r{__jb_old__}, %r{__jb_bak__} # ruby idea ingores
23
+ ]
22
24
  end
25
+
@@ -0,0 +1,5 @@
1
+ module Guard
2
+ module AutouploadVersion
3
+ VERSION = "1.0.0"
4
+ end
5
+ end
metadata CHANGED
@@ -1,74 +1,98 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guard-autoupload
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
5
- prerelease:
4
+ version: 1.0.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jyrki Lilja
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-05-13 00:00:00.000000000 Z
11
+ date: 2014-04-28 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: guard
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
- version: '0'
19
+ version: '2.6'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: '0'
26
+ version: '2.6'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: net-sftp
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - "~>"
36
32
  - !ruby/object:Gem::Version
37
- version: '0'
33
+ version: '2.1'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - "~>"
44
39
  - !ruby/object:Gem::Version
45
- version: '0'
40
+ version: '2.1'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: net-ssh-simple
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - "~>"
52
46
  - !ruby/object:Gem::Version
53
- version: '0'
47
+ version: '1.6'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - "~>"
60
53
  - !ruby/object:Gem::Version
61
- version: '0'
54
+ version: '1.6'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.5'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.5'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '10.3'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '10.3'
62
83
  description: Uses either SFTP or FTP.
63
84
  email:
64
- - jyrki dot lilja at outlook dot com
85
+ - jyrki.lilja@focus.fi
65
86
  executables: []
66
87
  extensions: []
67
88
  extra_rdoc_files: []
68
89
  files:
69
- - .gitattributes
70
- - .gitignore
90
+ - ".gitattributes"
91
+ - ".gitignore"
71
92
  - Gemfile
93
+ - Gemfile.lock
94
+ - Guardfile
95
+ - LICENSE.txt
72
96
  - README.md
73
97
  - Rakefile
74
98
  - guard-autoupload.gemspec
@@ -77,28 +101,30 @@ files:
77
101
  - lib/guard/autoupload/scpsession.rb
78
102
  - lib/guard/autoupload/sftpsession.rb
79
103
  - lib/guard/autoupload/templates/Guardfile
104
+ - lib/guard/autoupload/version.rb
80
105
  homepage: https://github.com/jyrkij/guard-autosync
81
- licenses: []
106
+ licenses:
107
+ - MIT
108
+ metadata: {}
82
109
  post_install_message:
83
110
  rdoc_options: []
84
111
  require_paths:
85
112
  - lib
86
113
  required_ruby_version: !ruby/object:Gem::Requirement
87
- none: false
88
114
  requirements:
89
- - - ! '>='
115
+ - - ">="
90
116
  - !ruby/object:Gem::Version
91
117
  version: '0'
92
118
  required_rubygems_version: !ruby/object:Gem::Requirement
93
- none: false
94
119
  requirements:
95
- - - ! '>='
120
+ - - ">="
96
121
  - !ruby/object:Gem::Version
97
122
  version: '0'
98
123
  requirements: []
99
- rubyforge_project: guard-autoupload
100
- rubygems_version: 1.8.24
124
+ rubyforge_project:
125
+ rubygems_version: 2.2.2
101
126
  signing_key:
102
- specification_version: 3
127
+ specification_version: 4
103
128
  summary: Autoupload plugin - uploads local changes to remote host.
104
129
  test_files: []
130
+ has_rdoc: