Class: RubyModKit::Feature::InstanceVariableParameter::InstanceVariableParameterMission
- Inherits:
-
Mission
- Object
- Mission
- RubyModKit::Feature::InstanceVariableParameter::InstanceVariableParameterMission
- Defined in:
- lib/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_mission.rb
Overview
The mission for instance variable arguments
Instance Method Summary collapse
Instance Method Details
#perform(generation) ⇒ Boolean
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_mission.rb', line 14 def perform(generation) generation.memo_pad.each_parameter_memo do |parameter_memo| next unless parameter_memo.ivar_parameter offset = parameter_memo.offset parameter_node = generation.root_node.parameter_node_at(offset) raise RubyModKit::Error unless parameter_node def_node = generation.root_node.def_node_at(offset) raise RubyModKit::Error, "DefNode not found" unless def_node def_body_location = def_node.body_location end_loc = def_node.end_keyword_loc if def_body_location indent = def_body_location.start_column src_offset = def_body_location.start_offset - indent elsif end_loc indent = end_loc.start_column + 2 src_offset = end_loc.start_offset - indent + 2 end raise RubyModKit::Error if !src_offset || !indent name = parameter_node.name generation[src_offset, 0] = "#{" " * indent}@#{name} = #{name}\n" end true end |