class HerokuSan::Configuration

Attributes

config_file[R]
configuration[RW]
external_configuration[RW]
options[R]
stage_factory[R]

Public Class Methods

new(configurable, stage_factory = HerokuSan::Stage) click to toggle source
# File lib/heroku_san/configuration.rb, line 9
def initialize(configurable, stage_factory = HerokuSan::Stage)
  @config_file = configurable.config_file
  default_options = {
      'deploy' => HerokuSan::Deploy::Rails
  }
  @options = default_options.merge(configurable.options || {})
  @stage_factory = stage_factory
end

Public Instance Methods

configured?() click to toggle source
# File lib/heroku_san/configuration.rb, line 30
def configured?
  !!configuration
end
generate_config() click to toggle source
# File lib/heroku_san/configuration.rb, line 38
def generate_config
  # TODO: Convert true/false returns to success/exception
  if File.exists?(config_file)
    false
  else
    FileUtils.cp(template, config_file)
    true
  end
end
parse() click to toggle source
# File lib/heroku_san/configuration.rb, line 18
def parse
  HerokuSan::Parser.new.parse(self)
end
stages() click to toggle source
# File lib/heroku_san/configuration.rb, line 22
def stages
  configured? or parse
  configuration.inject({}) do |stages, (stage, settings)|
    stages[stage] = stage_factory.new(stage, settings.merge('deploy' => (options[:deploy]||options['deploy'])))
    stages
  end
end
template() click to toggle source
# File lib/heroku_san/configuration.rb, line 34
def template
  File.expand_path(File.join(File.dirname(__FILE__), '../templates', 'heroku.example.yml'))
end