Module: Transpec::Syntax::RSpecConfigure::ConfigModification::ConfigAddition
- Included in:
- Transpec::Syntax::RSpecConfigure::ConfigModification
- Defined in:
- lib/transpec/syntax/rspec_configure/config_modification.rb
Overview
TODO: Refactor this to remove messy overrides in Framework.
Instance Method Summary collapse
- #add_config!(config_name, value = nil, comment = nil) ⇒ Object
- #block_node_to_insert_code ⇒ Object
- #body_indentation ⇒ Object
- #config_variable_name ⇒ Object
- #empty_block_body? ⇒ Boolean
- #generate_config_lines(config_name, value = nil, comment = nil) ⇒ Object
Instance Method Details
#add_config!(config_name, value = nil, comment = nil) ⇒ Object
49 50 51 52 53 54 55 56 57 58 |
# File 'lib/transpec/syntax/rspec_configure/config_modification.rb', line 49 def add_config!(config_name, value = nil, comment = nil) lines = generate_config_lines(config_name, value, comment) lines.unshift('') unless empty_block_body? lines.map! { |line| line + "\n" } insertion_position = beginning_of_line_range(block_node_to_insert_code.loc.end) source_rewriter.insert_before(insertion_position, lines.join('')) block_node_to_insert_code.[:added_config] = true end |
#block_node_to_insert_code ⇒ Object
85 86 87 |
# File 'lib/transpec/syntax/rspec_configure/config_modification.rb', line 85 def block_node_to_insert_code block_node end |
#body_indentation ⇒ Object
81 82 83 |
# File 'lib/transpec/syntax/rspec_configure/config_modification.rb', line 81 def body_indentation indentation_of_line(block_node) + (' ' * 2) end |
#config_variable_name ⇒ Object
77 78 79 |
# File 'lib/transpec/syntax/rspec_configure/config_modification.rb', line 77 def config_variable_name block_arg_name end |
#empty_block_body? ⇒ Boolean
89 90 91 92 93 |
# File 'lib/transpec/syntax/rspec_configure/config_modification.rb', line 89 def empty_block_body? block_node = block_node_to_insert_code (block_node.loc.end.line - block_node.loc.begin.line <= 1) && !block_node.[:added_config] end |
#generate_config_lines(config_name, value = nil, comment = nil) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/transpec/syntax/rspec_configure/config_modification.rb', line 60 def generate_config_lines(config_name, value = nil, comment = nil) lines = [] if comment comment_lines = comment.each_line.map do |line| "#{body_indentation}# #{line.chomp}".rstrip end lines.concat(comment_lines) end config_line = body_indentation + "#{config_variable_name}.#{config_name}" config_line << " = #{value}" unless value.nil? lines << config_line lines end |