class Slim::LogicLess::Context
@api private
Public Class Methods
Source
# File lib/slim/logic_less/context.rb, line 6 def initialize(dict, lookup) @scope = [Scope.new(dict, lookup)] end
Public Instance Methods
Source
# File lib/slim/logic_less/context.rb, line 44 def inverted_section(name) value = scope[name] yield if !value || (value.respond_to?(:empty?) && value.empty?) end
Source
# File lib/slim/logic_less/context.rb, line 14 def lambda(name) scope.lambda(name) do |*dict| if dict.empty? yield else new_scope do dict.inject(''.dup) do |result, d| scope.dict = d result << yield end end end end end
Source
# File lib/slim/logic_less/context.rb, line 29 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
Private Instance Methods
Source
# File lib/slim/logic_less/context.rb, line 120 def new_scope(dict = nil) @scope << Scope.new(dict, scope.lookup, scope) yield ensure @scope.pop end