Class: Binding
Instance Attribute Summary collapse
-
#receiver ⇒ Object
readonly
Returns the value of attribute receiver.
-
#source_location ⇒ Object
readonly
Returns the value of attribute source_location.
Instance Method Summary collapse
- #eval(str, file = nil, line = nil) ⇒ Object
-
#initialize(jseval, scope_variables, receiver, source_location) ⇒ Binding
constructor
A new instance of Binding.
- #js_eval(*args) ⇒ Object
- #local_variable_defined?(value) ⇒ Boolean
- #local_variable_get(symbol) ⇒ Object
- #local_variable_set(symbol, value) ⇒ Object
- #local_variables ⇒ Object
Constructor Details
#initialize(jseval, scope_variables, receiver, source_location) ⇒ Binding
Returns a new instance of Binding.
3 4 5 6 |
# File 'opal/opal/corelib/binding.rb', line 3 def initialize(jseval, scope_variables, receiver, source_location) @jseval, @scope_variables, @receiver, @source_location = \ jseval, scope_variables, receiver, source_location end |
Instance Attribute Details
#receiver ⇒ Object (readonly)
Returns the value of attribute receiver.
40 41 42 |
# File 'opal/opal/corelib/binding.rb', line 40 def receiver @receiver end |
#source_location ⇒ Object (readonly)
Returns the value of attribute source_location.
40 41 42 |
# File 'opal/opal/corelib/binding.rb', line 40 def source_location @source_location end |
Instance Method Details
#eval(str, file = nil, line = nil) ⇒ Object
34 35 36 37 38 |
# File 'opal/opal/corelib/binding.rb', line 34 def eval(str, file = nil, line = nil) return receiver if str == 'self' ::Kernel.eval(str, self, file, line) end |
#js_eval(*args) ⇒ Object
8 9 10 11 12 13 14 |
# File 'opal/opal/corelib/binding.rb', line 8 def js_eval(*args) if @jseval @jseval.call(*args) else ::Kernel.raise 'Evaluation on a Proc#binding is not supported' end end |
#local_variable_defined?(value) ⇒ Boolean
30 31 32 |
# File 'opal/opal/corelib/binding.rb', line 30 def local_variable_defined?(value) @scope_variables.include?(value) end |
#local_variable_get(symbol) ⇒ Object
16 17 18 19 20 |
# File 'opal/opal/corelib/binding.rb', line 16 def local_variable_get(symbol) js_eval(symbol) rescue ::Exception ::Kernel.raise ::NameError, "local variable `#{symbol}' is not defined for #{inspect}" end |
#local_variable_set(symbol, value) ⇒ Object
22 23 24 |
# File 'opal/opal/corelib/binding.rb', line 22 def local_variable_set(symbol, value) js_eval(symbol, value) end |
#local_variables ⇒ Object
26 27 28 |
# File 'opal/opal/corelib/binding.rb', line 26 def local_variables @scope_variables end |