def build_args(args_node)
args = []
required = []
optional = []
if (args_node.args && args_node.args.size > 0)
required = args_node.args.child_nodes.map { |arg| [arg.name.to_s.intern] }
end
if (args_node.opt_args && args_node.opt_args.size > 0)
optional = args_node.opt_args.child_nodes.map do |arg|
name = arg.name.to_s.intern
value_node = arg.value_node
case value_node
when org.jruby.ast::FixnumNode
value = value_node.value
when org.jruby.ast::SymbolNode
value = value_node.get_symbol(JRuby.runtime)
when org.jruby.ast::StrNode
value = value_node.value
else
value = nil
end
[name, value]
end
end
args = required + optional
return [args, optional.map{|name,| name}]
end