class Prism::DesugarOrWriteDefinedNode
:nodoc:
def compile
def compile if_node( location: node.location, if_keyword_loc: node.operator_loc, predicate: defined_node( location: node.name_loc, value: public_send(read_class, location: node.name_loc, **arguments), keyword_loc: node.operator_loc ), then_keyword_loc: node.operator_loc, statements: statements_node( location: node.location, body: [public_send(read_class, location: node.name_loc, **arguments)] ), subsequent: else_node( location: node.location, else_keyword_loc: node.operator_loc, statements: statements_node( location: node.location, body: [ public_send( write_class, location: node.location, **arguments, name_loc: node.name_loc, value: node.value, operator_loc: node.operator_loc ) ] ), end_keyword_loc: node.operator_loc ), end_keyword_loc: node.operator_loc ) end
def initialize(node, default_source, read_class, write_class, **arguments)
def initialize(node, default_source, read_class, write_class, **arguments) @node = node @default_source = default_source @read_class = read_class @write_class = write_class @arguments = arguments end