Sha256: 7b8fa9d3a57c3e55c8fc8c49427664d270539bab11e39d30b4269056d70c0af8

Contents?: true

Size: 932 Bytes

Versions: 8

Compression:

Stored size: 932 Bytes

Contents

# A temple "engine" that can be used to parse ERB and generate HTML
# in just the way we need.
class Brut::FrontEnd::Templates::ERBEngine < Temple::Engine
  # Parse the ERB into sexps
  use Brut::FrontEnd::Templates::ERBParser

  # Handle block syntax used in a <%= 
  use Brut::FrontEnd::Templates::BlockFilter

  # Trim whitespace like ERB does
  use Temple::ERB::Trimming

  # Escape strings only if they are not HTMLSafeString
  use Brut::FrontEnd::Templates::EscapableFilter
  # This filter actually runs the Ruby code
  use Temple::Filters::StaticAnalyzer
  # Flattens nested :multi expressions which I'm not sure is needed, but
  # have cargo-culted from hanami
  use Temple::Filters::MultiFlattener
  # merges sequential :static, which again, not sure is needed, but
  # have cargo-culted from hanami
  use Temple::Filters::StaticMerger

  # This generates everything into a string
  use Temple::Generators::ArrayBuffer
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
brut-0.0.8 lib/brut/front_end/templates/erb_engine.rb
brut-0.0.7 lib/brut/front_end/templates/erb_engine.rb
brut-0.0.6 lib/brut/front_end/templates/erb_engine.rb
brut-0.0.5 lib/brut/front_end/templates/erb_engine.rb
brut-0.0.4 lib/brut/front_end/templates/erb_engine.rb
brut-0.0.3 lib/brut/front_end/templates/erb_engine.rb
brut-0.0.2 lib/brut/front_end/templates/erb_engine.rb
brut-0.0.1 lib/brut/front_end/templates/erb_engine.rb