guard-shell 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/Readme.md +70 -29
  2. data/lib/guard/shell.rb +3 -3
  3. metadata +4 -4
data/Readme.md CHANGED
@@ -1,7 +1,6 @@
1
1
  # Guard::Shell
2
2
 
3
- This little addition to guard allows you to run shell commands when files are
4
- altered.
3
+ This little guard allows you to run shell commands when files are altered.
5
4
 
6
5
 
7
6
  ## Install
@@ -23,41 +22,83 @@ And then add a basic setup to your Guardfile:
23
22
 
24
23
  ## Usage
25
24
 
26
- If you can do something in your shell, it is probably very easy to setup with
27
- guard-shell. It can take an option, `:all_on_start` which will, if set to true,
28
- run all tasks on start.
25
+ If you can do something in your shell, or in ruby, you can do it when a file changes
26
+ with guard-shell. It simply executes the block passed to watch if a change is
27
+ detected, and if anything is returned from the block it will be printed. For example
29
28
 
30
- There is also a shortcut method, `#n(msg, title='')`, which can be used to
31
- display a notification within your watch blocks. See the examples for usage.
29
+ ``` ruby
30
+ guard :shell do
31
+ watch /.*/ do |m|
32
+ m[0] + " has changed."
33
+ end
34
+ end
35
+ ```
32
36
 
33
- ### Examples
37
+ will simply print a message telling you a file has been changed when it is changed.
38
+ This admittedly isn't a very useful example, but you hopefully get the idea. To run
39
+ everything on start pass `:all_on_start` to `#guard`,
34
40
 
35
- #### Printing the Name of the File You Changed
41
+ ``` ruby
42
+ guard :shell, :all_on_start => true do
43
+ # ...
44
+ end
45
+ ```
46
+
47
+ There is also a shortcut for easily creating notifications,
48
+
49
+ ``` ruby
50
+ guard :shell do
51
+ watch /.*/ do |m|
52
+ n m[0], 'File Changed'
53
+ end
54
+ end
55
+ ```
56
+
57
+ `#n` takes up to three arguments; the first is the body of the message, here the path
58
+ of the changed file; the second is the title for the notification; and the third is
59
+ the image to use. There are three (four counting `nil` the default) different images
60
+ that can be specified `:success`, `:pending` and `:failed`.
36
61
 
37
- guard :shell do
38
- # if the block returns something, it will be printed with `puts`
39
- watch(/(.*)/) {|m| m[0] + " was just changed" }
40
- end
62
+
63
+ ### Examples
41
64
 
42
65
  #### Saying the Name of the File You Changed and Displaying a Notification
43
66
 
44
- guard :shell do
45
- watch /(.*)/ do |m|
46
- n m[0], 'Changed'
47
- `say -v cello #{m[0]}`
48
- end
49
- end
67
+ ``` ruby
68
+ guard :shell do
69
+ watch /(.*)/ do |m|
70
+ n m[0], 'Changed'
71
+ `say -v cello #{m[0]}`
72
+ end
73
+ end
74
+ ```
50
75
 
51
76
  #### Rebuilding LaTeX
52
77
 
53
- guard :shell do
54
- watch /^([^\/]*)\.tex/ do |m|
55
- `pdflatex -shell-escape #{m[0]}`
56
- `rm #{m[1]}.log`
57
-
58
- count = `texcount -inc -nc -1 #{m[0]}`.split('+').first
59
- msg = "Built #{m[1]}.pdf (#{count} words)"
60
- n msg, 'LaTeX'
61
- "-> #{msg}"
62
- end
78
+ ``` ruby
79
+ guard :shell, :all_on_start => true do
80
+ watch /^([^\/]*)\.tex/ do |m|
81
+ `pdflatex -shell-escape #{m[0]}`
82
+ `rm #{m[1]}.log`
83
+
84
+ count = `texcount -inc -nc -1 #{m[0]}`.split('+').first
85
+ msg = "Built #{m[1]}.pdf (#{count} words)"
86
+ n msg, 'LaTeX'
87
+ "-> #{msg}"
88
+ end
89
+ end
90
+ ```
91
+
92
+ #### Check Syntax of a Ruby File
93
+
94
+ ``` ruby
95
+ guard :shell do
96
+ watch /.*\.rb$/ do |m|
97
+ if system('ruby -c #{m[0]}')
98
+ n "#{m[0]} is correct", 'Ruby Syntax', :success
99
+ else
100
+ n "#{m[0]} is incorrect", 'Ruby Syntax', :failed
63
101
  end
102
+ end
103
+ end
104
+ ```
@@ -5,7 +5,7 @@ require 'guard/watcher'
5
5
  module Guard
6
6
  class Shell < Guard
7
7
 
8
- VERSION = '0.3.0'
8
+ VERSION = '0.4.0'
9
9
 
10
10
  # Calls #run_all if the :all_on_start option is present.
11
11
  def start
@@ -26,8 +26,8 @@ module Guard
26
26
 
27
27
  class Dsl
28
28
  # Easy method to display a notification
29
- def n(msg, title='')
30
- ::Guard::Notifier.notify(msg, :title => title)
29
+ def n(msg, title='', image=nil)
30
+ Notifier.notify(msg, :title => title, :image => image)
31
31
  end
32
32
  end
33
33
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guard-shell
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
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-01-29 00:00:00.000000000 Z
12
+ date: 2012-03-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: guard
16
- requirement: &2152958780 !ruby/object:Gem::Requirement
16
+ requirement: &2156563560 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: 0.2.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2152958780
24
+ version_requirements: *2156563560
25
25
  description: ! " Guard::Shell automatically runs shell commands when watched files
26
26
  are\n modified.\n"
27
27
  email: m@hawx.me