class Scaffold::Generators::BaseGenerator

Public Class Methods

new(rails) click to toggle source
# File lib/scaffold/generators/base_generator.rb, line 8
def initialize rails
  @rails = rails
end

Public Instance Methods

ask(prompt="", newline=false) click to toggle source
# File lib/scaffold/generators/base_generator.rb, line 37
def ask(prompt="", newline=false)
  prompt += "\n" if newline
  Readline.readline(prompt, true).squeeze(" ").strip
end
find_root(*segments) click to toggle source

Check to see if it is overridden and use it

# File lib/scaffold/generators/base_generator.rb, line 26
def find_root *segments
  original = File.join(root, segments)
  overridden = File.join(project_root, segments)
  File.exists?(overridden) ? overridden : original
end
objectify() click to toggle source
# File lib/scaffold/generators/base_generator.rb, line 12
def objectify
  OpenStruct.new(vars).instance_eval { binding }
end
parse_template(content, context_hash) click to toggle source
# File lib/scaffold/generators/base_generator.rb, line 59
def parse_template(content, context_hash)
  # http://www.stuartellis.eu/articles/erb/
  # content = ::ERB.new(content, nil, '-').result(@params.instance_eval{ binding })#.gsub(/\s+\n$/, "")

  # content = ::ERB.new(content, 0, '>').result(ErbContext.new(context_hash).get_binding)
  # https://github.com/jeremyevans/erubi
  content = ::ERB.new(content, 0, '-').result(ErbContext.new(context_hash).get_binding)
end
project_root() click to toggle source
# File lib/scaffold/generators/base_generator.rb, line 21
def project_root
  Dir.pwd
end
root() click to toggle source

where is the root of the gem

# File lib/scaffold/generators/base_generator.rb, line 17
def root
  Scaffold.root
end
templates() click to toggle source

the root of the templates

# File lib/scaffold/generators/base_generator.rb, line 33
def templates
  'lib/templates/pico/'
end
write_with_confirmation(target_file_path, content) click to toggle source
# File lib/scaffold/generators/base_generator.rb, line 42
def write_with_confirmation(target_file_path, content)
  if !File.exists?(target_file_path) || @rails.choice[:force].present?
    IO.write(target_file_path, content)
    return
  end

  answer = if @@aways_ovewrite
    'a'
  else
    ask("#{target_file_path} exists, overwrite? [yaN]").downcase
  end

  @@aways_ovewrite = answer == 'a'

  IO.write(target_file_path, content) if answer == 'y' || @@aways_ovewrite
end