Class: DefMastership::ChangeRefLineModifier
- Inherits:
-
LineModifierBase
- Object
- LineModifierBase
- DefMastership::ChangeRefLineModifier
- Defined in:
- lib/defmastership/change_ref_line_modifier.rb
Overview
Change references from temporary to definitive with multiple RefChangers
Instance Attribute Summary
Attributes inherited from LineModifierBase
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize ⇒ ChangeRefLineModifier
constructor
A new instance of ChangeRefLineModifier.
- #replace(method, line) ⇒ Object
- #replace_irefs(line) ⇒ Object
- #replace_refdef(line) ⇒ Object
Methods inherited from LineModifierBase
#from_config, #method_missing, #respond_to_missing?
Constructor Details
#initialize ⇒ ChangeRefLineModifier
Returns a new instance of ChangeRefLineModifier.
24 25 26 27 28 29 30 31 32 |
# File 'lib/defmastership/change_ref_line_modifier.rb', line 24 def initialize super @config = { from_regexp: '', to_template: '', next_ref: 0 } @in_literal = false end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class DefMastership::LineModifierBase
Class Method Details
.from_config(hash) ⇒ Object
7 8 9 |
# File 'lib/defmastership/change_ref_line_modifier.rb', line 7 def self.from_config(hash) new.from_config(hash) end |
Instance Method Details
#replace(method, line) ⇒ Object
34 35 36 |
# File 'lib/defmastership/change_ref_line_modifier.rb', line 34 def replace(method, line) public_send("replace_#{method}".to_sym, line) end |
#replace_irefs(line) ⇒ Object
46 47 48 49 50 51 52 |
# File 'lib/defmastership/change_ref_line_modifier.rb', line 46 def replace_irefs(line) changes.reduce(line) do |res_line, (from, to)| res_line.gsub(regexp_from(:iref, from)) do text_with(Regexp.last_match, to) end end end |
#replace_refdef(line) ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/defmastership/change_ref_line_modifier.rb', line 38 def replace_refdef(line) if in_literal(line) line else do_replace_refdef(line) end end |