Class: Slim::LogicLess::Context::Scope Private
- Inherits:
-
Object
- Object
- Slim::LogicLess::Context::Scope
- Defined in:
- lib/slim/logic_less/context.rb
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Instance Attribute Summary collapse
-
#dict ⇒ Object
writeonly
private
-
#lookup ⇒ Object
readonly
private
Instance Method Summary collapse
-
#[](name) ⇒ Object
private
-
#initialize(dict, lookup, parent = nil) ⇒ Scope
constructor
private
A new instance of Scope.
-
#lambda(name, &block) ⇒ Object
private
-
#to_s ⇒ Object
private
Constructor Details
#initialize(dict, lookup, parent = nil) ⇒ Scope
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Scope.
58 59 60 |
# File 'lib/slim/logic_less/context.rb', line 58 def initialize(dict, lookup, parent = nil) @dict, @lookup, @parent = dict, lookup, parent end |
Instance Attribute Details
#dict=(value) ⇒ Object (writeonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
56 57 58 |
# File 'lib/slim/logic_less/context.rb', line 56 def dict=(value) @dict = value end |
#lookup ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
55 56 57 |
# File 'lib/slim/logic_less/context.rb', line 55 def lookup @lookup end |
Instance Method Details
#[](name) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/slim/logic_less/context.rb', line 79 def [](name) @lookup.each do |lookup| case lookup when :method return @dict.public_send(name) if @dict.respond_to?(name, false) 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) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/slim/logic_less/context.rb', line 62 def lambda(name, &block) @lookup.each do |lookup| case lookup when :method return @dict.public_send(name, &block) if @dict.respond_to?(name, false) 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 ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
96 97 98 |
# File 'lib/slim/logic_less/context.rb', line 96 def to_s @dict.to_s end |