Class: Ned::Join

Inherits:
Command show all
Defined in:
lib/ned/commands/join.rb

Instance Method Summary collapse

Methods inherited from Command

config, description, #execute, #execute_all, help, #initialize, #load_lines, long_name, option_parser, #options, #peek, require_all, #require_all, #require_all?, require_all?, short_name

Constructor Details

This class inherits a constructor from Ned::Command

Instance Method Details

#execute_internal(lines) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/ned/commands/join.rb', line 23

def execute_internal(lines)
  if lines[-1] && lines[-1][-1] == "\n"
    trailing_newline = "\n"
    lines.each { |line| line.slice!(-1) }
  else
    trailing_newline = ''
    lines[0..-2].each { |line| line.slice!(-1) }
  end

  if @has_newline
    lines.join(@delimiter).insert(-1, trailing_newline).split(/(?<=\n)/)
  else
    [lines.join(@delimiter).insert(-1, trailing_newline)]
  end
end

#parse(args) ⇒ Object



16
17
18
19
20
21
# File 'lib/ned/commands/join.rb', line 16

def parse(args)
  super

  @delimiter = args.shift || ''
  @has_newline = @delimiter.index("\n") != nil
end