class RailsWizard::Template
Attributes
args[R]
defaults[R]
gems[R]
recipes[R]
Public Class Methods
new(recipes, gems=[], args=[], defaults={})
click to toggle source
# File lib/rails_wizard/template.rb, line 5 def initialize(recipes, gems=[], args=[], defaults={}) @recipes = recipes.map{|r| RailsWizard::Recipe.from_mongo(r)} @args = args @defaults = defaults unless defaults['prefs'].nil? @prefs = defaults['prefs'] else @prefs = {} end unless defaults['gems'].nil? @gems = gems | defaults['gems'] else @gems = gems end end
render(template_name, binding = nil)
click to toggle source
# File lib/rails_wizard/template.rb, line 29 def self.render(template_name, binding = nil) erb = ERB.new(File.open(template_root + '/' + template_name + '.erb').read) erb.result(binding) end
template_root()
click to toggle source
# File lib/rails_wizard/template.rb, line 21 def self.template_root @template_root ||= File.dirname(__FILE__) + '/../../templates' end
template_root=(root)
click to toggle source
# File lib/rails_wizard/template.rb, line 25 def self.template_root=(root) @template_root = root end
Public Instance Methods
compile()
click to toggle source
# File lib/rails_wizard/template.rb, line 100 def compile render 'layout', binding end
custom_code()
click to toggle source
# File lib/rails_wizard/template.rb, line 109 def custom_code; nil end
custom_code?()
click to toggle source
# File lib/rails_wizard/template.rb, line 108 def custom_code?; false end
recipe_classes()
click to toggle source
# File lib/rails_wizard/template.rb, line 78 def recipe_classes @recipe_classes ||= recipes.map{|r| RailsWizard::Recipe.from_mongo(r)} end
recipes_with_dependencies()
click to toggle source
# File lib/rails_wizard/template.rb, line 82 def recipes_with_dependencies @recipes_with_dependencies ||= recipe_classes added_more = false for recipe in recipe_classes recipe.requires.each do |requirement| requirement = RailsWizard::Recipe.from_mongo(requirement) count = @recipes_with_dependencies.size (@recipes_with_dependencies << requirement).uniq! unless @recipes_with_dependencies.size == count added_more = true end end end added_more ? recipes_with_dependencies : @recipes_with_dependencies end
render(template_name, binding = nil)
click to toggle source
# File lib/rails_wizard/template.rb, line 33 def render(template_name, binding = nil); self.class.render(template_name, binding) end
resolve_diagnostics_prefs()
click to toggle source
# File lib/rails_wizard/template.rb, line 53 def resolve_diagnostics_prefs @resolve_diagnostics_prefs ||= begin RailsWizard::Diagnostics.prefs.inspect end end
resolve_diagnostics_recipes()
click to toggle source
# File lib/rails_wizard/template.rb, line 47 def resolve_diagnostics_recipes @resolve_diagnostics_recipes ||= begin RailsWizard::Diagnostics.recipes.inspect end end
resolve_gems()
click to toggle source
# File lib/rails_wizard/template.rb, line 41 def resolve_gems @resolve_gems ||= begin @gems.uniq.inspect end end
resolve_preferences()
click to toggle source
# File lib/rails_wizard/template.rb, line 35 def resolve_preferences @resolve_preferences ||= begin @prefs.inspect end end
resolve_recipes()
click to toggle source
Sort the recipes list taking ‘run_after’ directives into account.
# File lib/rails_wizard/template.rb, line 60 def resolve_recipes @resolve_recipes ||= begin list = recipes_with_dependencies for i in 0...list.size after_keys = list[i+1..-1].map { |r| r.key } if (list[i].run_after & after_keys).any? list.push list.slice!(i) redo end end list.each {|recipe| recipe.defaults = defaults[recipe.key] } list end end