faml 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4e1c28fc0f0730f266beae5f8070b209473124a1
4
- data.tar.gz: e72a6459d73522e5c3f0ac8a6b08b3cb5ace6a52
3
+ metadata.gz: 4d3d6e9933ba8aa9a3e12fbba30474f4f930c912
4
+ data.tar.gz: de060fd62fd0dbbadcb2afce01af8118a44b1735
5
5
  SHA512:
6
- metadata.gz: 459e08b4aec76e233eb8d2e2daedd2657dfd0a8c5b3aefeef7f672052f7c466d7474ad254c733ca25b7ef1c413984993e0628355b67364c44bae78923a6bc670
7
- data.tar.gz: 73173ad82ac2fd1fbc3cf6e69045eb3e259d5fa56b1532d4434a3fdb97544a952d6e5f83a80a2e4f5b546117c12a7c33d0c57f6715f0e16c8727e25b496a7a65
6
+ metadata.gz: ec7e51f60ee73922dafa2dace0a192d502e6654ec96490b61c30e149d601e5d41583f4eebd689b52d6c1db488c5f370304619ff41022edeb7d9c65059b2d87aa
7
+ data.tar.gz: 7862119f1f6240fb3cf137dcca00c0be7aade9dfe73ed1c4e00484b4095909b45fb6340e80bb010ed66a6e3772b8f956e382b025b0b1ba8a59d6b09772550bfd
@@ -1,7 +1,13 @@
1
+ ## 0.2.3 (2015-03-25)
2
+ - Always escape texts in :escape filter
3
+ - It was not escaped when used in Rails
4
+ - `preserve` helper returns html_safe string in Rails
5
+ - For compatibility with haml's Haml::Helpers::XssMods
6
+
1
7
  ## 0.2.2 (2015-03-23)
2
8
  - Fix attribute rendering when the key is in `:'foo-bar'` form
3
9
  - Provide `preserve` method in view contexts
4
- - For compatibility with haml's Haml::Helper
10
+ - For compatibility with haml's Haml::Helpers
5
11
 
6
12
  ## 0.2.1 (2015-03-23)
7
13
  - Allow double rmnl
@@ -3,6 +3,7 @@ require 'temple'
3
3
  require 'faml/ast'
4
4
  require 'faml/filter_compilers'
5
5
  require 'faml/helpers'
6
+ require 'faml/rails_helpers'
6
7
  require 'faml/static_hash_parser'
7
8
  require 'faml/text_compiler'
8
9
 
@@ -21,6 +22,7 @@ module Faml
21
22
  autoclose: DEFAULT_AUTO_CLOSE_TAGS,
22
23
  format: :html,
23
24
  preserve: DEFAULT_PRESERVE_TAGS,
25
+ use_html_safe: false,
24
26
  )
25
27
 
26
28
  def initialize(*)
@@ -71,11 +73,19 @@ module Faml
71
73
  end
72
74
 
73
75
  def compile_root(ast)
74
- [:multi, [:code, 'extend ::Faml::Helpers']].tap do |temple|
76
+ [:multi, [:code, "extend ::#{helper_module.name}"]].tap do |temple|
75
77
  compile_children(ast, temple)
76
78
  end
77
79
  end
78
80
 
81
+ def helper_module
82
+ if options[:use_html_safe]
83
+ RailsHelpers
84
+ else
85
+ Helpers
86
+ end
87
+ end
88
+
79
89
  def compile_children(ast, temple)
80
90
  ast.children.each do |c|
81
91
  temple << compile(c)
@@ -9,7 +9,7 @@ module Faml
9
9
  temple = [:multi, [:newline]]
10
10
  compile_texts(temple, texts)
11
11
  temple << [:static, "\n"]
12
- escape_code = Temple::Filters::Escapable.new.instance_variable_get(:@escape_code)
12
+ escape_code = Temple::Filters::Escapable.new(use_html_safe: false).instance_variable_get(:@escape_code)
13
13
  sym = unique_name
