module Nashorn::Ruby::Scriptable

Shared “JSObject” implementation.

Constants

FETCH
NUMBER_CLASS

@private

STORE
STRING_CLASS

@private

Attributes

unwrap[R]

Public Instance Methods

getMember(name) click to toggle source

@override JSObject

Calls superclass method
# File lib/nashorn/ruby.rb, line 36
def getMember(name)
  return nil if exclude?(name)
  Ruby.access.get(unwrap, name) { super }
end
getSlot(name) click to toggle source

@override JSObject

Calls superclass method
# File lib/nashorn/ruby.rb, line 54
def getSlot(name)
  return nil if exclude?(name)
  Ruby.access.get_slot(unwrap, name) { super }
end
hasMember(name) click to toggle source

@override JSObject

Calls superclass method
# File lib/nashorn/ruby.rb, line 42
def hasMember(name)
  return nil if exclude?(name)
  Ruby.access.has(unwrap, name) { super }
end
hasSlot(name) click to toggle source

@override JSObject

Calls superclass method
# File lib/nashorn/ruby.rb, line 60
def hasSlot(name)
  return nil if exclude?(name)
  Ruby.access.has_slot(unwrap, name) { super }
end
keySet() click to toggle source

@override JSObject

Calls superclass method
# File lib/nashorn/ruby.rb, line 77
def keySet
  ids = java.util.HashSet.new
  super_set = super
  unwrap.public_methods(false).each do |name|
    next unless name = convert(name.to_s)
    unless super_set.include?(name)
      ids.add name.to_java # java.lang.String
    end
  end
  ids
end
removeMember(name) click to toggle source

@override JSObject

# File lib/nashorn/ruby.rb, line 72
def removeMember(name)
  setMember(name, nil) # TODO remove_method?
end
setMember(name, value) click to toggle source

@override JSObject

Calls superclass method
# File lib/nashorn/ruby.rb, line 48
def setMember(name, value)
  return nil if exclude?(name)
  Ruby.access.set(unwrap, name, value) { super }
end
setSlot(name, value) click to toggle source

@override JSObject

Calls superclass method
# File lib/nashorn/ruby.rb, line 66
def setSlot(name, value)
  return nil if exclude?(name)
  Ruby.access.set_slot(unwrap, name, value) { super }
end

Private Instance Methods

convert(name) click to toggle source
# File lib/nashorn/ruby.rb, line 96
def convert(name)
  if exclude?(name)
    nil
  elsif name.end_with?('=')
    name[0...-1]
  else
    name
  end
end
exclude?(name) click to toggle source
# File lib/nashorn/ruby.rb, line 109
def exclude?(name)
  name.eql?(FETCH) || name.eql?(STORE)
end