Class: Spoom::Deadcode::Remover::NodeRemover
- Inherits:
-
Object
- Object
- Spoom::Deadcode::Remover::NodeRemover
- Defined in:
- lib/spoom/deadcode/remover.rb
Instance Attribute Summary collapse
-
#new_source ⇒ Object
readonly
: String.
Instance Method Summary collapse
-
#apply_edit ⇒ Object
: -> void.
-
#initialize(source, kind, location) ⇒ NodeRemover
constructor
: (String source, Definition::Kind? kind, Location location) -> void.
Constructor Details
#initialize(source, kind, location) ⇒ NodeRemover
: (String source, Definition::Kind? kind, Location location) -> void
32 33 34 35 36 37 38 39 |
# File 'lib/spoom/deadcode/remover.rb', line 32 def initialize(source, kind, location) @old_source = source @new_source = source.dup #: String @kind = kind @location = location @node_context = NodeFinder.find(source, location, kind) #: NodeContext end |
Instance Attribute Details
#new_source ⇒ Object (readonly)
: String
29 30 31 |
# File 'lib/spoom/deadcode/remover.rb', line 29 def new_source @new_source end |
Instance Method Details
#apply_edit ⇒ Object
: -> void
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/spoom/deadcode/remover.rb', line 42 def apply_edit sclass_context = @node_context.sclass_context if sclass_context delete_node_and_comments_and_sigs(sclass_context) return end node = @node_context.node case node when Prism::ClassNode, Prism::ModuleNode, Prism::DefNode delete_node_and_comments_and_sigs(@node_context) when Prism::ConstantWriteNode, Prism::ConstantOperatorWriteNode, Prism::ConstantAndWriteNode, Prism::ConstantOrWriteNode, Prism::ConstantPathWriteNode, Prism::ConstantPathOperatorWriteNode, Prism::ConstantPathAndWriteNode, Prism::ConstantPathOrWriteNode, Prism::ConstantTargetNode delete_constant_assignment(@node_context) when Prism::SymbolNode # for attr accessors delete_attr_accessor(@node_context) else raise Error, "Unsupported node type: #{node.class}" end end |