Class: ImproveYourCode::TreeDresser
- Inherits:
-
Object
- Object
- ImproveYourCode::TreeDresser
- Defined in:
- lib/improve_your_code/tree_dresser.rb
Instance Method Summary collapse
- #dress(sexp, comment_map) ⇒ Object
-
#initialize(klass_map: AST::ASTNodeClassMap.new) ⇒ TreeDresser
constructor
A new instance of TreeDresser.
Constructor Details
#initialize(klass_map: AST::ASTNodeClassMap.new) ⇒ TreeDresser
Returns a new instance of TreeDresser.
7 8 9 |
# File 'lib/improve_your_code/tree_dresser.rb', line 7 def initialize(klass_map: AST::ASTNodeClassMap.new) @klass_map = klass_map end |
Instance Method Details
#dress(sexp, comment_map) ⇒ Object
11 12 13 14 15 16 17 18 19 |
# File 'lib/improve_your_code/tree_dresser.rb', line 11 def dress(sexp, comment_map) return sexp unless sexp.is_a? ::Parser::AST::Node type = sexp.type children = sexp.children.map { |child| dress(child, comment_map) } comments = comment_map[sexp] klass_map.klass_for(type).new(type, children, location: sexp.loc, comments: comments) end |