haml-sprockets 0.0.3 → 0.0.7
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/haml-sprockets.gemspec +4 -1
- data/lib/haml-sprockets.rb +13 -4
- data/lib/haml-sprockets/version.rb +1 -1
- data/spec/lib/haml-sprockets_spec.rb +43 -0
- data/spec/spec_helper.rb +2 -0
- metadata +55 -9
data/haml-sprockets.gemspec
CHANGED
@@ -21,5 +21,8 @@ Gem::Specification.new do |s|
|
|
21
21
|
# specify any dependencies here; for example:
|
22
22
|
# s.add_development_dependency "rspec"
|
23
23
|
s.add_runtime_dependency "tilt", "~> 1.3"
|
24
|
-
s.add_runtime_dependency "sprockets", "~> 2.
|
24
|
+
s.add_runtime_dependency "sprockets", "~> 2.1.2"
|
25
|
+
s.add_runtime_dependency "execjs", "~> 1.3.0"
|
26
|
+
|
27
|
+
s.add_development_dependency 'rspec'
|
25
28
|
end
|
data/lib/haml-sprockets.rb
CHANGED
@@ -1,24 +1,33 @@
|
|
1
|
-
require
|
1
|
+
require 'haml-sprockets/version'
|
2
2
|
require 'tilt'
|
3
3
|
require 'sprockets'
|
4
|
+
require 'execjs'
|
5
|
+
|
4
6
|
module Haml
|
5
7
|
module Sprockets
|
6
8
|
class Template < ::Tilt::Template
|
7
9
|
def self.engine_initialized?
|
8
10
|
true
|
9
11
|
end
|
12
|
+
|
10
13
|
def initialize_engine
|
11
14
|
end
|
15
|
+
|
12
16
|
def prepare
|
13
17
|
end
|
14
|
-
|
18
|
+
|
19
|
+
def evaluate(scope, locals, &block)
|
15
20
|
haml_code = data.dup
|
16
|
-
haml_code = haml_code.gsub(/\\/,"\\\\").gsub(/\'/,"
|
17
|
-
|
21
|
+
haml_code = haml_code.gsub(/\\/,"\\\\").gsub(/\'/,"\\\\'").gsub(/\n/,"\\n")
|
22
|
+
|
23
|
+
haml_lib = File.read("#{::Rails.root}/vendor/assets/javascripts/haml.js")
|
24
|
+
context = ExecJS.compile(haml_lib)
|
25
|
+
return context.eval("Haml.optimize(Haml.compile('#{haml_code}', {escapeHtmlByDefault: true}))")
|
18
26
|
end
|
19
27
|
end
|
20
28
|
end
|
21
29
|
end
|
30
|
+
|
22
31
|
Sprockets::Engines
|
23
32
|
Sprockets.register_engine '.hamljs', Haml::Sprockets::Template
|
24
33
|
require 'haml-sprockets/engine' if defined?(Rails)
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Haml::Sprockets::Template do
|
4
|
+
describe 'evaluate' do
|
5
|
+
def process(data)
|
6
|
+
described_class.new { data }.render
|
7
|
+
end
|
8
|
+
|
9
|
+
describe 'string escaping' do
|
10
|
+
before do
|
11
|
+
Rails = double('Rails', :root => '/some/dir')
|
12
|
+
File.stub(:read)
|
13
|
+
@context = double('context')
|
14
|
+
ExecJS.stub(:compile).and_return(@context)
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should leave clean string alone' do
|
18
|
+
@context.should_receive(:eval).with(/'test'/)
|
19
|
+
process(%{test})
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'should leave double quotes alone' do
|
23
|
+
@context.should_receive(:eval).with(/'test "test"'/)
|
24
|
+
process(%{test "test"})
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should double escape characters' do
|
28
|
+
@context.should_receive(:eval).with(/'test\\ntest'/)
|
29
|
+
process(%{test\ntest})
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'should double escape single quotes' do
|
33
|
+
@context.should_receive(:eval).with(/'test \\'test\\''/)
|
34
|
+
process(%{test 'test'})
|
35
|
+
end
|
36
|
+
|
37
|
+
after do
|
38
|
+
Object.send(:remove_const, 'Rails')
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: haml-sprockets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
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:
|
12
|
+
date: 2012-04-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: tilt
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,18 +21,60 @@ dependencies:
|
|
21
21
|
version: '1.3'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.3'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: sprockets
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 2.1.2
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 2.1.2
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: execjs
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
28
49
|
none: false
|
29
50
|
requirements:
|
30
51
|
- - ~>
|
31
52
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
53
|
+
version: 1.3.0
|
33
54
|
type: :runtime
|
34
55
|
prerelease: false
|
35
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.3.0
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rspec
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
36
78
|
description: Use the JST processor and have haml code read in and appended to application.js
|
37
79
|
email:
|
38
80
|
- vagmi.mudumbai@gmail.com
|
@@ -49,6 +91,8 @@ files:
|
|
49
91
|
- lib/haml-sprockets.rb
|
50
92
|
- lib/haml-sprockets/engine.rb
|
51
93
|
- lib/haml-sprockets/version.rb
|
94
|
+
- spec/lib/haml-sprockets_spec.rb
|
95
|
+
- spec/spec_helper.rb
|
52
96
|
- vendor/assets/javascripts/haml.js
|
53
97
|
homepage: https://github.com/dharanasoft/haml-sprockets
|
54
98
|
licenses: []
|
@@ -70,8 +114,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
70
114
|
version: '0'
|
71
115
|
requirements: []
|
72
116
|
rubyforge_project: haml-sprockets
|
73
|
-
rubygems_version: 1.8.
|
117
|
+
rubygems_version: 1.8.21
|
74
118
|
signing_key:
|
75
119
|
specification_version: 3
|
76
120
|
summary: Use the awesome haml-js javascript templating lib in Ruby
|
77
|
-
test_files:
|
121
|
+
test_files:
|
122
|
+
- spec/lib/haml-sprockets_spec.rb
|
123
|
+
- spec/spec_helper.rb
|