diff --git a/lib/hamlit/filters/plain.rb b/lib/hamlit/filters/plain.rb index 761aa6fa..b2a167f5 100644 --- a/lib/hamlit/filters/plain.rb +++ b/lib/hamlit/filters/plain.rb @@ -5,9 +5,6 @@ module Hamlit class Filters class Plain < Base def compile(node) - unless Ripper.respond_to?(:lex) - raise NotImplementedError.new('This platform does not have Ripper.lex required for :plain filter') - end text = node.value[:text] text = text.rstrip unless ::Hamlit::HamlUtil.contains_interpolation?(text) # for compatibility [:multi, *compile_plain(text)] @@ -17,6 +14,10 @@ module Hamlit def compile_plain(text) string_literal = ::Hamlit::HamlUtil.unescape_interpolation(text) + unless Ripper.respond_to?(:lex) # truffleruby doesn't have Ripper.lex + return [[:escape, false, [:dynamic, string_literal]]] + end + StringSplitter.compile(string_literal).map do |temple| type, str = temple case type diff --git a/test/hamlit/filters/plain_test.rb b/test/hamlit/filters/plain_test.rb index a880d05a..78e4a648 100644 --- a/test/hamlit/filters/plain_test.rb +++ b/test/hamlit/filters/plain_test.rb @@ -22,5 +22,5 @@ describe Hamlit::Filters do #{'