jader 0.0.3

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.
Files changed (69) hide show
  1. data/.gitignore +8 -0
  2. data/Gemfile +11 -0
  3. data/LICENSE +22 -0
  4. data/README.md +356 -0
  5. data/Rakefile +4 -0
  6. data/jader.gemspec +28 -0
  7. data/lib/jader.rb +10 -0
  8. data/lib/jader/compiler.rb +70 -0
  9. data/lib/jader/configuration.rb +19 -0
  10. data/lib/jader/engine.rb +11 -0
  11. data/lib/jader/renderer.rb +30 -0
  12. data/lib/jader/serialize.rb +82 -0
  13. data/lib/jader/source.rb +19 -0
  14. data/lib/jader/template.rb +29 -0
  15. data/lib/jader/version.rb +3 -0
  16. data/spec/compiler_spec.rb +32 -0
  17. data/spec/dummy/README.rdoc +261 -0
  18. data/spec/dummy/Rakefile +7 -0
  19. data/spec/dummy/app/assets/javascripts/application.js +9 -0
  20. data/spec/dummy/app/assets/javascripts/includes/util.js +8 -0
  21. data/spec/dummy/app/assets/javascripts/mixins/application_mixins.jade +3 -0
  22. data/spec/dummy/app/assets/javascripts/mixins/users_mixins.jade +3 -0
  23. data/spec/dummy/app/assets/javascripts/sample.jst.jade +5 -0
  24. data/spec/dummy/app/assets/javascripts/views/users/index.jst.jade +2 -0
  25. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  26. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  27. data/spec/dummy/app/controllers/users_controller.rb +10 -0
  28. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  29. data/spec/dummy/app/mailers/.gitkeep +0 -0
  30. data/spec/dummy/app/models/.gitkeep +0 -0
  31. data/spec/dummy/app/models/user.rb +4 -0
  32. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  33. data/spec/dummy/app/views/users/index.jade +4 -0
  34. data/spec/dummy/app/views/users/show.jade +5 -0
  35. data/spec/dummy/config.ru +4 -0
  36. data/spec/dummy/config/application.rb +65 -0
  37. data/spec/dummy/config/boot.rb +10 -0
  38. data/spec/dummy/config/database.yml +7 -0
  39. data/spec/dummy/config/environment.rb +5 -0
  40. data/spec/dummy/config/environments/development.rb +31 -0
  41. data/spec/dummy/config/environments/production.rb +64 -0
  42. data/spec/dummy/config/environments/test.rb +35 -0
  43. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  44. data/spec/dummy/config/initializers/inflections.rb +15 -0
  45. data/spec/dummy/config/initializers/jader.rb +4 -0
  46. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  47. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  48. data/spec/dummy/config/initializers/session_store.rb +8 -0
  49. data/spec/dummy/config/initializers/wrap_parameters.rb +10 -0
  50. data/spec/dummy/config/locales/en.yml +5 -0
  51. data/spec/dummy/config/routes.rb +60 -0
  52. data/spec/dummy/db/migrate/20120816043248_user.rb +11 -0
  53. data/spec/dummy/db/schema.rb +21 -0
  54. data/spec/dummy/lib/assets/.gitkeep +0 -0
  55. data/spec/dummy/log/.gitkeep +0 -0
  56. data/spec/dummy/public/404.html +26 -0
  57. data/spec/dummy/public/422.html +26 -0
  58. data/spec/dummy/public/500.html +25 -0
  59. data/spec/dummy/public/favicon.ico +0 -0
  60. data/spec/dummy/script/rails +6 -0
  61. data/spec/integration/renderer_spec.rb +59 -0
  62. data/spec/source_spec.rb +19 -0
  63. data/spec/spec_helper.rb +22 -0
  64. data/spec/support/global.rb +7 -0
  65. data/spec/support/matchers.rb +17 -0
  66. data/spec/template_spec.rb +40 -0
  67. data/vendor/assets/javascripts/jade/jade.js +3168 -0
  68. data/vendor/assets/javascripts/jade/runtime.js +128 -0
  69. metadata +278 -0
