Sha256: 4b1ae3d7df35f67e833243b5157b3718d91c5ecbbc32df73f859561325e9607d

Contents?: true

Size: 1.1 KB

Versions: 106

Compression:

Stored size: 1.1 KB

Contents

module Slim
  # In Slim you don't need the do keyword sometimes. This
  # filter adds the missing keyword.
  #
  #   - 10.times
  #     | Hello
  #
  # @api private
  class DoInserter < Filter
    BLOCK_REGEX = /(\A(if|unless|else|elsif|when|begin|rescue|ensure|case)\b)|\bdo\s*(\|[^\|]*\|\s*)?\Z/

    # Handle control expression `[:slim, :control, code, content]`
    #
    # @param [String] code Ruby code
    # @param [Array] content Temple expression
    # @return [Array] Compiled temple expression
    def on_slim_control(code, content)
      code = code + ' do' unless code =~ BLOCK_REGEX || empty_exp?(content)
      [:slim, :control, code, compile(content)]
    end

    # Handle output expression `[:slim, :output, escape, code, content]`
    #
    # @param [Boolean] escape Escape html
    # @param [String] code Ruby code
    # @param [Array] content Temple expression
    # @return [Array] Compiled temple expression
    def on_slim_output(escape, code, content)
      code = code + ' do' unless code =~ BLOCK_REGEX || empty_exp?(content)
      [:slim, :output, escape, code, compile(content)]
    end
  end
end

Version data entries

106 entries across 92 versions & 6 rubygems

Version Path
cm-admin-1.5.22 vendor/bundle/ruby/3.3.0/gems/slim-4.1.0/lib/slim/do_inserter.rb
cm-admin-1.5.21 vendor/bundle/ruby/3.3.0/gems/slim-4.1.0/lib/slim/do_inserter.rb
cm-admin-1.5.20 vendor/bundle/ruby/3.3.0/gems/slim-4.1.0/lib/slim/do_inserter.rb
brakeman-6.1.2 bundle/ruby/3.3.0/gems/slim-4.1.0/lib/slim/do_inserter.rb
brakeman-6.1.1 bundle/ruby/3.0.0/gems/slim-4.1.0/lib/slim/do_inserter.rb
brakeman-6.1.0 bundle/ruby/3.1.0/gems/slim-4.1.0/lib/slim/do_inserter.rb
scrapbook-0.3.2 vendor/ruby/2.7.0/gems/slim-4.1.0/lib/slim/do_inserter.rb
brakeman-6.0.1 bundle/ruby/3.1.0/gems/slim-4.1.0/lib/slim/do_inserter.rb
scrapbook-0.3.1 vendor/ruby/2.7.0/gems/slim-4.1.0/lib/slim/do_inserter.rb
brakeman-6.0.0 bundle/ruby/3.0.0/gems/slim-4.1.0/lib/slim/do_inserter.rb
brakeman-5.4.1 bundle/ruby/3.1.0/gems/slim-4.1.0/lib/slim/do_inserter.rb
brakeman-5.4.0 bundle/ruby/2.7.0/gems/slim-4.1.0/lib/slim/do_inserter.rb
brakeman-5.3.1 bundle/ruby/2.7.0/gems/slim-4.1.0/lib/slim/do_inserter.rb
brakeman-5.3.0 bundle/ruby/2.7.0/gems/slim-4.1.0/lib/slim/do_inserter.rb
brakeman-5.2.3 bundle/ruby/2.7.0/gems/slim-4.1.0/lib/slim/do_inserter.rb
brakeman-5.2.2 bundle/ruby/2.7.0/gems/slim-4.1.0/lib/slim/do_inserter.rb
brakeman-5.2.1 bundle/ruby/2.7.0/gems/slim-4.1.0/lib/slim/do_inserter.rb
brakeman-5.2.0 bundle/ruby/2.7.0/gems/slim-4.1.0/lib/slim/do_inserter.rb
brakeman-5.1.2 bundle/ruby/2.7.0/gems/slim-4.1.0/lib/slim/do_inserter.rb
brakeman-5.1.1 bundle/ruby/2.7.0/gems/slim-4.1.0/lib/slim/do_inserter.rb