temple 0.6.8 → 0.6.9

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: de7a5f291f7511f72860f051904f76a53789d165
4
- data.tar.gz: 8d879f88faf0ea956abaaeac2cc65d1c26669098
3
+ metadata.gz: 1bcc7e8bd7f61ec9c8e2f023f0fb53688b0df1c2
4
+ data.tar.gz: 6b409c3649bf823b1cf844c9604929ee51b42dab
5
5
  SHA512:
6
- metadata.gz: 5c98e7222a80e362cb7570a9c5ca3a9db3f99082d8a8fe756f3420863e215faeccfd7b7b1063d845c695c9262b15746deed73f94a40ddb323f2548b51a58b189
7
- data.tar.gz: da695941eb653ca94f4fb039b757c4fafe05ee9dc7c83dc11428cb6c05b31d72213d5a9d7dbfa70ef2fbadcd73446f17982ff5f9bb329bc06b97cffd21ab8295
6
+ metadata.gz: a3a07bb7ec8d123a48c659771f3c59d09e183519cefcb47b9fc7af5c869d77271da4773906652e97cf5d6c6b3b6b6d937641fcacd00a491a02fdfebbd33899c6
7
+ data.tar.gz: 5061b599c57d49d77f48bde5b89c8aac6b20df3038de15386f12913e2c7122f107af38500073fd76ff76c77001b55312fbd9629c447a3399a81a90121f1b3758
data/CHANGES CHANGED
@@ -1,3 +1,14 @@
1
+ 0.6.9
2
+
3
+ * HTML::Pretty: Fix wrong line numbers
4
+ * Tilt template: Don't overwrite buffer always
5
+ * Generator: add preamble and postamble which do nothing
6
+ * Tilt template: don't overwrite streaming option
7
+ * OptionHash: inherit valid keys
8
+ * temple/html/safe: add poor man's html_safe? implementation (not required automatically)
9
+ * Temple::Mixins::GrammarDSL - Add some missing match? methods
10
+ * Temple::Utils.escape_html_safe - Add parameter safe
11
+
1
12
  0.6.8
2
13
 
3
14
  * HTML::Fast add svg doctype
@@ -177,7 +188,7 @@
177
188
 
178
189
  0.1.1
179
190
 
180
- * Test added
191
+ * Test added
181
192
 
182
193
  0.1.0
183
194
 
@@ -11,6 +11,13 @@ module Temple
11
11
  define_options :capture_generator => 'StringBuffer',
12
12
  :buffer => '_buf'
13
13
 
14
+ def preamble
15
+ end
16
+
17
+ def postamble
18
+ 'nil'
19
+ end
20
+
14
21
  def call(exp)
15
22
  [preamble, compile(exp), postamble].join('; ')
16
23
  end
@@ -71,7 +71,8 @@ module Temple
71
71
  end
72
72
 
73
73
  def valid_keys
74
- keys.concat(@valid.keys).uniq
74
+ (keys + @valid.keys +
75
+ @hash.map {|h| h.valid_keys if h.respond_to?(:valid_keys) }.compact.flatten).uniq
75
76
  end
76
77
 
77
78
  def add_valid_keys(*keys)
@@ -39,7 +39,7 @@ module Temple
39
39
  tmp = unique_name
40
40
  indent_code = ''
41
41
  indent_code << "#{tmp} = #{tmp}.sub(/\\A\\s*\\n?/, \"\\n\"); " if options[:indent_tags].include?(@last)
42
- indent_code << "#{tmp} = #{tmp}.gsub(\"\n\", #{indent.inspect}); "
42
+ indent_code << "#{tmp} = #{tmp}.gsub(\"\\n\", #{indent.inspect}); "
43
43
  if ''.respond_to?(:html_safe)
44
44
  safe = unique_name
45
45
  # we have to first save if the string was html_safe
@@ -0,0 +1,23 @@
1
+ module Temple
2
+ module HTML
3
+ class SafeString < String
4
+ def html_safe?; true end
5
+ def html_safe; self end
6
+ def to_s; self end
7
+ end
8
+ end
9
+ end
10
+
11
+ class Object
12
+ def html_safe?; false end
13
+ end
14
+
15
+ class Numeric
16
+ def html_safe?; true end
17
+ end
18
+
19
+ class String
20
+ def html_safe
21
+ Temple::HTML::SafeString.new(self)
22
+ end
23
+ end
@@ -7,6 +7,12 @@ module Temple
7
7
  @grammar = grammar
8
8
  end
9
9
 