14
14
  [:multi,
15
15
  [:capture, sym, temple],
@@ -0,0 +1,11 @@
1
+ require 'faml/helpers'
2
+
3
+ module Faml
4
+ # Don't use these methods!
5
+
6
+ module RailsHelpers
7
+ def preserve(input)
8
+ Helpers.preserve(input).html_safe
9
+ end
10
+ end
11
+ end
@@ -1,3 +1,3 @@
1
1
  module Faml
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
@@ -0,0 +1,2 @@
1
+ :escaped
2
+ <marquee>escape me</marquee>
@@ -0,0 +1 @@
1
+ = preserve "<b>preserve\nme</b>"
@@ -3,5 +3,7 @@ Rails.application.routes.draw do
3
3
  get :hello
4
4
  get :with_variables
5
5
  get :with_capture
6
+ get :escaped
7
+ get :preserve
6
8
  end
7
9
  end
@@ -38,4 +38,18 @@ RSpec.describe 'Faml with Rails', type: :request do
38
38
  expect(response).to be_ok
39
39
  expect(response.body).to include("<div><div>\n<p>Hello</p>\n</div>\n</div>\n")
40
40
  end
41
+
42
+ it 'works with :escaped filter' do
43
+ get '/books/escaped'
44
+ expect(response).to be_ok
45
+ expect(response.body).to include("&lt;marquee&gt;escape me&lt;/marquee&gt;")
46
+ end
47
+
48
+ describe 'preserve helper' do
49
+ it 'returns html_safe string' do
50
+ get '/books/preserve'
51
+ expect(response).to be_ok
52
+ expect(response.body).to include('<b>preserve&#x000A;me</b>')
53
+ end
54
+ end
41
55
  end
metadata CHANGED
@@ -1,237 +1,237 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: faml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kohei Suzuki
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-23 00:00:00.000000000 Z
11
+ date: 2015-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: escape_utils
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: parser
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: temple
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: tilt
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: appraisal
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: benchmark-ips
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: bundler
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: coffee-script
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - '>='
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - '>='
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: coveralls
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - '>='
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - '>='
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: haml
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - '>='
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - '>='
150
+ - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: rake
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - '>='
157
+ - - ">="
158
158
  - !ruby/object:Gem::Version
159
159
  version: '0'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - '>='
164
+ - - ">="
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: rake-compiler
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - '>='
171
+ - - ">="
172
172
  - !ruby/object:Gem::Version
173
173
  version: '0'
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - '>='
178
+ - - ">="
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: redcarpet
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
- - - '>='
185
+ - - ">="
186
186
  - !ruby/object:Gem::Version
187
187
  version: '0'
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - '>='
192
+ - - ">="
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0'
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: rspec
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
- - - '>='
199
+ - - ">="
200
200
  - !ruby/object:Gem::Version
201
201
  version: '3'
202
202
  type: :development
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
- - - '>='
206
+ - - ">="
207
207
  - !ruby/object:Gem::Version
208
208
  version: '3'
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: sass
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
- - - '>='
213
+ - - ">="
214
214
  - !ruby/object:Gem::Version
215
215
  version: '0'
216
216
  type: :development
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
- - - '>='
220
+ - - ">="
221
221
  - !ruby/object:Gem::Version
222
222
  version: '0'
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: simplecov
225
225
  requirement: !ruby/object:Gem::Requirement
226
226
  requirements:
227
- - - '>='
227
+ - - ">="
228
228
  - !ruby/object:Gem::Version
229
229
  version: '0'
230
230
  type: :development
231
231
  prerelease: false
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
- - - '>='
234
+ - - ">="
235
235
  - !ruby/object:Gem::Version
236
236
  version: '0'
237
237
  description: Faster implementation of Haml template language.
@@ -243,10 +243,10 @@ extensions:
243
243
  - ext/attribute_builder/extconf.rb
244
244
  extra_rdoc_files: []
245
245
  files:
246
- - .gitignore
247
- - .gitmodules
248
- - .rspec
249
- - .travis.yml
246
+ - ".gitignore"
247
+ - ".gitmodules"
248
+ - ".rspec"
249
+ - ".travis.yml"
250
250
  - Appraisals
251
251
  - CHANGELOG.md
252
252
  - Gemfile
@@ -293,6 +293,7 @@ files:
293
293
  - lib/faml/parser.rb
294
294
  - lib/faml/parser_utils.rb
295
295
  - lib/faml/rails_handler.rb
296
+ - lib/faml/rails_helpers.rb
296
297
  - lib/faml/railtie.rb
297
298
  - lib/faml/ruby_multiline.rb
298
299
  - lib/faml/script_parser.rb
@@ -314,7 +315,9 @@ files:
314
315
  - spec/rails/app/models/.keep
315
316
  - spec/rails/app/models/book.rb
316
317
  - spec/rails/app/models/concerns/.keep
318
+ - spec/rails/app/views/books/escaped.html.haml
317
319
  - spec/rails/app/views/books/hello.html.haml
320
+ - spec/rails/app/views/books/preserve.html.haml
318
321
  - spec/rails/app/views/books/with_capture.html.haml
319
322
  - spec/rails/app/views/books/with_variables.html.haml
320
323
  - spec/rails/app/views/layouts/application.html.haml
@@ -393,17 +396,17 @@ require_paths:
393
396
  - lib
394
397
  required_ruby_version: !ruby/object:Gem::Requirement
395
398
  requirements:
396
- - - '>='
399
+ - - ">="
397
400
  - !ruby/object:Gem::Version
398
401
  version: '0'
399
402
  required_rubygems_version: !ruby/object:Gem::Requirement
400
403
  requirements:
401
- - - '>='
404
+ - - ">="
402
405
  - !ruby/object:Gem::Version
403
406
  version: '0'
404
407
  requirements: []
405
408
  rubyforge_project:
406
- rubygems_version: 2.0.14
409
+ rubygems_version: 2.2.2
407
410
  signing_key:
408
411
  specification_version: 4
409
412
  summary: Faster implementation of Haml template language.
@@ -421,7 +424,9 @@ test_files:
421
424
  - spec/rails/app/models/.keep
422
425
  - spec/rails/app/models/book.rb
423
426
  - spec/rails/app/models/concerns/.keep
427
+ - spec/rails/app/views/books/escaped.html.haml
424
428
  - spec/rails/app/views/books/hello.html.haml
429
+ - spec/rails/app/views/books/preserve.html.haml
425
430
  - spec/rails/app/views/books/with_capture.html.haml
426
431
  - spec/rails/app/views/books/with_variables.html.haml
427
432
  - spec/rails/app/views/layouts/application.html.haml