Class: YardToRbsInline::Converter::TextWithMod
- Inherits:
-
Object
- Object
- YardToRbsInline::Converter::TextWithMod
- Defined in:
- lib/yard_to_rbs_inline/converter/text_with_mod.rb
Overview
@rbs! type mod = PrependLine | AppendLineContent
Instance Attribute Summary collapse
-
#mods ⇒ Object
readonly
: Array.
-
#original_text ⇒ Object
readonly
: Prism::Source.
Instance Method Summary collapse
-
#initialize(original_text) ⇒ TextWithMod
constructor
: (String) -> untyped.
-
#modified_text ⇒ Object
: String.
Constructor Details
#initialize(original_text) ⇒ TextWithMod
: (String) -> untyped
47 48 49 50 |
# File 'lib/yard_to_rbs_inline/converter/text_with_mod.rb', line 47 def initialize(original_text) @original_text = original_text @mods = [] end |
Instance Attribute Details
#mods ⇒ Object (readonly)
: Array
44 45 46 |
# File 'lib/yard_to_rbs_inline/converter/text_with_mod.rb', line 44 def mods @mods end |
#original_text ⇒ Object (readonly)
: Prism::Source
42 43 44 |
# File 'lib/yard_to_rbs_inline/converter/text_with_mod.rb', line 42 def original_text @original_text end |
Instance Method Details
#modified_text ⇒ Object
: String
52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/yard_to_rbs_inline/converter/text_with_mod.rb', line 52 def modified_text #: String prepended_line_nums = [] #: Array[String] mods.each_with_object(original_text.lines.map(&:chomp)) do |mod, source_lines| real_line_num = mod.line_num + prepended_line_nums.map { |i| i <= mod.line_num }.length # 1-index case mod in PrependLine(content:) prepended_line_nums << mod.line_num source_lines.insert(real_line_num - 1, content) in AppendLineContent(content:) source_lines[real_line_num - 1] += content end end.join("\n") + "\n" end |