10
+ def match?(exp)
11
+ match(exp, [])
12
+ end
13
+ alias === match?
14
+ alias =~ match?
15
+
10
16
  def |(rule)
11
17
  Or.new(@grammar, self, rule)
12
18
  end
@@ -53,10 +59,6 @@ module Temple
53
59
  success
54
60
  end
55
61
 
56
- def match?(exp)
57
- match(exp, [])
58
- end
59
-
60
62
  def validate!(exp)
61
63
  unmatched = []
62
64
  unless match(exp, unmatched)
@@ -120,14 +122,13 @@ module Temple
120
122
  def match?(exp)
121
123
  const_get(:Expression).match?(exp)
122
124
  end
125
+ alias === match?
126
+ alias =~ match?
123
127
 
124
128
  def validate!(exp)
125
129
  const_get(:Expression).validate!(exp)
126
130
  end
127
131
 
128
- alias === match?
129
- alias =~ match?
130
-
131
132
  def Value(value)
132
133
  Value.new(self, value)
133
134
  end
@@ -21,10 +21,9 @@ module Temple
21
21
  #
22
22
  # @return [void]
23
23
  def prepare
24
- # Overwrite option: No streaming support in Tilt
25
- opts = {}.update(self.class.default_options).update(options).update(:file => eval_file, :streaming => false)
24
+ opts = {}.update(self.class.default_options).update(options).update(:file => eval_file)
26
25
  opts.delete(:mime_type)
27
- opts.delete(:outvar) # Sinatra gives us this invalid variable
26
+ opts[:buffer] ||= opts.delete(:outvar) if opts.include?(:outvar) # HACK Sinatra gives us outvar instead of buffer
28
27
  @src = self.class.compile(data, opts)
29
28
  end
30
29
 
@@ -13,9 +13,10 @@ module Temple
13
13
  # Strings which are declared as html_safe are not escaped.
14
14
  #
15
15
  # @param html [String] The string to escape
16
+ # @param safe [Boolean] If false use escape_html
16
17
  # @return [String] The escaped string
17
- def escape_html_safe(html)
18
- html.html_safe? ? html : escape_html(html)
18
+ def escape_html_safe(html, safe = true)
19
+ safe && html.html_safe? ? html : escape_html(html)
19
20
  end
20
21
 
21
22
  if defined?(EscapeUtils)
@@ -1,3 +1,3 @@
1
1
  module Temple
2
- VERSION = '0.6.8'
2
+ VERSION = '0.6.9'
3
3
  end
@@ -34,7 +34,7 @@ describe Temple::Filters::Escapable do
34
34
  it 'should have use_html_safe option' do
35
35
  filter = Temple::Filters::Escapable.new(:use_html_safe => true)
36
36
  filter.call([:escape, true,
37
- [:static, HtmlSafeString.new("a < b")]
37
+ [:static, Temple::HTML::SafeString.new("a < b")]
38
38
  ]).should.equal [:static, "a < b"]
39
39
  end
40
40
 
@@ -1,20 +1,11 @@
1
1
  require 'bacon'
2
2
  require 'temple'
3
3
 
4
- class HtmlSafeString < String
5
- def html_safe?
6
- true
7
- end
8
-
9
- def to_s
10
- self
11
- end
12
- end
13
-
14
4
  module TestHelper
15
5
  def with_html_safe
6
+ require 'temple/html/safe'
16
7
  String.send(:define_method, :html_safe?) { false }
17
- String.send(:define_method, :html_safe) { HtmlSafeString.new(self) }
8
+ String.send(:define_method, :html_safe) { Temple::HTML::SafeString.new(self) }
18
9
  yield
19
10
  ensure
20
11
  String.send(:undef_method, :html_safe?) if String.method_defined?(:html_safe?)
@@ -22,7 +22,7 @@ describe Temple::HTML::Pretty do
22
22
  [:static, "\n text"],
23
23
  [:multi,
24
24
  [:code, "_temple_html_pretty2 = (code).to_s"],
25
- [:code, "if _temple_html_pretty1 !~ _temple_html_pretty2; _temple_html_pretty2 = _temple_html_pretty2.gsub(\"\n\", \"\\n \"); end"],
25
+ [:code, "if _temple_html_pretty1 !~ _temple_html_pretty2; _temple_html_pretty2 = _temple_html_pretty2.gsub(\"\\n\", \"\\n \"); end"],
26
26
  [:dynamic, "_temple_html_pretty2"]]],
27
27
  [:static, "\n </p>"]],
28
28
  [:static, "\n</div>"]]]
@@ -54,7 +54,7 @@ describe Temple::HTML::Pretty do
54
54
  [:code, "_temple_html_pretty1 = /<code|<pre|<textarea/"],
