Class: MetaCodeCommenter::Generator

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/meta_code_commenter.rb

Instance Method Summary collapse

Constructor Details

#initialize(lines, params = {}) ⇒ Generator

Returns a new instance of Generator.



34
35
36
37
38
39
40
# File 'lib/meta_code_commenter.rb', line 34

def initialize(lines, params={})
  @lines = lines.map(&:chomp)
  @evaluator = Evaluator.new(params)
  @max_length = (lines.max_by(&:length) || "").length
  @max_length += 1 unless @max_length % 2 != 0
  @remove_spaces = @lines.map { |line| (line[/^\s+/] || "").length }.min
end

Instance Method Details

#generate(line) ⇒ Object



42
43
44
45
46
47
48
# File 'lib/meta_code_commenter.rb', line 42

def generate(line)
  pad = " " * (@max_length - line.length)
  comment = " # "
  evaluated = @evaluator.__eval__(line)[@remove_spaces..-1]

  line + pad + comment + evaluated
end

#generate!Object



50
51
52
# File 'lib/meta_code_commenter.rb', line 50

def generate!
  @lines.map { |line| generate(line) }
end

#to_sObject



54
55
56
# File 'lib/meta_code_commenter.rb', line 54

def to_s
  generate!.join("\n")
end