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 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