stylus_rails 0.1.2 → 0.1.3
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/CHANGELOG.md +6 -0
- data/README.md +7 -0
- data/lib/stylus_rails.rb +1 -0
- data/lib/stylus_rails/railtie.rb +2 -1
- data/lib/stylus_rails/runner.rb +20 -1
- data/lib/stylus_rails/stylus.rb +20 -2
- data/lib/stylus_rails/version.rb +1 -1
- data/spec/runner_spec.rb +39 -6
- data/spec/spec_helper.rb +3 -0
- metadata +4 -4
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
## Changelog
|
|
2
2
|
|
|
3
|
+
### 0.1.3 (2011-04-20)
|
|
4
|
+
[Compare view](http://github.com/lucasmazza/stylus_rails/compare/v0.1.2...v0.1.3)
|
|
5
|
+
|
|
6
|
+
* `Stylus` will raise an exception if the compilation fails. You can turn this off with `Stylus.silent = true`.
|
|
7
|
+
* Added `Stylus.logger` to handle the output from stylus. On Rails applications this will be the standard Rails logger.
|
|
8
|
+
|
|
3
9
|
### 0.1.2 (2011-04-10)
|
|
4
10
|
[Compare view](http://github.com/lucasmazza/stylus_rails/compare/v0.1.1...v0.1.2)
|
|
5
11
|
|
data/README.md
CHANGED
|
@@ -68,6 +68,13 @@ And a `application.styl`
|
|
|
68
68
|
|
|
69
69
|
Stylus will compile your `application.styl` into a `application.css` and your `_vendor.styl` will be ignored.
|
|
70
70
|
|
|
71
|
+
## Error Handling
|
|
72
|
+
|
|
73
|
+
If the stylus binary exits with error code 1 stylus_rails will throw an error exception. In case you don't want
|
|
74
|
+
this the behaviour can be switched to silent by setting the following variable to false:
|
|
75
|
+
|
|
76
|
+
Stylus.silent = true
|
|
77
|
+
|
|
71
78
|
## Changelog
|
|
72
79
|
[here.](https://github.com/lucasmazza/stylus_rails/blob/master/CHANGELOG.md)
|
|
73
80
|
|
data/lib/stylus_rails.rb
CHANGED
data/lib/stylus_rails/railtie.rb
CHANGED
|
@@ -8,12 +8,13 @@ module Stylus
|
|
|
8
8
|
initializer "stylus.reloader" do
|
|
9
9
|
Stylus.root = File.join(Rails.public_path,"stylesheets")
|
|
10
10
|
Stylus.compile_directory ||= File.join(Rails.public_path, 'stylesheets')
|
|
11
|
+
Stylus.logger = Rails.logger
|
|
11
12
|
if !$rails_rake_task
|
|
12
13
|
config.to_prepare do
|
|
13
14
|
if `which stylus` && $?.success?
|
|
14
15
|
Stylus.compile
|
|
15
16
|
else
|
|
16
|
-
|
|
17
|
+
Stylus.logger.warn(Stylus.warning)
|
|
17
18
|
end
|
|
18
19
|
end
|
|
19
20
|
end
|
data/lib/stylus_rails/runner.rb
CHANGED
|
@@ -11,11 +11,30 @@ module Stylus
|
|
|
11
11
|
|
|
12
12
|
directories.each_pair do |directory, files|
|
|
13
13
|
FileUtils.mkdir_p(directory) unless File.directory?(directory)
|
|
14
|
-
|
|
14
|
+
output = `stylus #{files.join(" ")} -o #{directory}#{' -c' if Stylus.compress?} 2>&1`
|
|
15
|
+
|
|
16
|
+
if failed?
|
|
17
|
+
handle_failure(output)
|
|
18
|
+
else
|
|
19
|
+
Stylus.logger.info(output)
|
|
20
|
+
end
|
|
15
21
|
end
|
|
16
22
|
end
|
|
17
23
|
|
|
18
24
|
private
|
|
25
|
+
|
|
26
|
+
def handle_failure(output)
|
|
27
|
+
if Stylus.silent?
|
|
28
|
+
Stylus.logger.error(output)
|
|
29
|
+
else
|
|
30
|
+
raise CompilationError, "Stylus compilation error #{output}"
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def failed?
|
|
35
|
+
!$?.success?
|
|
36
|
+
end
|
|
37
|
+
|
|
19
38
|
def output_folder(path)
|
|
20
39
|
dirname = File.dirname(path)
|
|
21
40
|
if Stylus.compile_directory.nil?
|
data/lib/stylus_rails/stylus.rb
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
module Stylus
|
|
2
2
|
extend CoreExt
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
# Error messages
|
|
5
|
+
Error = Class.new(StandardError)
|
|
6
|
+
CompilationError = Class.new(Error)
|
|
7
|
+
|
|
8
|
+
# Directory to look for .stylus files.
|
|
4
9
|
mattr_accessor :directory
|
|
5
10
|
@@directory = "stylus"
|
|
6
11
|
|
|
@@ -8,18 +13,31 @@ module Stylus
|
|
|
8
13
|
mattr_accessor :root
|
|
9
14
|
@@root = Dir.pwd
|
|
10
15
|
|
|
11
|
-
# Root path for the output
|
|
16
|
+
# Root path for the generated output.
|
|
12
17
|
mattr_accessor :compile_directory
|
|
13
18
|
@@compile_directory = nil
|
|
14
19
|
|
|
15
20
|
mattr_accessor :extension
|
|
16
21
|
@@extension = "styl"
|
|
17
22
|
|
|
23
|
+
# Checks if the -c flag should be passed to Stylus to render single line CSS statements.
|
|
18
24
|
mattr_accessor :compress
|
|
19
25
|
@@compress = true
|
|
20
26
|
|
|
27
|
+
# Checks if an CompilationError should be raised if the compilation fails.
|
|
28
|
+
mattr_accessor :silent
|
|
29
|
+
@@silent = false
|
|
30
|
+
|
|
31
|
+
# Logger instance to write the stylus output.
|
|
32
|
+
mattr_accessor :logger
|
|
33
|
+
|
|
21
34
|
class << self
|
|
22
35
|
alias_method :compress?, :compress
|
|
36
|
+
alias_method :silent?, :silent
|
|
37
|
+
|
|
38
|
+
def logger
|
|
39
|
+
@@logger ||= Logger.new($stdout)
|
|
40
|
+
end
|
|
23
41
|
|
|
24
42
|
def compile
|
|
25
43
|
paths = Dir[File.join(folder, "**", "*.#{extension}")]
|
data/lib/stylus_rails/version.rb
CHANGED
data/spec/runner_spec.rb
CHANGED
|
@@ -34,22 +34,55 @@ describe Stylus::Runner do
|
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
it "calls the stylus cli" do
|
|
37
|
-
subject.should_receive(
|
|
37
|
+
subject.should_receive(:`).with("stylus #{stylus_file} -o #{target_folder} 2>&1")
|
|
38
38
|
subject.call
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
it "runs files on the same folder on a single command" do
|
|
42
42
|
paths = fixtures("stylus/simple.styl", "stylus/foo.styl")
|
|
43
43
|
subject = Stylus::Runner.new(paths)
|
|
44
|
-
subject.should_receive(
|
|
44
|
+
subject.should_receive(:`).with("stylus #{paths.join(" ")} -o #{target_folder} 2>&1")
|
|
45
45
|
subject.call
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
it "uses the compress flag when configured to" do
|
|
49
49
|
Stylus.compress = true
|
|
50
|
-
subject.should_receive(
|
|
50
|
+
subject.should_receive(:`).with("stylus #{stylus_file} -o #{target_folder} -c 2>&1")
|
|
51
51
|
subject.call
|
|
52
52
|
end
|
|
53
|
+
|
|
54
|
+
it "writes the output to the associated logger" do
|
|
55
|
+
subject.stub(:`) { "some output" }
|
|
56
|
+
Stylus.logger.should_receive(:info).with("some output")
|
|
57
|
+
subject.call
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
context "#call when stylus(1) fails" do
|
|
61
|
+
before do
|
|
62
|
+
subject.stub!(:failed?).and_return(true)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
context "when Stylus.silent is false" do
|
|
66
|
+
before { Stylus.silent = false }
|
|
67
|
+
it "raises an exception" do
|
|
68
|
+
expect { subject.call }.to raise_error Stylus::CompilationError
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
context "when Stylus.silent is true" do
|
|
73
|
+
before { Stylus.silent = true }
|
|
74
|
+
|
|
75
|
+
it "doesn't raise an exception" do
|
|
76
|
+
expect { subject.call }.to_not raise_error Stylus::CompilationError
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
it "writes the error output to the logger" do
|
|
80
|
+
subject.stub(:`) { "FAIL" }
|
|
81
|
+
Stylus.logger.should_receive(:error).with("FAIL")
|
|
82
|
+
subject.call
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
53
86
|
end
|
|
54
87
|
|
|
55
88
|
describe "#call with different compile_dir" do
|
|
@@ -65,20 +98,20 @@ describe Stylus::Runner do
|
|
|
65
98
|
end
|
|
66
99
|
|
|
67
100
|
it "calls the stylus cli" do
|
|
68
|
-
subject.should_receive(
|
|
101
|
+
subject.should_receive(:`).with("stylus #{stylus_file} -o #{target_folder} 2>&1")
|
|
69
102
|
subject.call
|
|
70
103
|
end
|
|
71
104
|
|
|
72
105
|
it "runs files on the same folder on a single command" do
|
|
73
106
|
paths = fixtures("stylus/simple.styl", "stylus/foo.styl")
|
|
74
107
|
subject = Stylus::Runner.new(paths)
|
|
75
|
-
subject.should_receive(
|
|
108
|
+
subject.should_receive(:`).with("stylus #{paths.join(" ")} -o #{target_folder} 2>&1")
|
|
76
109
|
subject.call
|
|
77
110
|
end
|
|
78
111
|
|
|
79
112
|
it "uses the compress flag when configured to" do
|
|
80
113
|
Stylus.compress = true
|
|
81
|
-
subject.should_receive(
|
|
114
|
+
subject.should_receive(:`).with("stylus #{stylus_file} -o #{target_folder} -c 2>&1")
|
|
82
115
|
subject.call
|
|
83
116
|
end
|
|
84
117
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: stylus_rails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 29
|
|
5
5
|
prerelease:
|
|
6
6
|
segments:
|
|
7
7
|
- 0
|
|
8
8
|
- 1
|
|
9
|
-
-
|
|
10
|
-
version: 0.1.
|
|
9
|
+
- 3
|
|
10
|
+
version: 0.1.3
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- Lucas Mazza
|
|
@@ -15,7 +15,7 @@ autorequire:
|
|
|
15
15
|
bindir: bin
|
|
16
16
|
cert_chain: []
|
|
17
17
|
|
|
18
|
-
date: 2011-04-
|
|
18
|
+
date: 2011-04-20 00:00:00 -03:00
|
|
19
19
|
default_executable:
|
|
20
20
|
dependencies:
|
|
21
21
|
- !ruby/object:Gem::Dependency
|