55
55
  [:multi,
56
56
  [:code, "_temple_html_pretty2 = (\"text<\".html_safe).to_s"],
57
- [:code, "if _temple_html_pretty1 !~ _temple_html_pretty2; _temple_html_pretty3 = _temple_html_pretty2.html_safe?; _temple_html_pretty2 = _temple_html_pretty2.gsub(\"\n\", \"\\n\"); _temple_html_pretty2 = _temple_html_pretty2.html_safe if _temple_html_pretty3; end"],
57
+ [:code, "if _temple_html_pretty1 !~ _temple_html_pretty2; _temple_html_pretty3 = _temple_html_pretty2.html_safe?; _temple_html_pretty2 = _temple_html_pretty2.gsub(\"\\n\", \"\\n\"); _temple_html_pretty2 = _temple_html_pretty2.html_safe if _temple_html_pretty3; end"],
58
58
  [:dynamic, "_temple_html_pretty2"]]]
59
59
  end
60
60
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: temple
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.8
4
+ version: 0.6.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Magnus Holm
@@ -9,48 +9,48 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-07-04 00:00:00.000000000 Z
12
+ date: 2014-10-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: tilt
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - '>='
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
20
  version: '0'
21
21
  type: :development
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - '>='
25
+ - - ">="
26
26
  - !ruby/object:Gem::Version
27
27
  version: '0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: bacon
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - '>='
32
+ - - ">="
33
33
  - !ruby/object:Gem::Version
34
34
  version: '0'
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - '>='
39
+ - - ">="
40
40
  - !ruby/object:Gem::Version
41
41
  version: '0'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: rake
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - '>='
46
+ - - ">="
47
47
  - !ruby/object:Gem::Version
48
48
  version: '0'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - '>='
53
+ - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0'
56
56
  description:
@@ -61,9 +61,9 @@ executables: []
61
61
  extensions: []
62
62
  extra_rdoc_files: []
63
63
  files:
64
- - .gitignore
65
- - .travis.yml
66
- - .yardopts
64
+ - ".gitignore"
65
+ - ".travis.yml"
66
+ - ".yardopts"
67
67
  - CHANGES
68
68
  - EXPRESSIONS.md
69
69
  - Gemfile
@@ -103,6 +103,7 @@ files:
103
103
  - lib/temple/html/fast.rb
104
104
  - lib/temple/html/filter.rb
105
105
  - lib/temple/html/pretty.rb
106
+ - lib/temple/html/safe.rb
106
107
  - lib/temple/mixins/dispatcher.rb
107
108
  - lib/temple/mixins/engine_dsl.rb
108
109
  - lib/temple/mixins/grammar_dsl.rb
@@ -147,40 +148,19 @@ require_paths:
147
148
  - lib
148
149
  required_ruby_version: !ruby/object:Gem::Requirement
149
150
  requirements:
150
- - - '>='
151
+ - - ">="
151
152
  - !ruby/object:Gem::Version
152
153
  version: '0'
153
154
  required_rubygems_version: !ruby/object:Gem::Requirement
154
155
  requirements:
155
- - - '>='
156
+ - - ">="
156
157
  - !ruby/object:Gem::Version
157
158
  version: '0'
158
159
  requirements: []
159
160
  rubyforge_project:
160
- rubygems_version: 2.0.0
161
+ rubygems_version: 2.2.2
161
162
  signing_key:
162
163
  specification_version: 4
163
164
  summary: Template compilation framework in Ruby
164
- test_files:
165
- - test/filters/test_code_merger.rb
166
- - test/filters/test_control_flow.rb
167
- - test/filters/test_dynamic_inliner.rb
168
- - test/filters/test_eraser.rb
169
- - test/filters/test_escapable.rb
170
- - test/filters/test_multi_flattener.rb
171
- - test/filters/test_static_merger.rb
172
- - test/helper.rb
173
- - test/html/test_attribute_merger.rb
174
- - test/html/test_attribute_remover.rb
175
- - test/html/test_attribute_sorter.rb
176
- - test/html/test_fast.rb
177
- - test/html/test_pretty.rb
178
- - test/mixins/test_dispatcher.rb
179
- - test/mixins/test_grammar_dsl.rb
180
- - test/test_engine.rb
181
- - test/test_erb.rb
182
- - test/test_filter.rb
183
- - test/test_generator.rb
184
- - test/test_grammar.rb
185
- - test/test_hash.rb
186
- - test/test_utils.rb
165
+ test_files: []
166
+ has_rdoc: