haml_coffee_assets 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,13 +1,10 @@
1
1
  # Haml Coffee Assets [![Build Status](https://secure.travis-ci.org/netzpirat/haml_coffee_assets.png)](http://travis-ci.org/netzpirat/haml_coffee_assets)
2
2
 
3
- Haml Coffee Assets compiles [Haml CoffeeScript](https://github.com/netzpirat/haml-coffee) templates in the Rails 3.1
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
- mattr_accessor :namespace, :format, :escapeHtml, :escapeAttributes, :customHtmlEscape, :context
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, name, source, format,
27
- escapeHtml, escapeAttributes, customHtmlEscape, context)
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(namespace, name, source, format, escapeHtml, escapeAttributes, customHtmlEscape, context) {
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 (isStringPresent(context)) {
43
+ if (context !== '') {
86
44
  jst = jst.replace('fn.call(context);', 'fn.call(' + context +'(context));');
87
45
  }
88
46
 
@@ -1,5 +1,5 @@
1
1
  # coding: UTF-8
2
2
 
3
3
  module HamlCoffeeAssets
4
- VERSION = '0.2.4' unless defined?(HamlCoffeeAssets::VERSION)
4
+ VERSION = '0.2.5' unless defined?(HamlCoffeeAssets::VERSION)
5
5
  end
@@ -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', '"false"', "'false'", '', '""', "''"].indexOf(value) === -1) {
705
- if (['true', '"true"', "'true'"].indexOf(value) !== -1) {
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
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-16 00:00:00.000000000Z
12
+ date: 2011-11-21 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70234154138000 !ruby/object:Gem::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: *70234154138000
24
+ version_requirements: *70273944998880
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: execjs
27
- requirement: &70234154137260 !ruby/object:Gem::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: *70234154137260
35
+ version_requirements: *70273944997320
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &70234154136660 !ruby/object:Gem::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: *70234154136660
46
+ version_requirements: *70273944996320
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &70234154135540 !ruby/object:Gem::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: *70234154135540
57
+ version_requirements: *70273944995300
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: guard-rspec
60
- requirement: &70234154134620 !ruby/object:Gem::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: *70234154134620
68
+ version_requirements: *70273944993980
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: yard
71
- requirement: &70234154133880 !ruby/object:Gem::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: *70234154133880
79
+ version_requirements: *70273944993240
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: redcarpet
82
- requirement: &70234154126680 !ruby/object:Gem::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: *70234154126680
90
+ version_requirements: *70273944992420
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: pry
93
- requirement: &70234154126120 !ruby/object:Gem::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: *70234154126120
101
+ version_requirements: *70273944991820
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rake
104
- requirement: &70234154125220 !ruby/object:Gem::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: *70234154125220
112
+ version_requirements: *70273944991320
113
113
  description: Compile Haml CoffeeScript templates in the Rails asset pipeline.
114
114
  email:
115
115
  - michi@netzpiraten.ch