class RailsWizard::Config
Constants
- QUESTION_TYPES
Attributes
defaults[R]
questions[R]
Public Class Methods
new(schema, defaults=nil)
click to toggle source
# File lib/rails_wizard/config.rb, line 7 def initialize(schema, defaults=nil) @questions = ActiveSupport::OrderedHash.new @defaults = defaults schema.each do |hash| key = hash.keys.first details = hash.values.first kind = details['type'] raise ArgumentError, "Unrecognized question type, must be one of #{QUESTION_TYPES.keys.join(', ')}" unless QUESTION_TYPES.keys.include?(kind) @questions[key] = QUESTION_TYPES[kind].new(details) end end
Public Instance Methods
compile(values = {})
click to toggle source
# File lib/rails_wizard/config.rb, line 20 def compile(values = {}) result = [] values.merge!(defaults) if defaults result << "config = #{values.inspect}" @questions.each_pair do |key, question| result << "config['#{key}'] = #{question.compile} unless config.key?('#{key}') || prefs.has_key?(:#{key})" end result.join("\n") end