Class: Nashorn::Ruby::AttributeAccess
Instance Method Summary
collapse
Methods inherited from AccessBase
#get_slot, #has_slot, #set_slot
Instance Method Details
#get(object, name) ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/nashorn/ruby/attribute_access.rb', line 13
def get(object, name)
name_sym = name.to_s.to_sym
if object.respond_to?(name_sym)
method = object.method(name_sym)
if method.arity == 0 && ( object.respond_to?(:"#{name}=") ||
object.instance_variables.find { |var| var.to_sym == :"@#{name}" } )
return Nashorn.to_js(method.call)
else
return Function.wrap(method.unbind)
end
elsif object.respond_to?(:"#{name}=")
return nil end
super
end
|
#has(object, name) ⇒ Object
5
6
7
8
9
10
11
|
# File 'lib/nashorn/ruby/attribute_access.rb', line 5
def has(object, name)
if object.respond_to?(name.to_s) ||
object.respond_to?(:"#{name}=") return true
end
super
end
|
#set(object, name, value) ⇒ Object
Also known as:
put
30
31
32
33
34
35
36
|
# File 'lib/nashorn/ruby/attribute_access.rb', line 30
def set(object, name, value)
if object.respond_to?(set_name = :"#{name}=")
rb_value = Nashorn.to_rb(value)
return object.send(set_name, rb_value)
end
super
end
|