/usr/lib/ruby/vendor_ruby/slim/engine.rb is in ruby-slim 2.0.2-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | module Slim
# Slim engine which transforms slim code to executable ruby code
# @api public
class Engine < Temple::Engine
# This overwrites some Temple default options or sets default options for Slim specific filters.
# It is recommended to set the default settings only once in the code and avoid duplication. Only use
# `define_options` when you have to override some default settings.
define_options :pretty => false,
:sort_attrs => true,
:attr_quote => '"',
:merge_attrs => {'class' => ' '},
:generator => Temple::Generators::ArrayBuffer,
:default_tag => 'div'
filter :Encoding, :encoding
filter :RemoveBOM
use Slim::Parser, :file, :tabsize, :shortcut, :default_tag, :attr_delims
use Slim::Embedded, :enable_engines, :disable_engines, :pretty
use Slim::Interpolation
use Slim::Splat::Filter, :merge_attrs, :attr_quote, :sort_attrs, :default_tag, :hyphen_attrs
use Slim::DoInserter
use Slim::EndInserter
use Slim::Controls, :disable_capture
html :AttributeSorter, :sort_attrs
html :AttributeMerger, :merge_attrs
use Slim::CodeAttributes, :merge_attrs
use(:AttributeRemover) { Temple::HTML::AttributeRemover.new(:remove_empty_attrs => options[:merge_attrs].keys) }
html :Pretty, :format, :attr_quote, :pretty, :indent, :js_wrapper
filter :Escapable, :use_html_safe, :disable_escape
filter :ControlFlow
filter :MultiFlattener
use :Optimizer do
(options[:streaming] ? Temple::Filters::StaticMerger : Temple::Filters::DynamicInliner).new
end
use :Generator do
options[:generator].new(options.to_hash.reject {|k,v| !options[:generator].default_options.valid_keys.include?(k) })
end
end
end
|