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