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