class Rsense::Server::Command::RsenseMethod
Attributes
args_node[RW]
body_node[RW]
cbase[RW]
location[RW]
name[RW]
node[RW]
parent[RW]
visibility[RW]
Public Class Methods
generate_method_body(name)
click to toggle source
# File lib/rsense/server/command/rsense_method.rb, line 23 def self.generate_method_body(name) %Q{ def #{name}(*args) if block_given? yield args else args end end } end
generate_node(name, parent)
click to toggle source
# File lib/rsense/server/command/rsense_method.rb, line 35 def self.generate_node(name, parent) code = self.generate_method_body(name) root = JRubyParser.parse(code) node = root.find_node(:defn) self.insert_into_parent(node, parent) end
insert_into_parent(node, parent)
click to toggle source
# File lib/rsense/server/command/rsense_method.rb, line 42 def self.insert_into_parent(node, parent) parent = parent parent.insert_node(node) inserted_node = parent.find_all.select {|n| n == node}.first if inserted_node inserted_node else node end end
make_method(cbase, name, visibility, parent)
click to toggle source
# File lib/rsense/server/command/rsense_method.rb, line 13 def self.make_method(cbase, name, visibility, parent) node = self.make_node(name, parent) loc = Java::org.cx4a.rsense.util::SourceLocation.of(node) [cbase, name, node.body_node, node.args_node, visibility, loc] end
make_node(name, parent)
click to toggle source
# File lib/rsense/server/command/rsense_method.rb, line 19 def self.make_node(name, parent) self.generate_node(name, parent) end
new(cbase, name, bodyNode, argsNode, visibility, location)
click to toggle source
Calls superclass method
# File lib/rsense/server/command/rsense_method.rb, line 9 def initialize(cbase, name, bodyNode, argsNode, visibility, location) super(cbase, name, bodyNode, argsNode, visibility, location) end