Sha256: c852e778ae312bd538cf38e8cc45d4cc755d56a799257523f11374b2dac231f8
Contents?: true
Size: 1.17 KB
Versions: 1
Compression:
Stored size: 1.17 KB
Contents
module Zapata module Primitive class Send < Base 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 def to_a [value] end def node receiver, name, args = @code.to_a type = @code.type OpenStruct.new(type: type, name: name, args: args, receiver: receiver) end def raw_receiver return unless node.receiver Diver.dive(node.receiver).to_raw end def to_raw if raw_receiver and raw_receiver.type == :const Raw.new(:const_send, "#{Printer.print(raw_receiver)}.#{node.name}#{Predictor::Args.literal(node.args)}") elsif %i(+ - * /).include?(node.name) Raw.new(:super, node.name) else predicted = Predictor::Args.choose_value(node.name, self).to_raw if predicted.type == :missing Raw.new(:super, node.name) else predicted end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
zapata-0.0.1 | lib/zapata/primitive/send.rb |