haml-sprockets 0.0.3 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -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.0.0"
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
@@ -1,24 +1,33 @@
1
- require "haml-sprockets/version"
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
- def evaluate(scope,locals,&block)
18
+
19
+ def evaluate(scope, locals, &block)
15
20
  haml_code = data.dup
16
- haml_code = haml_code.gsub(/\\/,"\\\\").gsub(/\'/,"\\'").gsub(/\n/,"\\n")
17
- "Haml('#{haml_code}')"
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)
@@ -1,5 +1,5 @@
1
1
  module Haml
2
2
  module Sprockets
3
- VERSION = "0.0.3"
3
+ VERSION = "0.0.7"
4
4
  end
5
5
  end
@@ -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
+
@@ -0,0 +1,2 @@
1
+ require 'haml-sprockets'
2
+
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.3
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: 2011-09-13 00:00:00.000000000Z
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: &2157192420 !ruby/object:Gem::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: *2157192420
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: &2157191920 !ruby/object:Gem::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: 2.0.0
53
+ version: 1.3.0
33
54
  type: :runtime
34
55
  prerelease: false
35
- version_requirements: *2157191920
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.6
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