guard-rake 0.0.7 → 0.0.8

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
@@ -44,12 +44,40 @@ the watched files change.
44
44
 
45
45
  ### List of available options:
46
46
 
47
- ``` ruby
47
+ ```ruby
48
48
  :task => 'doit' # name of the task to be executed, required
49
49
  :run_on_all => false # runs when the 'run_all' signal is received from Guard (enter is pressed), default: true
50
50
  :run_on_start => true # runs when guard is started, default: true
51
+ :task_args => [] # arguments to pass to Rake::Task#invoke, default: []
52
+ ```
53
+
54
+ ### Rake task arguments
55
+ By default, the changed file paths will be passed into the rake task. Example:
56
+
57
+ ```ruby
58
+ task :doit, :paths do |t, args|
59
+ args.paths # Will contain an array of changed paths
60
+ end
51
61
  ```
52
62
 
63
+ You may also use this in conjunction with the :task_args options. Anything in :task_args will
64
+ be passed in first, then the array of changed paths. Example:
65
+
66
+ ```ruby
67
+ # Guardfile
68
+ guard 'rake', :task => 'doit', :task_args => ['a', 'b'] do
69
+ watch(%r{^some_files/.+$})
70
+ end
71
+
72
+ # Rakefile
73
+ task :doit, [:first, :second, :paths] do |t, args|
74
+ args.first # "a"
75
+ args.second # "b"
76
+ args.paths # ['changed1.rb', 'changed2.rb']
77
+ end
78
+ ```
79
+
80
+
53
81
  ## Development
54
82
 
55
83
  - Source hosted at [GitHub](https://github.com/rubyist/guard-rake)
data/guard-rake.gemspec CHANGED
@@ -4,7 +4,7 @@ require 'guard/rake/version'
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = 'guard-rake'
7
- s.version = Guard::Rake::RakeVersion::VERSION
7
+ s.version = Guard::RakeVersion::VERSION
8
8
  s.authors = ['Scott Barron']
9
9
  s.email = ['scott@elitists.net']
10
10
  s.homepage = 'http://github.com/rubyist/guard-rake'
data/lib/guard/rake.rb CHANGED
@@ -5,20 +5,24 @@ require 'rake'
5
5
 
6
6
  module Guard
7
7
  class Rake < Guard
8
+ class << self
9
+ attr_accessor :rakefile_loaded
10
+ end
11
+
8
12
  def initialize(watchers=[], options={})
9
13
  super
10
14
  @options = {
11
15
  :run_on_start => true,
12
- :run_on_all => true
16
+ :run_on_all => true,
17
+ :task_args => []
13
18
  }.update(options)
14
19
  @task = @options[:task]
15
20
  end
16
21
 
17
22
  def start
18
23
  UI.info "Starting guard-rake #{@task}"
19
- ::Rake.application.init
20
- ::Rake.application.load_rakefile
21
- run_all if @options[:run_on_start]
24
+ load_rakefile unless self.class.rakefile_loaded
25
+ run_rake_task if @options[:run_on_start]
22
26
  true
23
27
  end
24
28
 
@@ -38,19 +42,29 @@ module Guard
38
42
 
39
43
  if ::Guard::VERSION < "1.1"
40
44
  def run_on_change(paths)
41
- run_rake_task
45
+ run_rake_task(paths)
42
46
  end
43
47
  else
44
48
  def run_on_changes(paths)
45
- run_rake_task
49
+ run_rake_task(paths)
46
50
  end
47
51
  end
48
52
 
49
-
50
- def run_rake_task
53
+ def run_rake_task(paths=[])
51
54
  UI.info "running #{@task}"
52
55
  ::Rake::Task.tasks.each { |t| t.reenable }
53
- ::Rake::Task[@task].invoke
56
+ ::Rake::Task[@task].invoke(*@options[:task_args], paths)
57
+ rescue Exception => e
58
+ UI.error "#{self.class.name} failed to run rake task <#{@task}>, exception was:\n\t#{e.class}: #{e.message}"
59
+ UI.debug "\n#{e.backtrace.join("\n")}"
60
+
61
+ throw :task_has_failed
62
+ end
63
+
64
+ def load_rakefile
65
+ ::Rake.application.init
66
+ ::Rake.application.load_rakefile
67
+ self.class.rakefile_loaded = true
54
68
  end
55
69
  end
56
70
  end
@@ -1,7 +1,5 @@
1
1
  module Guard
2
- module Rake
3
- module RakeVersion
4
- VERSION = "0.0.7"
5
- end
2
+ module RakeVersion
3
+ VERSION = "0.0.8"
6
4
  end
7
5
  end
metadata CHANGED
@@ -1,49 +1,55 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: guard-rake
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.8
4
5
  prerelease:
5
- version: 0.0.7
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Scott Barron
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2012-06-15 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2013-03-29 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: guard
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
24
22
  type: :runtime
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: rake
28
23
  prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
30
33
  none: false
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: "0"
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
35
38
  type: :runtime
36
- version_requirements: *id002
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
37
46
  description: guard-rake automatically runs Rake tasks from your Rakefile
38
- email:
47
+ email:
39
48
  - scott@elitists.net
40
49
  executables: []
41
-
42
50
  extensions: []
43
-
44
51
  extra_rdoc_files: []
45
-
46
- files:
52
+ files:
47
53
  - .gitignore
48
54
  - Gemfile
49
55
  - LICENSE
@@ -55,30 +61,27 @@ files:
55
61
  - lib/guard/rake/version.rb
56
62
  homepage: http://github.com/rubyist/guard-rake
57
63
  licenses: []
58
-
59
64
  post_install_message:
60
65
  rdoc_options: []
61
-
62
- require_paths:
66
+ require_paths:
63
67
  - lib
64
- required_ruby_version: !ruby/object:Gem::Requirement
68
+ required_ruby_version: !ruby/object:Gem::Requirement
65
69
  none: false
66
- requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
69
- version: "0"
70
- required_rubygems_version: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ! '>='
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ required_rubygems_version: !ruby/object:Gem::Requirement
71
75
  none: false
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: "0"
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
76
80
  requirements: []
77
-
78
81
  rubyforge_project:
79
- rubygems_version: 1.8.13
82
+ rubygems_version: 1.8.24
80
83
  signing_key:
81
84
  specification_version: 3
82
85
  summary: Guard for running rake tasks
83
86
  test_files: []
84
-
87
+ has_rdoc: