class Slim::LogicLess::Context::Scope
Attributes
dict[W]
lookup[R]
Public Class Methods
new(dict, lookup, parent = nil)
click to toggle source
# File lib/slim/logic_less/context.rb, line 58 def initialize(dict, lookup, parent = nil) @dict, @lookup, @parent = dict, lookup, parent end
Public Instance Methods
[](name)
click to toggle source
# File lib/slim/logic_less/context.rb, line 79 def [](name) @lookup.each do |lookup| case lookup when :method return @dict.send(name) if @dict.respond_to?(name) when :symbol return @dict[name] if has_key?(name) when :string return @dict[name.to_s] if has_key?(name.to_s) when :instance_variable var_name = "@#{name}" return @dict.instance_variable_get(var_name) if instance_variable?(var_name) end end @parent[name] if @parent end
lambda(name, &block)
click to toggle source
# File lib/slim/logic_less/context.rb, line 62 def lambda(name, &block) @lookup.each do |lookup| case lookup when :method return @dict.send(name, &block) if @dict.respond_to?(name) when :symbol return @dict[name].call(&block) if has_key?(name) when :string return @dict[name.to_s].call(&block) if has_key?(name.to_s) when :instance_variable var_name = "@#{name}" return @dict.instance_variable_get(var_name).call(&block) if instance_variable?(var_name) end end @parent.lambda(name) if @parent end
to_s()
click to toggle source
# File lib/slim/logic_less/context.rb, line 96 def to_s @dict.to_s end
Private Instance Methods
has_key?(name)
click to toggle source
# File lib/slim/logic_less/context.rb, line 102 def has_key?(name) @dict.respond_to?(:has_key?) && @dict.has_key?(name) end
instance_variable?(name)
click to toggle source
# File lib/slim/logic_less/context.rb, line 106 def instance_variable?(name) begin @dict.instance_variable_defined?(name) rescue NameError false end end