module V8::Access::Names
def accessible_names(obj, special_methods = false)
def accessible_names(obj, special_methods = false) obj.public_methods(false).map {|m| m.to_s}.to_set.tap do |methods| ancestors = obj.class.ancestors.dup while ancestor = ancestors.shift break if ancestor == ::Object methods.merge(ancestor.public_instance_methods(false).map {|m| m.to_s}) end methods.reject!(&special?) unless special_methods end end