Class: HerokuSan::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/heroku_san/configuration.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(configurable) ⇒ Configuration



8
9
10
11
12
13
14
# File 'lib/heroku_san/configuration.rb', line 8

def initialize(configurable)
  @config_file = configurable.config_file
  default_options = {
      'deploy' => HerokuSan::Deploy::Rails
  }
  @options = default_options.merge(configurable.options || {})
end

Instance Attribute Details

#config_fileObject (readonly)

Returns the value of attribute config_file.



3
4
5
# File 'lib/heroku_san/configuration.rb', line 3

def config_file
  @config_file
end

#configurationObject

Returns the value of attribute configuration.



4
5
6
# File 'lib/heroku_san/configuration.rb', line 4

def configuration
  @configuration
end

#external_configurationObject

Returns the value of attribute external_configuration.



5
6
7
# File 'lib/heroku_san/configuration.rb', line 5

def external_configuration
  @external_configuration
end

#optionsObject (readonly)

Returns the value of attribute options.



6
7
8
# File 'lib/heroku_san/configuration.rb', line 6

def options
  @options
end

Instance Method Details

#configured?Boolean



28
29
30
# File 'lib/heroku_san/configuration.rb', line 28

def configured?
  !!configuration
end

#generate_configObject



36
37
38
39
40
41
42
43
44
# File 'lib/heroku_san/configuration.rb', line 36

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

#parseObject



16
17
18
# File 'lib/heroku_san/configuration.rb', line 16

def parse
  HerokuSan::Parser.new.parse(self)
end

#stagesObject



20
21
22
23
24
25
26
# File 'lib/heroku_san/configuration.rb', line 20

def stages
  configured? or parse
  configuration.inject({}) do |stages, (stage, settings)|
    stages[stage] = HerokuSan::Stage.new(stage, settings.merge('deploy' => (options[:deploy]||options['deploy'])))
    stages
  end
end

#templateObject



32
33
34
# File 'lib/heroku_san/configuration.rb', line 32

def template
  File.expand_path(File.join(File.dirname(__FILE__), '../templates', 'heroku.example.yml'))
end