Class: Rhino::Ruby::AttributeAccess
- Inherits:
-
AccessBase
- Object
- AccessBase
- Rhino::Ruby::AttributeAccess
- Extended by:
- DeprecatedAccess
- Defined in:
- lib/rhino/ruby/attribute_access.rb
Instance Method Summary collapse
- #get(object, name, scope) ⇒ Object
- #has(object, name, scope) ⇒ Object
- #put(object, name, value) ⇒ Object
Instance Method Details
#get(object, name, scope) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/rhino/ruby/attribute_access.rb', line 13 def get(object, name, scope) name_sym = name.to_s.to_sym if object.respond_to?(name_sym) method = object.method(name_sym) if method.arity == 0 && # check if it is an attr_reader ( object.respond_to?(:"#{name}=") || object.instance_variables.find { |var| var.to_sym == :"@#{name}" } ) return Rhino.to_javascript(method.call, scope) else return Function.wrap(method.unbind) end elsif object.respond_to?(:"#{name}=") return nil # it does have the property but is non readable end super end |
#has(object, name, scope) ⇒ Object
5 6 7 8 9 10 11 |
# File 'lib/rhino/ruby/attribute_access.rb', line 5 def has(object, name, scope) if object.respond_to?(name.to_s) || object.respond_to?(:"#{name}=") # might have a writer but no reader return true end super end |