class AtCoderFriends::Generator::Base

common behavior of generators

Attributes

cfg[R]
pbm[R]

Public Class Methods

new(cfg = nil) click to toggle source
# File lib/at_coder_friends/generator/base.rb, line 13
def initialize(cfg = nil)
  @cfg = cfg || {}
end

Public Instance Methods

embed_lines(src, pat, lines) click to toggle source
# File lib/at_coder_friends/generator/base.rb, line 33
def embed_lines(src, pat, lines)
  re = Regexp.escape(pat)
  src.gsub(
    /^(.*)#{re}(.*)$\n/,
    lines.compact.map { |s| "\\1#{s}\\2\n" }.join
  )
end
generate(pbm) click to toggle source
# File lib/at_coder_friends/generator/base.rb, line 21
def generate(pbm)
  @pbm = pbm
  src = File.read(select_template)
  src = ERB.new(src, safe_level = nil, trim_mode = '-').result(binding)
  src = render(src) if respond_to?(:render)
  src
end
process(pbm) click to toggle source
# File lib/at_coder_friends/generator/base.rb, line 17
def process(pbm)
  pbm.add_src(attrs.file_ext, generate(pbm))
end
select_template() click to toggle source
# File lib/at_coder_friends/generator/base.rb, line 29
def select_template
  cfg['default_template'] || attrs.default_template
end