haml-edge 2.3.173 → 2.3.174

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. data/EDGE_GEM_VERSION +1 -1
  2. data/VERSION +1 -1
  3. data/lib/haml/helpers/xss_mods.rb +6 -1
  4. data/lib/haml/util.rb +3 -2
  5. data/lib/sass/tree/rule_node.rb +1 -1
  6. data/test/haml/template_test.rb +12 -0
  7. metadata +3 -38
  8. data/test/haml/spec/README.md +0 -97
  9. data/test/haml/spec/lua_haml_spec.lua +0 -30
  10. data/test/haml/spec/ruby_haml_test.rb +0 -19
  11. data/test/haml/spec/tests.json +0 -534
  12. data/vendor/fssm/LICENSE +0 -20
  13. data/vendor/fssm/README.markdown +0 -55
  14. data/vendor/fssm/Rakefile +0 -59
  15. data/vendor/fssm/VERSION.yml +0 -5
  16. data/vendor/fssm/example.rb +0 -9
  17. data/vendor/fssm/fssm.gemspec +0 -77
  18. data/vendor/fssm/lib/fssm/backends/fsevents.rb +0 -36
  19. data/vendor/fssm/lib/fssm/backends/inotify.rb +0 -26
  20. data/vendor/fssm/lib/fssm/backends/polling.rb +0 -25
  21. data/vendor/fssm/lib/fssm/backends/rubycocoa/fsevents.rb +0 -131
  22. data/vendor/fssm/lib/fssm/monitor.rb +0 -26
  23. data/vendor/fssm/lib/fssm/path.rb +0 -91
  24. data/vendor/fssm/lib/fssm/pathname.rb +0 -502
  25. data/vendor/fssm/lib/fssm/state/directory.rb +0 -57
  26. data/vendor/fssm/lib/fssm/state/file.rb +0 -24
  27. data/vendor/fssm/lib/fssm/support.rb +0 -63
  28. data/vendor/fssm/lib/fssm/tree.rb +0 -176
  29. data/vendor/fssm/lib/fssm.rb +0 -33
  30. data/vendor/fssm/profile/prof-cache.rb +0 -40
  31. data/vendor/fssm/profile/prof-fssm-pathname.html +0 -1231
  32. data/vendor/fssm/profile/prof-pathname.rb +0 -68
  33. data/vendor/fssm/profile/prof-plain-pathname.html +0 -988
  34. data/vendor/fssm/profile/prof.html +0 -2379
  35. data/vendor/fssm/spec/path_spec.rb +0 -75
  36. data/vendor/fssm/spec/root/duck/quack.txt +0 -0
  37. data/vendor/fssm/spec/root/file.css +0 -0
  38. data/vendor/fssm/spec/root/file.rb +0 -0
  39. data/vendor/fssm/spec/root/file.yml +0 -0
  40. data/vendor/fssm/spec/root/moo/cow.txt +0 -0
  41. data/vendor/fssm/spec/spec_helper.rb +0 -14
data/EDGE_GEM_VERSION CHANGED
@@ -1 +1 @@
1
- 2.3.173
1
+ 2.3.174
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.3.173
1
+ 2.3.174
@@ -106,7 +106,12 @@ module ActionView
106
106
  module Helpers
107
107
  module CaptureHelper
108
108
  def with_output_buffer_with_haml_xss(*args, &block)
109
- Haml::Util.html_safe(with_output_buffer_without_haml_xss(*args, &block))
109
+ res = with_output_buffer_without_haml_xss(*args, &block)
110
+ case res
111
+ when Array; res.map {|s| Haml::Util.html_safe(s)}
112
+ when String; Haml::Util.html_safe(res)
113
+ else; res
114
+ end
110
115
  end
111
116
  alias_method :with_output_buffer_without_haml_xss, :with_output_buffer
112
117
  alias_method :with_output_buffer, :with_output_buffer_with_haml_xss
data/lib/haml/util.rb CHANGED
@@ -233,9 +233,10 @@ module Haml
233
233
  # With older versions of the Rails XSS-safety mechanism,