@@ -0,0 +1,128 @@
1
+
2
+ var jade = (function(exports){
3
+ /*!
4
+ * Jade - runtime
5
+ * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
6
+ * MIT Licensed
7
+ */
8
+
9
+ /**
10
+ * Lame Array.isArray() polyfill for now.
11
+ */
12
+
13
+ if (!Array.isArray) {
14
+ Array.isArray = function(arr){
15
+ return '[object Array]' == Object.prototype.toString.call(arr);
16
+ };
17
+ }
18
+
19
+ /**
20
+ * Lame Object.keys() polyfill for now.
21
+ */
22
+
23
+ if (!Object.keys) {
24
+ Object.keys = function(obj){
25
+ var arr = [];
26
+ for (var key in obj) {
27
+ if (obj.hasOwnProperty(key)) {
28
+ arr.push(key);
29
+ }
30
+ }
31
+ return arr;
32
+ }
33
+ }
34
+
35
+ /**
36
+ * Render the given attributes object.
37
+ *
38
+ * @param {Object} obj
39
+ * @return {String}
40
+ * @api private
41
+ */
42
+
43
+ exports.attrs = function attrs(obj){
44
+ var buf = []
45
+ , terse = obj.terse;
46
+ delete obj.terse;
47
+ var keys = Object.keys(obj)
48
+ , len = keys.length;
49
+ if (len) {
50
+ buf.push('');
51
+ for (var i = 0; i < len; ++i) {
52
+ var key = keys[i]
53
+ , val = obj[key];
54
+ if ('boolean' == typeof val || null == val) {
55
+ if (val) {
56
+ terse
57
+ ? buf.push(key)
58
+ : buf.push(key + '="' + key + '"');
59
+ }
60
+ } else if ('class' == key && Array.isArray(val)) {
61
+ buf.push(key + '="' + exports.escape(val.join(' ')) + '"');
62
+ } else {
63
+ buf.push(key + '="' + exports.escape(val) + '"');
64
+ }
65
+ }
66
+ }
67
+ return buf.join(' ');
68
+ };
69
+
70
+ /**
71
+ * Escape the given string of `html`.
72
+ *
73
+ * @param {String} html
74
+ * @return {String}
75
+ * @api private
76
+ */
77
+
78
+ exports.escape = function escape(html){
79
+ return String(html)
80
+ .replace(/&(?!\w+;)/g, '&amp;')
81
+ .replace(/</g, '&lt;')
82
+ .replace(/>/g, '&gt;')
83
+ .replace(/"/g, '&quot;');
84
+ };
85
+
86
+ /**
87
+ * Re-throw the given `err` in context to the
88
+ * the jade in `filename` at the given `lineno`.
89
+ *
90
+ * @param {Error} err
91
+ * @param {String} filename
92
+ * @param {String} lineno
93
+ * @api private
94
+ */
95
+
96
+ exports.rethrow = function rethrow(err, filename, lineno){
97
+ if (!filename) throw err;
98
+
99
+ // If we can't catch the context we still output line and file
100
+ try {
101
+ var context = 3
102
+ , str = require('fs').readFileSync(filename, 'utf8')
103
+ , lines = str.split('\n')
104
+ , start = Math.max(lineno - context, 0)
105
+ , end = Math.min(lines.length, lineno + context);
106
+
107
+ // Error context
108
+ var context = lines.slice(start, end).map(function(line, i){
109
+ var curr = i + start + 1;
110
+ return (curr == lineno ? ' > ' : ' ')
111
+ + curr
112
+ + '| '
113
+ + line;
114
+ }).join('\n') + '\n\n';
115
+ } catch(failure) {
116
+ var context = '';
117
+ }
118
+
119
+ // Alter exception message
120
+ err.path = filename;
121
+ err.message = (filename || 'Jade') + ':' + lineno
122
+ + '\n' + context + err.message;
123
+ throw err;
124
+ };
125
+
126
+ return exports;
127
+
128
+ })({});
metadata ADDED
@@ -0,0 +1,278 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jader
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Zohar Arad
9
+ - Boris Staal
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-08-23 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: execjs
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
31
+ - !ruby/object:Gem::Dependency
32
+ name: tilt
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: sprockets
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: rspec
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ - !ruby/object:Gem::Dependency
80
+ name: rspec-rails
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: rails
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '3.1'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '3.1'
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ description: Share your Jade views between client and server, eliminate code duplication
128
+ and make your single-page app SEO friendly
129
+ email:
130
+ - zohar@zohararad.comboris@roundlake.ru
131
+ executables: []
132
+ extensions: []
133
+ extra_rdoc_files: []
134
+ files:
135
+ - .gitignore
136
+ - Gemfile
137
+ - LICENSE
138
+ - README.md
139
+ - Rakefile
140
+ - jader.gemspec
141
+ - lib/jader.rb
142
+ - lib/jader/compiler.rb
143
+ - lib/jader/configuration.rb
144
+ - lib/jader/engine.rb
145
+ - lib/jader/renderer.rb
146
+ - lib/jader/serialize.rb
147
+ - lib/jader/source.rb
148
+ - lib/jader/template.rb
149
+ - lib/jader/version.rb
150
+ - spec/compiler_spec.rb
151
+ - spec/dummy/README.rdoc
152
+ - spec/dummy/Rakefile
153
+ - spec/dummy/app/assets/javascripts/application.js
154
+ - spec/dummy/app/assets/javascripts/includes/util.js
155
+ - spec/dummy/app/assets/javascripts/mixins/application_mixins.jade
156
+ - spec/dummy/app/assets/javascripts/mixins/users_mixins.jade
157
+ - spec/dummy/app/assets/javascripts/sample.jst.jade
158
+ - spec/dummy/app/assets/javascripts/views/users/index.jst.jade
159
+ - spec/dummy/app/assets/stylesheets/application.css
160
+ - spec/dummy/app/controllers/application_controller.rb
161
+ - spec/dummy/app/controllers/users_controller.rb
162
+ - spec/dummy/app/helpers/application_helper.rb
163
+ - spec/dummy/app/mailers/.gitkeep
164
+ - spec/dummy/app/models/.gitkeep
165
+ - spec/dummy/app/models/user.rb
166
+ - spec/dummy/app/views/layouts/application.html.erb
167
+ - spec/dummy/app/views/users/index.jade
168
+ - spec/dummy/app/views/users/show.jade
169
+ - spec/dummy/config.ru
170
+ - spec/dummy/config/application.rb
171
+ - spec/dummy/config/boot.rb
172
+ - spec/dummy/config/database.yml
173
+ - spec/dummy/config/environment.rb
174
+ - spec/dummy/config/environments/development.rb
175
+ - spec/dummy/config/environments/production.rb
176
+ - spec/dummy/config/environments/test.rb
177
+ - spec/dummy/config/initializers/backtrace_silencers.rb
178
+ - spec/dummy/config/initializers/inflections.rb
179
+ - spec/dummy/config/initializers/jader.rb
180
+ - spec/dummy/config/initializers/mime_types.rb
181
+ - spec/dummy/config/initializers/secret_token.rb
182
+ - spec/dummy/config/initializers/session_store.rb
183
+ - spec/dummy/config/initializers/wrap_parameters.rb
184
+ - spec/dummy/config/locales/en.yml
185
+ - spec/dummy/config/routes.rb
186
+ - spec/dummy/db/migrate/20120816043248_user.rb
187
+ - spec/dummy/db/schema.rb
188
+ - spec/dummy/lib/assets/.gitkeep
189
+ - spec/dummy/log/.gitkeep
190
+ - spec/dummy/public/404.html
191
+ - spec/dummy/public/422.html
192
+ - spec/dummy/public/500.html
193
+ - spec/dummy/public/favicon.ico
194
+ - spec/dummy/script/rails
195
+ - spec/integration/renderer_spec.rb
196
+ - spec/source_spec.rb
197
+ - spec/spec_helper.rb
198
+ - spec/support/global.rb
199
+ - spec/support/matchers.rb
200
+ - spec/template_spec.rb
201
+ - vendor/assets/javascripts/jade/jade.js
202
+ - vendor/assets/javascripts/jade/runtime.js
203
+ homepage: https://github.com/zohararad/jader
204
+ licenses: []
205
+ post_install_message:
206
+ rdoc_options: []
207
+ require_paths:
208
+ - lib
209
+ required_ruby_version: !ruby/object:Gem::Requirement
210
+ none: false
211
+ requirements:
212
+ - - ! '>='
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ required_rubygems_version: !ruby/object:Gem::Requirement
216
+ none: false
217
+ requirements:
218
+ - - ! '>='
219
+ - !ruby/object:Gem::Version
220
+ version: '0'
221
+ requirements: []
222
+ rubyforge_project: jader
223
+ rubygems_version: 1.8.24
224
+ signing_key:
225
+ specification_version: 3
226
+ summary: JST and Rails views compiler for Jade templates
227
+ test_files:
228
+ - spec/compiler_spec.rb
229
+ - spec/dummy/README.rdoc
230
+ - spec/dummy/Rakefile
231
+ - spec/dummy/app/assets/javascripts/application.js
232
+ - spec/dummy/app/assets/javascripts/includes/util.js
233
+ - spec/dummy/app/assets/javascripts/mixins/application_mixins.jade
234
+ - spec/dummy/app/assets/javascripts/mixins/users_mixins.jade
235
+ - spec/dummy/app/assets/javascripts/sample.jst.jade
236
+ - spec/dummy/app/assets/javascripts/views/users/index.jst.jade
237
+ - spec/dummy/app/assets/stylesheets/application.css
238
+ - spec/dummy/app/controllers/application_controller.rb
239
+ - spec/dummy/app/controllers/users_controller.rb
240
+ - spec/dummy/app/helpers/application_helper.rb
241
+ - spec/dummy/app/mailers/.gitkeep
242
+ - spec/dummy/app/models/.gitkeep
243
+ - spec/dummy/app/models/user.rb
244
+ - spec/dummy/app/views/layouts/application.html.erb
245
+ - spec/dummy/app/views/users/index.jade
246
+ - spec/dummy/app/views/users/show.jade
247
+ - spec/dummy/config.ru
248
+ - spec/dummy/config/application.rb
249
+ - spec/dummy/config/boot.rb
250
+ - spec/dummy/config/database.yml
251
+ - spec/dummy/config/environment.rb
252
+ - spec/dummy/config/environments/development.rb
253
+ - spec/dummy/config/environments/production.rb
254
+ - spec/dummy/config/environments/test.rb
255
+ - spec/dummy/config/initializers/backtrace_silencers.rb
256
+ - spec/dummy/config/initializers/inflections.rb
257
+ - spec/dummy/config/initializers/jader.rb
258
+ - spec/dummy/config/initializers/mime_types.rb
259
+ - spec/dummy/config/initializers/secret_token.rb
260
+ - spec/dummy/config/initializers/session_store.rb
261
+ - spec/dummy/config/initializers/wrap_parameters.rb
262
+ - spec/dummy/config/locales/en.yml
263
+ - spec/dummy/config/routes.rb
264
+ - spec/dummy/db/migrate/20120816043248_user.rb
265
+ - spec/dummy/db/schema.rb
266
+ - spec/dummy/lib/assets/.gitkeep
267
+ - spec/dummy/log/.gitkeep
268
+ - spec/dummy/public/404.html
269
+ - spec/dummy/public/422.html
270
+ - spec/dummy/public/500.html
271
+ - spec/dummy/public/favicon.ico
272
+ - spec/dummy/script/rails
273
+ - spec/integration/renderer_spec.rb
274
+ - spec/source_spec.rb
275
+ - spec/spec_helper.rb
276
+ - spec/support/global.rb
277
+ - spec/support/matchers.rb
278
+ - spec/template_spec.rb