guard-coffeescript 0.3.0 → 0.3.1

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
@@ -6,26 +6,34 @@ Guard::CoffeeScript compiles you CoffeeScripts automatically when files are modi
6
6
 
7
7
  Tested on MRI Ruby 1.8.7, 1.9.2 and the latest versions of JRuby & Rubinius.
8
8
 
9
+ If you have any questions please join us on our [Google group](http://groups.google.com/group/guard-dev) or on `#guard` (irc.freenode.net).
10
+
9
11
  ## Install
10
12
 
11
- Please be sure to have [Guard](https://github.com/guard/guard) installed before continue.
13
+ Please be sure to have [Guard](https://github.com/guard/guard) installed.
12
14
 
13
15
  Install the gem:
14
16
 
15
- gem install guard-coffeescript
17
+ ```bash
18
+ $ gem install guard-coffeescript
19
+ ```
16
20
 
17
21
  Add it to your `Gemfile`, preferably inside the development group:
18
22
 
19
- gem 'guard-coffeescript'
23
+ ```ruby
24
+ gem 'guard-coffeescript'
25
+ ```
20
26
 
21
27
  Add guard definition to your `Guardfile` by running this command:
22
28
 
23
- guard init coffeescript
29
+ ```bash
30
+ $ guard init coffeescript
31
+ ```
24
32
 
25
33
  ## JSON
26
34
 
27
35
  The JSON library is also required but is not explicitly stated as a gem dependency. If you're on Ruby 1.8 you'll need
28
- to install the json or json_pure gem. On Ruby 1.9, JSON is included in the standard library.
36
+ to install the `json` or `json_pure` gem. On Ruby 1.9, JSON is included in the standard library.
29
37
 
30
38
  ## CoffeeScript
31
39
 
@@ -44,20 +52,24 @@ JavaScript Core is packaged with Mac OS X.
44
52
 
45
53
  ### V8
46
54
 
47
- To use CoffeeScript on V8, simple add `therubyracer` to your Gemfile. The Ruby Racer acts as a bridge between Ruby
55
+ To use CoffeeScript on V8, simple add `therubyracer` to your `Gemfile`. The Ruby Racer acts as a bridge between Ruby
48
56
  and the V8 engine, that will be automatically installed by the Ruby Racer.
49
57
 
50
- group :development do
51
- gem 'therubyracer'
52
- end
58
+ ```ruby
59
+ group :development do
60
+ gem 'therubyracer'
61
+ end
62
+ ```
53
63
 
54
64
  ### Mozilla Rhino
55
65
 
56
- If you're using JRuby, you can embed the Mozilla Rhino runtime by adding `therubyrhino` to your Gemfile:
66
+ If you're using JRuby, you can embed the Mozilla Rhino runtime by adding `therubyrhino` to your `Gemfile`:
57
67
 
58
- group :development do
59
- gem 'therubyrhino'
60
- end
68
+ ```ruby
69
+ group :development do
70
+ gem 'therubyrhino'
71
+ end
72
+ ```
61
73
 
62
74
  ### Microsoft Windows Script Host
63
75
 
@@ -79,89 +91,122 @@ and you don't have to specify a watch regular expression.
79
91
 
80
92
  ### Standard Ruby gem
81
93
 
82
- guard 'coffeescript', :input => 'coffeescripts', :output => 'javascripts'
94
+ ```ruby
95
+ guard 'coffeescript', :input => 'coffeescripts', :output => 'javascripts'
96
+ ```
83
97
 
84
98
  ### Rails 3.1 app
85
99
 
86
- guard 'coffeescript', :input => 'app/assets/javascripts'
100
+ ```ruby
101
+ guard 'coffeescript', :input => 'app/assets/javascripts'
102
+ ```
87
103
 
88
104
  ## Options
89
105
 
90
106
  There following options can be passed to Guard::CoffeeScript:
91
107
 
92
- :input => 'coffeescripts' # Relative path to the input directory, default: nil
93
- :output => 'javascripts' # Relative path to the output directory, default: input directory
94
- :bare => true # Compile without the top-level function wrapper, default: false
95
- :shallow => true # Do not create nested output directories, default: false
96
- :hide_success => true # Disable successful compilation messages, default: false
108
+ ```ruby
109
+ :input => 'coffeescripts' # Relative path to the input directory
110
+ # default: nil
111
+
112
+ :output => 'javascripts' # Relative path to the output directory
113
+ # default: the path given with the :input option
114
+
115
+ :bare => true # Compile without the top-level function wrapper
116
+ # default: false
117
+
118
+ :shallow => true # Do not create nested output directories
119
+ # default: false
120
+
121
+ :hide_success => true # Disable successful compilation messages
122
+ # default: false
123
+ ```
97
124
 
98
125
  ### Nested directories
99
126
 
100
- The guard detects by default nested directories and creates these within the output directory. The detection is based on the match
127
+ The Guard detects by default nested directories and creates these within the output directory. The detection is based on the match
101
128
  of the watch regular expression:
102
129
 
103
130
  A file
104
131
 
105
- /app/coffeescripts/ui/buttons/toggle_button.coffee
132
+ ```bash
133
+ /app/coffeescripts/ui/buttons/toggle_button.coffee
134
+ ```
106
135
 
107
136
  that has been detected by the watch
108
137
 
109
- watch(%r{app/coffeescripts/(.+\.coffee)})
138
+ ```ruby
139
+ watch(%r{^app/coffeescripts/(.+\.coffee)$})
140
+ ```
110
141
 
111
142
  with an output directory of
112
143
 
113
- :output => 'public/javascripts/compiled'
144
+ ```ruby
145
+ :output => 'public/javascripts/compiled'
146
+ ```
114
147
 
115
148
  will be compiled to
116
149
 
117
- public/javascripts/compiled/ui/buttons/toggle_button.js
150
+ ```bash
151
+ public/javascripts/compiled/ui/buttons/toggle_button.js
152
+ ```
118
153
 
119
154
  Note the parenthesis around the `.+\.coffee`. This enables Guard::CoffeeScript to place the full path that was matched inside the
120
155
  parenthesis into the proper output directory.
121
156
 
122
- This behavior can be switched off by passing the option `:shallow => true` to the guard, so that all JavaScripts will be compiled
157
+ This behavior can be switched off by passing the option `:shallow => true` to the Guard, so that all JavaScripts will be compiled
123
158
  directly to the output directory.
124
159
 
125
160
  ### Multiple source directories
126
161
 
127
162
  The Guard short notation
128
163
 
129
- guard 'coffeescript', :input => 'app/coffeescripts', :output => 'public/javascripts/compiled'
164
+ ```ruby
165
+ guard 'coffeescript', :input => 'app/coffeescripts', :output => 'public/javascripts/compiled'
166
+ ```
130
167
 
131
168
  will be internally converted into the standard notation by adding `(.+\.coffee)` to the `input` option string and create a Watcher
132
169
  that is equivalent to:
133
170
 
134
- guard 'coffeescript', :output => 'public/javascripts/compiled' do
135
- watch(%r{app/coffeescripts/(.+\.coffee)})
136
- end
171
+ ```ruby
172
+ guard 'coffeescript', :output => 'public/javascripts/compiled' do
173
+ watch(%r{^app/coffeescripts/(.+\.coffee)$})
174
+ end
175
+ ```
137
176
 
138
177
  To add a second source directory that will be compiled to the same output directory, just add another watcher:
139
178
 
140
- guard 'coffeescript', :input => 'app/coffeescripts', :output => 'public/javascripts/compiled' do
141
- watch(%r{lib/coffeescripts/(.+\.coffee)})
142
- end
179
+ ```ruby
180
+ guard 'coffeescript', :input => 'app/coffeescripts', :output => 'public/javascripts/compiled' do
181
+ watch(%r{lib/coffeescripts/(.+\.coffee)})
182
+ end
183
+ ```
143
184
 
144
185
  which is equivalent to:
145
186
 
146
- guard 'coffeescript', :output => 'public/javascripts/compiled' do
147
- watch(%r{app/coffeescripts/(.+\.coffee)})
148
- watch(%r{lib/coffeescripts/(.+\.coffee)})
149
- end
187
+ ```ruby
188
+ guard 'coffeescript', :output => 'public/javascripts/compiled' do
189
+ watch(%r{app/coffeescripts/(.+\.coffee)})
190
+ watch(%r{lib/coffeescripts/(.+\.coffee)})
191
+ end
192
+ ```
150
193
 
151
194
  ## Development
152
195
 
153
196
  - Source hosted at [GitHub](https://github.com/netzpirat/guard-coffeescript)
154
- - Report issues/Questions/Feature requests on [GitHub Issues](https://github.com/netzpirat/guard-coffeescript/issues)
197
+ - Report issues and feature requests to [GitHub Issues](https://github.com/netzpirat/guard-coffeescript/issues)
155
198
 
156
199
  Pull requests are very welcome! Make sure your patches are well tested.
157
200
 
201
+ For questions please join us on our [Google group](http://groups.google.com/group/guard-dev) or on `#guard` (irc.freenode.net).
202
+
158
203
  ## Contributors
159
204
 
160
205
  * [Aaron Jensen](https://github.com/aaronjensen)
161
- * [Patrick Ewing](https://github.com/hoverbird)
162
206
  * [Andrew Assarattanakul](https://github.com/vizjerai)
207
+ * [Patrick Ewing](https://github.com/hoverbird)
163
208
 
164
- ## Acknowledgment
209
+ ## Acknowledgment
165
210
 
166
211
  The [Guard Team](https://github.com/guard/guard/contributors) for giving us such a nice pice of software
167
212
  that is so easy to extend, one *has* to make a plugin for it!
@@ -19,7 +19,7 @@ module Guard
19
19
 
20
20
  if options[:input]
21
21
  defaults.merge!({ :output => options[:input] })
22
- watchers << ::Guard::Watcher.new(%r{#{ options.delete(:input) }/(.+\.coffee)})
22
+ watchers << ::Guard::Watcher.new(%r{^#{ options.delete(:input) }/(.+\.coffee)$})
23
23
  end
24
24
 
25
25
  super(watchers, defaults.merge(options))
@@ -30,8 +30,10 @@ module Guard
30
30
  end
31
31
 
32
32
  def run_on_change(paths)
33
- changed_files = Runner.run(Inspector.clean(paths), watchers, options)
33
+ changed_files, success = Runner.run(Inspector.clean(paths), watchers, options)
34
34
  notify changed_files
35
+
36
+ success
35
37
  end
36
38
 
37
39
  private
@@ -1,5 +1,5 @@
1
1
  !RBIX
2
- 333337424968067900
2
+ 6235178746665710376
3
3
  x
4
4
  M
5
5
  1
@@ -308,7 +308,7 @@ x
308
308
  10
309
309
  initialize
310
310
  i
311
- 197
311
+ 201
312
312
  23
313
313
  0
314
314
  10
@@ -387,7 +387,7 @@ i
387
387
  7
388
388
  1
389
389
  9
390
- 181
390
+ 185
391
391
  20
392
392
  2
393
393
  44
@@ -427,7 +427,7 @@ i
427
427
  12
428
428
  47
429
429
  9
430
- 152
430
+ 154
431
431
  47
432
432
  49
433
433
  13
@@ -436,48 +436,52 @@ i
436
436
  44
437
437
  43
438
438
  14
439
+ 7
440
+ 15
439
441
  20
440
442
  1
441
443
  7
442
444
  6
443
445
  49
444
- 15
446
+ 16
445
447
  1
446
448
  47
447
449
  101
448
- 16
449
- 7
450
450
  17
451
+ 7
452
+ 18
451
453
  63
452
- 2
454
+ 3
453
455
  78
454
456
  49
455
457
  12
456
458
  2
457
459
  47
458
460
  49
459
- 18
461
+ 19
460
462
  1
461
463
  15
462
464
  8
463
- 176
465
+ 180
464
466
  44
465
467
  43
466
468
  14
469
+ 7
470
+ 15
467
471
  20
468
472
  1
469
473
  7
470
474
  6
471
475
  49
472
- 15
476
+ 16
473
477
  1
474
478
  47
475
479
  101
476
- 16
477
- 7
478
480
  17
481
+ 7
482
+ 18
479
483
  63
480
- 2
484
+ 3
481
485
  78
482
486
  49
483
487
  12
@@ -486,10 +490,10 @@ i
486
490
  12
487
491
  1
488
492
  49
489
- 19
493
+ 20
490
494
  1
491
495
  8
492
- 182
496
+ 186
493
497
  1
494
498
  15
495
499
  20
@@ -499,15 +503,15 @@ i
499
503
  20
500
504
  1
501
505
  49
502
- 20
506
+ 21
503
507
  1
504
508
  54
505
509
  52
506
- 18
510
+ 19
507
511
  2
508
512
  11
509
513
  I
510
- 9
514
+ a
511
515
  I
512
516
  3
513
517
  I
@@ -516,7 +520,7 @@ I
516
520
  2
517
521
  n
518
522
  p
519
- 21
523
+ 22
520
524
  x
521
525
  4
522
526
  Hash
@@ -562,6 +566,9 @@ allocate
562
566
  x
563
567
  6
564
568
  Regexp
569
+ s
570
+ 1
571
+ ^
565
572
  x
566
573
  6
567
574
  delete
@@ -569,8 +576,8 @@ x
569
576
  4
570
577
  to_s
571
578
  s
572
- 13
573
- /(.+\.coffee)
579
+ 14
580
+ /(.+\.coffee)$
574
581
  x
575
582
  10
576
583
  initialize
@@ -581,7 +588,7 @@ x
581
588
  5
582
589
  merge
583
590
  p
584
- 25
591
+ 29
585
592
  I
586
593
  -1
587
594
  I
@@ -591,6 +598,10 @@ I
591
598
  I
592
599
  d
593
600
  I
601
+ 22
602
+ I
603
+ 0
604
+ I
594
605
  23
595
606
  I
596
607
  12
@@ -623,15 +634,19 @@ I
623
634
  I
624
635
  16
625
636
  I
626
- b5
637
+ b9
627
638
  I
628
639
  14
629
640
  I
630
- b7
641
+ ba
642
+ I
643
+ 0
644
+ I
645
+ bb
631
646
  I
632
647
  19
633
648
  I
634
- c5
649
+ c9
635
650
  x
636
651
  70
637
652
  /Users/michi/Repositories/guard-coffeescript/lib/guard/coffeescript.rb
@@ -764,7 +779,7 @@ x
764
779
  13
765
780
  run_on_change
766
781
  i
767
- 31
782
+ 43
768
783
  45
769
784
  0
770
785
  1
@@ -785,9 +800,18 @@ i
785
800
  49
786
801
  7
787
802
  3
803
+ 97
804
+ 37
788
805
  19
789
806
  1
790
807
  15
808
+ 37
809
+ 19
810
+ 2
811
+ 15
812
+ 15
813
+ 2
814
+ 15
791
815
  5
792
816
  20
793
817
  1
@@ -795,11 +819,14 @@ i
795
819
  49
796
820
  8
797
821
  1
822
+ 15
823
+ 20
824
+ 2
798
825
  11
799
826
  I
800
- 6
827
+ 7
801
828
  I
802
- 2
829
+ 3
803
830
  I
804
831
  1
805
832
  I
@@ -831,7 +858,7 @@ x
831
858
  6
832
859
  notify
833
860
  p
834
- 7
861
+ 9
835
862
  I
836
863
  -1
837
864
  I
@@ -841,16 +868,20 @@ I
841
868
  I
842
869
  21
843
870
  I
844
- 17
871
+ 20
845
872
  I
846
873
  22
847
874
  I
848
- 1f
875
+ 28
876
+ I
877
+ 24
878
+ I
879
+ 2b
849
880
  x
850
881
  70
851
882
  /Users/michi/Repositories/guard-coffeescript/lib/guard/coffeescript.rb
852
883
  p
853
- 2
884
+ 3
854
885
  x
855
886
  5
856
887
  paths
@@ -859,6 +890,9 @@ x
859
890
  changed_files
860
891
  x
861
892
  7
893
+ success
894
+ x
895
+ 7
862
896
  private
863
897
  x
864
898
  6
@@ -976,19 +1010,23 @@ x
976
1010
  13
977
1011
  run_on_change
978
1012
  p
979
- 7
1013
+ 9
980
1014
  I
981
1015
  0
982
1016
  I
983
- 28
1017
+ 2a
984
1018
  I
985
1019
  4
986
1020
  I
987
- 29
1021
+ 2b
988
1022
  I
989
1023
  12
990
1024
  I
991
- 2a
1025
+ 2c
1026
+ I
1027
+ 23
1028
+ I
1029
+ 0
992
1030
  I
993
1031
  24
994
1032
  x
@@ -1010,11 +1048,11 @@ p
1010
1048
  I
1011
1049
  -1
1012
1050
  I
1013
- 27
1051
+ 29
1014
1052
  I
1015
1053
  0
1016
1054
  I
1017
- 28
1055
+ 2a
1018
1056
  I
1019
1057
  c
1020
1058
  x
@@ -1054,11 +1092,11 @@ I
1054
1092
  I
1055
1093
  4d
1056
1094
  I
1057
- 25
1095
+ 27
1058
1096
  I
1059
1097
  51
1060
1098
  I
1061
- 27
1099
+ 29
1062
1100
  I
1063
1101
  5f
1064
1102
  x