234
234
  # this destructively modifies the HTML-safety of `text`.
235
235
  #
236
- # @param text [String]
237
- # @return [String] `text`, marked as HTML-safe
236
+ # @param text [String, nil]
237
+ # @return [String, nil] `text`, marked as HTML-safe
238
238
  def html_safe(text)
239
+ return unless text
239
240
  return text.html_safe if defined?(ActiveSupport::SafeBuffer)
240
241
  text.html_safe!
241
242
  end
@@ -285,7 +285,7 @@ module Sass::Tree
285
285
 
286
286
  def debug_info_rule
287
287
  node = DirectiveNode.new("@media -sass-debug-info")
288
- debug_info.each do |k, v|
288
+ debug_info.map {|k, v| [k.to_s, v.to_s]}.sort.each do |k, v|
289
289
  rule = RuleNode.new(nil)
290
290
  rule.resolved_rules = [[k.to_s.gsub(/[^\w-]/, "\\\\\\0")]]
291
291
  val = v.to_s.gsub(/[^\w-]/, "\\\\\\0").
@@ -77,6 +77,9 @@ class TemplateTest < Test::Unit::TestCase
77
77
  base.send(:_evaluate_assigns_and_ivars)
78
78
  end
79
79
 
80
+ # This is needed by RJS in (at least) Rails 3
81
+ base.instance_variable_set('@template', base)
82
+
80
83
  # This is used by form_for.
81
84
  # It's usually provided by ActionController::Base.
82
85
  def base.protect_against_forgery?; false; end
@@ -389,6 +392,15 @@ HTML
389
392
  = f.text_field :title
390
393
  Body:
391
394
  = f.text_field :body
395
+ HAML
396
+ end
397
+
398
+ def test_rjs
399
+ assert_equal(<<HTML, render(<<HAML, :action_view))
400
+ window.location.reload();
401
+ HTML
402
+ = update_page do |p|
403
+ - p.reload
392
404
  HAML
393
405
  end
394
406
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: haml-edge
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.173
4
+ version: 2.3.174
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Weizenbaum
@@ -64,15 +64,15 @@ files:
64
64
  - lib/haml/helpers/xss_mods.rb
65
65
  - lib/haml/html.rb
66
66
  - lib/haml/precompiler.rb
67
- - lib/haml/util.rb
68
67
  - lib/haml/html/erb.rb
68
+ - lib/haml/railtie.rb
69
+ - lib/haml/util.rb
69
70
  - lib/haml/shared.rb
70
71
  - lib/haml/template.rb
71
72
  - lib/haml/template/patch.rb
72
73
  - lib/haml/template/plugin.rb
73
74
  - lib/haml/root.rb
74
75
  - lib/haml/version.rb
75
- - lib/haml/railtie.rb
76
76
  - lib/sass.rb
77
77
  - lib/sass/css.rb
78
78
  - lib/sass/engine.rb
@@ -113,36 +113,6 @@ files:
113
113
  - lib/sass/tree/root_node.rb
114
114
  - lib/sass/tree/variable_node.rb
115
115
  - lib/sass/tree/while_node.rb
116
- - vendor/fssm/LICENSE
117
- - vendor/fssm/README.markdown
118
- - vendor/fssm/Rakefile
119
- - vendor/fssm/VERSION.yml
120
- - vendor/fssm/example.rb
121
- - vendor/fssm/fssm.gemspec
122
- - vendor/fssm/lib/fssm.rb
123
- - vendor/fssm/lib/fssm/backends/fsevents.rb
124
- - vendor/fssm/lib/fssm/backends/inotify.rb
125
- - vendor/fssm/lib/fssm/backends/polling.rb
126
- - vendor/fssm/lib/fssm/backends/rubycocoa/fsevents.rb
127
- - vendor/fssm/lib/fssm/monitor.rb
128
- - vendor/fssm/lib/fssm/path.rb
129
- - vendor/fssm/lib/fssm/pathname.rb
130
- - vendor/fssm/lib/fssm/state/directory.rb
131
- - vendor/fssm/lib/fssm/state/file.rb
132
- - vendor/fssm/lib/fssm/support.rb
133
- - vendor/fssm/lib/fssm/tree.rb
134
- - vendor/fssm/profile/prof-cache.rb
135
- - vendor/fssm/profile/prof-fssm-pathname.html
136
- - vendor/fssm/profile/prof-pathname.rb
137
- - vendor/fssm/profile/prof-plain-pathname.html
138
- - vendor/fssm/profile/prof.html
139
- - vendor/fssm/spec/path_spec.rb
140
- - vendor/fssm/spec/root/duck/quack.txt
141
- - vendor/fssm/spec/root/file.css
142
- - vendor/fssm/spec/root/file.rb
143
- - vendor/fssm/spec/root/file.yml
144
- - vendor/fssm/spec/root/moo/cow.txt
145
- - vendor/fssm/spec/spec_helper.rb
146
116
  - bin/css2sass
