haml_coffee_assets 0.2.4 → 0.2.5
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 +1 -4
- data/lib/haml_coffee_assets/haml_coffee.rb +34 -5
- data/lib/haml_coffee_assets/haml_coffee_assets.js +4 -46
- data/lib/haml_coffee_assets/version.rb +1 -1
- data/lib/js/haml-coffee.js +2 -2
- metadata +20 -20
data/README.md
CHANGED
@@ -1,13 +1,10 @@
|
|
1
1
|
# Haml Coffee Assets [](http://travis-ci.org/netzpirat/haml_coffee_assets)
|
2
2
|
|
3
|
-
Haml Coffee Assets compiles [Haml CoffeeScript](https://github.com/
|
3
|
+
Haml Coffee Assets compiles [Haml CoffeeScript](https://github.com/9elements/haml-coffee) templates in the Rails 3.1
|
4
4
|
asset pipeline, so you can use them as JavaScript templates in your JavaScript heavy Rails application.
|
5
5
|
|
6
6
|
Tested on MRI Ruby 1.8.7, 1.9.2, 1.9.3, REE and the latest version of JRuby.
|
7
7
|
|
8
|
-
**Please note that I'm using haml-coffee from my fork until
|
9
|
-
[my pull request](https://github.com/9elements/haml-coffee/pull/7) is merged.**
|
10
|
-
|
11
8
|
## Haml Coffee
|
12
9
|
|
13
10
|
Haml Coffee allows you to write inline [CoffeeScript](http://jashkenas.github.com/coffee-script/) in your
|
@@ -5,9 +5,38 @@ module HamlCoffeeAssets
|
|
5
5
|
# Handles compilation of Haml CoffeeScript templates to pure JavaScript.
|
6
6
|
#
|
7
7
|
module HamlCoffee
|
8
|
-
class << self
|
9
8
|
|
10
|
-
|
9
|
+
# Template namespace
|
10
|
+
#
|
11
|
+
mattr_accessor :namespace
|
12
|
+
self.namespace = 'window.JST'
|
13
|
+
|
14
|
+
# Template format, either html5, html4 or xhtml
|
15
|
+
#
|
16
|
+
mattr_accessor :format
|
17
|
+
self.format = 'html5'
|
18
|
+
|
19
|
+
# Escape template code output
|
20
|
+
#
|
21
|
+
mattr_accessor :escapeHtml
|
22
|
+
self.escapeHtml = true
|
23
|
+
|
24
|
+
# Escape template code output for attributes
|
25
|
+
#
|
26
|
+
mattr_accessor :escapeAttributes
|
27
|
+
self.escapeAttributes = true
|
28
|
+
|
29
|
+
# Custom global HTML escaping function
|
30
|
+
#
|
31
|
+
mattr_accessor :customHtmlEscape
|
32
|
+
self.customHtmlEscape = 'window.HAML.escape'
|
33
|
+
|
34
|
+
# Custom global context to merge
|
35
|
+
#
|
36
|
+
mattr_accessor :context
|
37
|
+
self.context = ''
|
38
|
+
|
39
|
+
class << self
|
11
40
|
|
12
41
|
# Configure HamlCoffee
|
13
42
|
#
|
@@ -22,9 +51,9 @@ module HamlCoffeeAssets
|
|
22
51
|
# @return [String] the compiled template in JavaScript
|
23
52
|
#
|
24
53
|
def compile(name, source)
|
25
|
-
runtime.call('HamlCoffeeAssets.compile',
|
26
|
-
namespace,
|
27
|
-
|
54
|
+
runtime.call('HamlCoffeeAssets.compile', name, source,
|
55
|
+
HamlCoffee.namespace, HamlCoffee.format, HamlCoffee.escapeHtml, HamlCoffee.escapeAttributes,
|
56
|
+
HamlCoffee.customHtmlEscape, HamlCoffee.context)
|
28
57
|
end
|
29
58
|
|
30
59
|
private
|
@@ -14,26 +14,6 @@ var HamlCoffeeAssets = (function(){
|
|
14
14
|
|
15
15
|
var Compiler = require('/compiler.js');
|
16
16
|
|
17
|
-
/**
|
18
|
-
* Test if the string argument is present
|
19
|
-
*
|
20
|
-
* @param object [String] the string to test
|
21
|
-
* @return [Boolean] whether the object is present
|
22
|
-
*/
|
23
|
-
function isStringPresent(object) {
|
24
|
-
return toString.call(object) === '[object String]' && object.length !== 0
|
25
|
-
}
|
26
|
-
|
27
|
-
/**
|
28
|
-
* Test if the boolean argument is present
|
29
|
-
*
|
30
|
-
* @param object [Boolean] the boolean to test
|
31
|
-
* @return [Boolean] whether the object is present
|
32
|
-
*/
|
33
|
-
function isBooleanPresent(object) {
|
34
|
-
return toString.call(object) === '[object Boolean]'
|
35
|
-
}
|
36
|
-
|
37
17
|
return {
|
38
18
|
|
39
19
|
/**
|
@@ -47,31 +27,9 @@ var HamlCoffeeAssets = (function(){
|
|
47
27
|
* @param customHtmlEscape [String] the name of the function to escape the output
|
48
28
|
* @param context [String] the name of the function to merge contexts
|
49
29
|
*/
|
50
|
-
compile: function(
|
51
|
-
|
52
|
-
var compiler, jst;
|
53
|
-
|
54
|
-
if (!isStringPresent(namespace)) {
|
55
|
-
namespace = 'window.HAML'
|
56
|
-
}
|
57
|
-
|
58
|
-
if (!isStringPresent(format)) {
|
59
|
-
format = 'html5'
|
60
|
-
}
|
61
|
-
|
62
|
-
if (!isBooleanPresent(escapeHtml)) {
|
63
|
-
escapeHtml = true
|
64
|
-
}
|
65
|
-
|
66
|
-
if (!isBooleanPresent(escapeAttributes)) {
|
67
|
-
escapeAttributes = true
|
68
|
-
}
|
69
|
-
|
70
|
-
if (!isStringPresent(customHtmlEscape)) {
|
71
|
-
customHtmlEscape = 'window.HAML.escape'
|
72
|
-
}
|
30
|
+
compile: function(name, source, namespace, format, escapeHtml, escapeAttributes, customHtmlEscape, context) {
|
73
31
|
|
74
|
-
compiler = new Compiler({
|
32
|
+
var compiler = new Compiler({
|
75
33
|
format: format,
|
76
34
|
escapeHtml: escapeHtml,
|
77
35
|
escapeAttributes: escapeAttributes,
|
@@ -80,9 +38,9 @@ var HamlCoffeeAssets = (function(){
|
|
80
38
|
|
81
39
|
compiler.parse(source);
|
82
40
|
|
83
|
-
jst = CoffeeScript.compile(compiler.render(name, namespace));
|
41
|
+
var jst = CoffeeScript.compile(compiler.render(name, namespace));
|
84
42
|
|
85
|
-
if (
|
43
|
+
if (context !== '') {
|
86
44
|
jst = jst.replace('fn.call(context);', 'fn.call(' + context +'(context));');
|
87
45
|
}
|
88
46
|
|
data/lib/js/haml-coffee.js
CHANGED
@@ -701,8 +701,8 @@ require.define("/nodes/haml.js", function (require, module, exports, __dirname,
|
|
701
701
|
while (match = findAttributes.exec(exp)) {
|
702
702
|
key = (match[1] || match[3] || match[5]).replace(/^:/, '');
|
703
703
|
value = match[2] || match[4] || match[6];
|
704
|
-
if (['false', '
|
705
|
-
if (['true'
|
704
|
+
if (['false', '', '""', "''"].indexOf(value) === -1) {
|
705
|
+
if (['true'].indexOf(value) !== -1) {
|
706
706
|
value = "'" + key + "'";
|
707
707
|
} else if (!value.match(/^("|').*\1$/)) {
|
708
708
|
if (this.escapeAttributes) {
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: haml_coffee_assets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
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-11-
|
12
|
+
date: 2011-11-21 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &70273944998880 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '3.1'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70273944998880
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: execjs
|
27
|
-
requirement: &
|
27
|
+
requirement: &70273944997320 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.2.9
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70273944997320
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: bundler
|
38
|
-
requirement: &
|
38
|
+
requirement: &70273944996320 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70273944996320
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &70273944995300 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 2.7.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70273944995300
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: guard-rspec
|
60
|
-
requirement: &
|
60
|
+
requirement: &70273944993980 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 0.5.0
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70273944993980
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: yard
|
71
|
-
requirement: &
|
71
|
+
requirement: &70273944993240 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 0.7.3
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70273944993240
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: redcarpet
|
82
|
-
requirement: &
|
82
|
+
requirement: &70273944992420 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ~>
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: 1.17.2
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70273944992420
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: pry
|
93
|
-
requirement: &
|
93
|
+
requirement: &70273944991820 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ~>
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: 0.9.6.2
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70273944991820
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: rake
|
104
|
-
requirement: &
|
104
|
+
requirement: &70273944991320 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ~>
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
version: 0.9.2.2
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *70273944991320
|
113
113
|
description: Compile Haml CoffeeScript templates in the Rails asset pipeline.
|
114
114
|
email:
|
115
115
|
- michi@netzpiraten.ch
|