class Zapata::Primitive::Send

Public Class Methods

new(code) click to toggle source
Calls superclass method Zapata::Primitive::Base::new
# File lib/zapata/primitive/send.rb, line 6
def initialize(code)
  super

  if node.name == :private
    Diver.access_level = :private
  elsif node.name == :protected
    Diver.access_level = :protected
  elsif node.name == :public
    Diver.access_level = :public
  end
end

Public Instance Methods

node() click to toggle source
# File lib/zapata/primitive/send.rb, line 22
def node
  receiver, name, args = @code.to_a
  type = @code.type
  OpenStruct.new(type: type, name: name, args: args, receiver: receiver)
end
raw_receiver() click to toggle source
# File lib/zapata/primitive/send.rb, line 28
def raw_receiver
  return unless node.receiver

  Diver.dive(node.receiver).to_raw
end
to_a() click to toggle source
# File lib/zapata/primitive/send.rb, line 18
def to_a
  [value]
end
to_raw() click to toggle source
# File lib/zapata/primitive/send.rb, line 34
def to_raw
  if raw_receiver && raw_receiver.type == :const
    ConstSend.new(raw_receiver, node.name, node.args).to_raw
  else
    missing_name = if node.receiver
      Unparser.unparse(code)
    else
      node.name
    end

    Missing.new(missing_name).to_raw
  end
end