guard-zeus 0.0.1.pre.alpha.pre.21

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YmFhYmIzMjIyNDk2MDRlZmUyNmYwYjhkMTk2NTIwMmJhMmYxYTRjMQ==
5
+ data.tar.gz: !binary |-
6
+ ODcxNjg5NTk0Nzg3NWNhYTVmYjgxM2QxZjRlZDM3MWQ0M2MxNzRhZA==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ NGRlYjZlNzcxMjZjZGE1YWNhMDg1ZmJjZGI1ZTRjYmY0NDQzZTM0NTFlNWJi
10
+ ZmJmNzUxNTY1ZmRlYmU1YmI5NDIwMzhjZjg3Y2Y1NzE4N2Y0ZGViYTI1ZDYy
11
+ YzhlOWQzZTgzYWIyYzgzYzkzNTQ0ZGYyOWNkYWZiYjllZjI0ZWM=
12
+ data.tar.gz: !binary |-
13
+ NmRjOTkwYTcxMmM2NjI4N2IxNDgwYmRhOWFkOWEzODJhODAwYjMzZjlhMTli
14
+ MTA2NjZiNDRiYjNkOTNlMmQ2NDcyOTBjYWNiNWVhN2NkNjUyNTRiM2ZiNDZi
15
+ OWM1YTQ2MTE4NGRmYWNjOGQxMDhlN2I2OTBmMjIxYjJhNWU4NTQ=
data/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (C) 2011 by Andrew Assarattanakul
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,81 @@
1
+ Guard::Zeus
2
+ ===========
3
+
4
+ Guard::Zeus automatically starts and stops [Zeus](https://github.com/burke/zeus).
5
+
6
+ [![Build Status](https://travis-ci.org/qnm/guard-zeus.png?branch=master)](https://travis-ci.org/qnm/guard-zeus)
7
+ [![Code Climate](https://codeclimate.com/github/qnm/guard-zeus.png)](https://codeclimate.com/github/qnm/guard-zeus)
8
+
9
+ Install
10
+ -------
11
+
12
+ Please be sure to have [Guard](https://github.com/guard/guard) and [Zeus](https://github.com/burke/zeus) installed before continuing.
13
+
14
+ Install the gem:
15
+
16
+ $ gem install guard-zeus
17
+
18
+ Add it to your Gemfile (inside development group):
19
+
20
+ ``` ruby
21
+ gem 'guard-zeus'
22
+ ```
23
+
24
+ Add guard definition to your Guardfile by running this command:
25
+
26
+ $ guard init zeus
27
+
28
+ Usage
29
+ -----
30
+
31
+ Please read [Guard usage doc](https://github.com/guard/guard#readme)
32
+
33
+ Guardfile
34
+ ---------
35
+
36
+ Please read [Guard doc](https://github.com/guard/guard#readme) for more information about the Guardfile DSL.
37
+
38
+ ### Options
39
+
40
+ Available options:
41
+
42
+ ``` ruby
43
+ :rspec => false # Don't use RSpec
44
+ :test_unit => false # Don't use Test::Unit
45
+ :bundler => false # Don't use "bundle exec"
46
+ :cli => '--time' # Pass options to zeus. `zeus commands` for more zeus options
47
+ :run_all => true # Run all tests when hitting enter in guard
48
+ ```
49
+
50
+ Development
51
+ -----------
52
+
53
+ * Source hosted at [GitHub](https://github.com/qnm/guard-zeus)
54
+ * Report issues/Questions/Feature requests on [GitHub Issues](https://github.com/qnm/guard-zeus/issues)
55
+
56
+ Pull requests are very welcome! Make sure your patches are well tested. Please create a topic branch for every separate change
57
+ you make.
58
+
59
+ Authors
60
+ ------
61
+
62
+ Based on the awesome [guard-spin](https://github.com/vizjerai/guard-spin). Original authors include:
63
+
64
+ * [Jonathan](https://github.com/jonsgreen)
65
+ * [Andrew Assarattanakul](https://github.com/vizjerai)
66
+
67
+ Ported to use zeus by:
68
+
69
+ * [Rob Sharp](https://github.com/qnm)
70
+
71
+ Many Thanks To
72
+ --------------
73
+
74
+ * [Jesse Storimer](https://github.com/jstorimer)
75
+
76
+ Alternatives
77
+ ------------
78
+
79
+ * [guard/rspec](https://github.com/guard/guard-rspec) has recently picked up Zeus support. You may wish to see if this fits your needs.
80
+ * [aceofsales/guard-zeus-client](https://github.com/aceofsales/guard-zeus-client) is very similar to this version.
81
+
data/lib/guard/zeus.rb ADDED
@@ -0,0 +1,40 @@
1
+ require 'guard'
2
+ require 'guard/guard'
3
+
4
+ module Guard
5
+ class Zeus < Guard
6
+
7
+ autoload :Runner, 'guard/zeus/runner'
8
+ attr_accessor :runner
9
+
10
+ def initialize(watchers=[], options={})
11
+ super
12
+ @runner = Runner.new(options)
13
+ end
14
+
15
+ def start
16
+ runner.kill_zeus
17
+ runner.launch_zeus("Start")
18
+ end
19
+
20
+ def reload
21
+ runner.kill_zeus
22
+ runner.launch_zeus("Reload")
23
+ end
24
+
25
+ def run_all
26
+ runner.run_all
27
+ end
28
+
29
+ def run_on_changes(paths)
30
+ runner.run(paths)
31
+ end
32
+ # for guard 1.0.x and earlier
33
+ alias :run_on_change :run_on_changes
34
+
35
+ def stop
36
+ runner.kill_zeus
37
+ end
38
+
39
+ end
40
+ end
@@ -0,0 +1,107 @@
1
+ # Needed for socket_file
2
+ require 'socket'
3
+ require 'tempfile'
4
+ require 'digest/md5'
5
+
6
+ module Guard
7
+ class Zeus
8
+ class Runner
9
+ attr_reader :options
10
+
11
+ def initialize(options = {})
12
+ @options = {:run_all => true}.merge(options)
13
+ UI.info "Guard::Zeus Initialized"
14
+ end
15
+
16
+ def launch_zeus(action)
17
+ UI.info "#{action}ing Zeus", :reset => true
18
+ spawn_zeus zeus_serve_command, zeus_serve_options
19
+ end
20
+
21
+ def kill_zeus
22
+ stop_zeus
23
+ end
24
+
25
+ def run(paths)
26
+ run_command zeus_push_command(paths), zeus_push_options
27
+ end
28
+
29
+ def run_all
30
+ return unless options[:run_all]
31
+ if rspec?
32
+ run(['rspec'])
33
+ elsif test_unit?
34
+ run(Dir['test/**/*_test.rb']+Dir['test/**/test_*.rb'])
35
+ end
36
+ end
37
+
38
+ private
39
+
40
+ def sockfile
41
+ File.join(Dir.pwd, ".zeus.sock")
42
+ end
43
+
44
+ def run_command(cmd, options = '')
45
+ system "#{cmd} #{options}"
46
+ end
47
+
48
+ def spawn_zeus(cmd, options = '')
49
+ @zeus_pid = fork do
50
+ exec "#{cmd} #{options}"
51
+ end
52
+ end
53
+
54
+ def stop_zeus
55
+ return unless @zeus_pid
56
+
57
+ Process.kill(:INT, @zeus_pid)
58
+
59
+ begin
60
+ unless Process.waitpid(@zeus_pid, Process::WNOHANG)
61
+ Process.kill(:KILL, @zeus_pid)
62
+ end
63
+ rescue Errno::ECHILD
64
+ end
65
+ File.delete(sockfile) if File.exist? sockfile
66
+ UI.info "Zeus Stopped", :reset => true
67
+ end
68
+
69
+ def zeus_push_command(paths)
70
+ cmd_parts = []
71
+ cmd_parts << "bundle exec" if bundler?
72
+ cmd_parts << "zeus test"
73
+ cmd_parts << paths.join(' ')
74
+ cmd_parts.join(' ')
75
+ end
76
+
77
+ def zeus_push_options
78
+ ''
79
+ end
80
+
81
+ def zeus_serve_command
82
+ cmd_parts = []
83
+ cmd_parts << "bundle exec" if bundler?
84
+ cmd_parts << "zeus start"
85
+ cmd_parts.join(' ')
86
+ end
87
+
88
+ def zeus_serve_options
89
+ opt_parts = []
90
+ opt_parts << options[:cli] unless options[:cli].nil?
91
+ opt_parts.join(' ')
92
+ end
93
+
94
+ def bundler?
95
+ @bundler ||= options[:bundler] != false && File.exist?("#{Dir.pwd}/Gemfile")
96
+ end
97
+
98
+ def test_unit?
99
+ @test_unit ||= options[:test_unit] != false && File.exist?("#{Dir.pwd}/test/test_helper.rb")
100
+ end
101
+
102
+ def rspec?
103
+ @rspec ||= options[:rspec] != false && File.exist?("#{Dir.pwd}/spec")
104
+ end
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,16 @@
1
+ guard 'zeus' do
2
+ # uses the .rspec file
3
+ # --colour --fail-fast --format documentation --tag ~slow
4
+ watch(%r{^spec/.+_spec\.rb$})
5
+ watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
6
+ watch(%r{^app/(.+)\.haml$}) { |m| "spec/#{m[1]}.haml_spec.rb" }
7
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
8
+ watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/requests/#{m[1]}_spec.rb"] }
9
+
10
+ # TestUnit
11
+ # watch(%r|^test/(.*)_test\.rb$|)
12
+ # watch(%r|^lib/(.*)([^/]+)\.rb$|) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
13
+ # watch(%r|^test/test_helper\.rb$|) { "test" }
14
+ # watch(%r|^app/controllers/(.*)\.rb$|) { |m| "test/functional/#{m[1]}_test.rb" }
15
+ # watch(%r|^app/models/(.*)\.rb$|) { |m| "test/unit/#{m[1]}_test.rb" }
16
+ end
@@ -0,0 +1,5 @@
1
+ module Guard
2
+ module ZeusVersion
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,109 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: guard-zeus
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1.pre.alpha.pre.21
5
+ platform: ruby
6
+ authors:
7
+ - jonathangreenberg
8
+ - Andrew Assarattanakul
9
+ - Rob Sharp
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2014-01-29 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: guard
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ! '>='
27
+ - !ruby/object:Gem::Version
28
+ version: '0'
29
+ - !ruby/object:Gem::Dependency
30
+ name: zeus
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ! '>='
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ! '>='
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ - !ruby/object:Gem::Dependency
44
+ name: bundler
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ! '>='
48
+ - !ruby/object:Gem::Version
49
+ version: '1.0'
50
+ type: :development
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '1.0'
57
+ - !ruby/object:Gem::Dependency
58
+ name: rspec
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ! '>='
62
+ - !ruby/object:Gem::Version
63
+ version: '2.0'
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '2.0'
71
+ description: Guard::Zeus automatically manage zeus
72
+ email:
73
+ - greenberg@entryway.net
74
+ - assarata@gmail.com
75
+ - qnm@fea.st
76
+ executables: []
77
+ extensions: []
78
+ extra_rdoc_files: []
79
+ files:
80
+ - LICENSE
81
+ - README.md
82
+ - lib/guard/zeus.rb
83
+ - lib/guard/zeus/runner.rb
84
+ - lib/guard/zeus/templates/Guardfile
85
+ - lib/guard/zeus/version.rb
86
+ homepage: http://github.com/qnm/guard-zeus
87
+ licenses: []
88
+ metadata: {}
89
+ post_install_message:
90
+ rdoc_options: []
91
+ require_paths:
92
+ - lib
93
+ required_ruby_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ! '>='
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ required_rubygems_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ! '>'
101
+ - !ruby/object:Gem::Version
102
+ version: 1.3.1
103
+ requirements: []
104
+ rubyforge_project:
105
+ rubygems_version: 2.2.1
106
+ signing_key:
107
+ specification_version: 4
108
+ summary: Pushes watched files to Zeus
109
+ test_files: []