147
117
  - bin/haml
148
118
  - bin/html2haml
@@ -176,10 +146,6 @@ files:
176
146
  - test/haml/results/tag_parsing.xhtml
177
147
  - test/haml/results/very_basic.xhtml
178
148
  - test/haml/results/whitespace_handling.xhtml
179
- - test/haml/spec/README.md
180
- - test/haml/spec/lua_haml_spec.lua
181
- - test/haml/spec/ruby_haml_test.rb
182
- - test/haml/spec/tests.json
183
149
  - test/haml/template_test.rb
184
150
  - test/haml/util_test.rb
185
151
  - test/haml/templates/_av_partial_1.haml
@@ -328,7 +294,6 @@ test_files:
328
294
  - test/haml/engine_test.rb
329
295
  - test/haml/helper_test.rb
330
296
  - test/haml/html2haml_test.rb
331
- - test/haml/spec/ruby_haml_test.rb
332
297
  - test/haml/template_test.rb
333
298
  - test/haml/util_test.rb
334
299
  - test/haml/spec_test.rb
@@ -1,97 +0,0 @@
1
- # Haml Spec #
2
-
3
- Haml Spec provides a basic suite of tests for Haml interpreters.
4
-
5
- It is intented for developers who are creating or maintaining an implementation
6
- of the [Haml](http://haml-lang.com) markup language.
7
-
8
- At the moment, there are test runners for the [original Haml](http://github.com/nex3/haml)
9
- in Ruby, and for [Lua Haml](http://github.com/norman/lua-haml). Support for
10
- other versions of Haml will be added if their developers/maintainers
11
- are interested in using it.
12
-
13
- ## The Tests ##
14
-
15
- The tests are kept in JSON format for portability across languages. Each test
16
- is a JSON object with expected input, output, local variables and configuration
17
- parameters (see below). The test suite only provides tests for features which
18
- are portable, therefore no tests for script are provided, nor for external
19
- filters such as :markdown or :textile.
20
-
21
- The one major exception to this are the tests for interpolation, which you may
22
- need to modify with a regular expression to run under PHP or Perl, which
23
- require a symbol before variable names. These tests are included despite being
24
- less than 100% portable because interpolation is an important part of Haml and
25
- can be tricky to implement.
26
-
27
- ## Running the Tests ##
28
-
29
- ### Ruby ###
30
-
31
- In order to make it as easy as possible for non-Ruby programmers to run the
32
- Ruby Haml tests, the Ruby test runner uses test/unit, rather than something
33
- fancier like Rspec. To run them you probably only need to install `haml`, and
34
- possibly `ruby` if your platform doesn't come with it by default. If you're
35
- using Ruby 1.8.x, you'll also need to install `json`:
36
-
37
- sudo gem install haml
38
- # for Ruby 1.8.x; check using "ruby --version" if unsure
39
- sudo gem install json
40
-
41
- Then, running the Ruby test suite is easy:
42
-
43
- ruby ruby_haml_test.rb
44
-
45
- ### Lua ###
46
-
47
- The Lua test depends on [Telescope](http://telescope.luaforge.net/),
48
- [jason4lua](http://json.luaforge.net/), and
49
- [Lua Haml](http://github.com/norman/lua-haml). Install and
50
- run `tsc lua_haml_spec.lua`.
51
-
52
- ## Contributing ##
53
-
54
- ### Getting it ###
55
-
56
- You can access the [Git repository](http://github.com/norman/haml-spec) at:
57
-
58
- git://github.com/norman/haml-spec.git
59
-
60
- Patches are *very* welcome, as are test runners for your Haml implementation.
61
-
62
- As long as any test you add run against Ruby Haml and are not redundant, I'll
63
- be very happy to add them.
64
-
65
- ### Test JSON format ###
66
-
67
- "test name" : {
68
- "haml" : "haml input",
69
- "html" : "expected html output",
70
- "result" : "expected test result",
71
- "locals" : "local vars",
72
- "config" : "config params"
73
- }
74
-
75
- * test name: This should be a *very* brief description of what's being tested. It can
76
- be used by the test runners to name test methods, or to exclude certain tests from being
77
- run.
78
- * haml: The Haml code to be evaluated. Always required.
79
- * html: The HTML output that should be generated. Required unless "result" is "error".
80
- * result: Can be "pass" or "error". If it's absent, then "pass" is assumed. If it's "error",
81
- then the goal of the test is to make sure that malformed Haml code generates an error.
82
- * locals: An object containing local variables needed for the test.
83
- * config: An object containing configuration parameters used to run the test.
84
- The configuration parameters should be usable directly by Ruby's Haml with no
85
- modification. If your implementation uses config parameters with different
86
- names, you may need to process them to make them match your implementation.
87
- If your implementation has options that do not exist in Ruby's Haml, then you
88
- should add tests for this in your implementation's test rather than here.
89
-
90
- ## License ##
91
-
92
- This project is released under the [WTFPL](http://sam.zoy.org/wtfpl/) in order
93
- to be as usable as possible in any project, commercial or free.
94
-
95
- ## Author ##
96
-
97
- [Norman Clarke](mailto:norman@njclarke.com)
@@ -1,30 +0,0 @@
1
- require 'luarocks.require'
2
- require 'json'
3
- require 'telescope'
4
- require 'haml'
5
-
6
- local function get_tests(filename)
7
- local self = debug.getinfo(1).short_src
8
- if self:match("/") then return "./" .. self:gsub("[^/]*%.lua$", "/" .. filename)
9
- elseif self:match("\\") then return self:gsub("[^\\]*%.lua$", "\\" .. filename)
10
- else return filename
11
- end
12
- end
13
-
14
- local fh = assert(io.open(get_tests("tests.json")))
15
- local input = fh:read '*a'
16
- fh:close()
17
-
18
- local contexts = json.decode(input)
19
-
20
- describe("LuaHaml", function()
21
- for context, expectations in pairs(contexts) do
22
- describe("When handling " .. context, function()
23
- for name, exp in pairs(expectations) do
24
- it(string.format("should correctly render %s", name), function()
25
- assert_equal(haml.render(exp.haml, exp.config or {}, exp.locals or {}), exp.html)
26
- end)
27
- end
28
- end)
29
- end
30
- end)
@@ -1,19 +0,0 @@
1
- require "test/unit"
2
- require "json"
3
- require "haml"
4
-
5
- class HamlTest < Test::Unit::TestCase
6
- contexts = JSON.parse(File.read(File.dirname(__FILE__) + "/tests.json"))
7
- contexts.each do |context|
8
- context[1].each do |name, test|
9
- class_eval(<<-EOTEST)
10
- def test_#{name.gsub(/\s+|[^a-zA-Z0-9_]/, "_")}
11
- locals = Hash[*(#{test}["locals"] || {}).collect {|k, v| [k.to_sym, v] }.flatten]
12
- options = Hash[*(#{test}["config"] || {}).collect {|k, v| [k.to_sym, v.to_sym] }.flatten]
13
- engine = Haml::Engine.new(#{test}["haml"], options)
14
- assert_equal(engine.render(Object.new, locals).chomp, #{test}["html"])
15
- end
16
- EOTEST
17
- end
18
- end
19
- end