class Slim::LogicLess::Context
@api private
Public Class Methods
new(dict, lookup)
click to toggle source
# File lib/slim/logic_less/context.rb, line 5 def initialize(dict, lookup) @scope = [Scope.new(dict, lookup)] end
Public Instance Methods
[](name)
click to toggle source
# File lib/slim/logic_less/context.rb, line 9 def [](name) scope[name] end
inverted_section(name) { || ... }
click to toggle source
# File lib/slim/logic_less/context.rb, line 43 def inverted_section(name) value = scope[name] yield if !value || (value.respond_to?(:empty?) && value.empty?) end
lambda(name) { || ... }
click to toggle source
# File lib/slim/logic_less/context.rb, line 13 def lambda(name) scope.lambda(name) do |*dict| if dict.empty? yield else new_scope do dict.inject('') do |result, d| scope.dict = d result << yield end end end end end
section(name) { || ... }
click to toggle source
# File lib/slim/logic_less/context.rb, line 28 def section(name) if dict = scope[name] if !dict.respond_to?(:has_key?) && dict.respond_to?(:each) new_scope do dict.each do |d| scope.dict = d yield end end else new_scope(dict) { yield } end end end
to_s()
click to toggle source
# File lib/slim/logic_less/context.rb, line 48 def to_s scope.to_s end
Private Instance Methods
new_scope(dict = nil) { || ... }
click to toggle source
# File lib/slim/logic_less/context.rb, line 119 def new_scope(dict = nil) @scope << Scope.new(dict, scope.lookup, scope) yield ensure @scope.pop end
scope()
click to toggle source
# File lib/slim/logic_less/context.rb, line 115 def scope @scope.last end