Module: WLang

Defined in:
lib/wlang.rb,
lib/wlang/html.rb,
lib/wlang/dummy.rb,
lib/wlang/scope.rb,
lib/wlang/source.rb,
lib/wlang/command.rb,
lib/wlang/dialect.rb,
lib/wlang/version.rb,
lib/wlang/compiler.rb,
lib/wlang/template.rb,
lib/wlang/compiler/filter.rb,
lib/wlang/compiler/parser.rb,
lib/wlang/scope/null_scope.rb,
lib/wlang/scope/proc_scope.rb,
lib/wlang/scope/object_scope.rb,
lib/wlang/scope/binding_scope.rb,
lib/wlang/scope/sinatra_scope.rb,
lib/wlang/source/front_matter.rb,
lib/wlang/compiler/autospacing.rb,
lib/wlang/compiler/to_ruby_code.rb,
lib/wlang/compiler/static_merger.rb,
lib/wlang/compiler/dialect_enforcer.rb,
lib/wlang/compiler/proc_call_removal.rb,
lib/wlang/compiler/strconcat_flattener.rb,
lib/wlang/compiler/to_ruby_abstraction.rb

Overview

WLang is a powerful code generation and templating engine

Defined Under Namespace

Modules: Version Classes: Command, Compiler, Dialect, Dummy, Html, Parser, Scope, Source, Template

Constant Summary collapse

SYMBOLS =

These are allows block symbols

"!^%\"$&'*+?@~#,-./:;=<>|_".chars.to_a
BRACES =

Template braces

['{', '}']
SinatraApp =
proc{|arg|
  defined?(Sinatra::Base) && Sinatra::Base===arg
}
TiltTemplate =
proc{|arg|
  defined?(Tilt::Template) && Tilt::Template===arg
}
VERSION =
Version.to_s

Class Method Summary collapse

Class Method Details

.dialect(superdialect = WLang::Dialect, &defn) ⇒ Object

Defines an anonymous dialect on the fly.

Example:

d = WLang::dialect do
  tag('$') do |buf,fn| buf << evaluate(fn) end
  ...
end
d.render("Hello ${who}!", :who => "world")
# => "Hello world!"


25
26
27
# File 'lib/wlang.rb', line 25

def dialect(superdialect = WLang::Dialect, &defn)
  Class.new(superdialect, &defn)
end