class FuckingShellScripts::Configuration

Constants

MissingCloudConfiguration
MissingServerConfiguration
MissingServerType

Attributes

options[R]

Public Class Methods

new(command_line_options = {}) click to toggle source
# File lib/fucking_shell_scripts/configuration.rb, line 12
def initialize(command_line_options = {})
  @command_line_options = command_line_options

  read_and_parse_server_options

  raise MissingServerType, "Please specify a type of server you want to create using the --type option" unless options[:type]
  raise MissingCloudConfiguration, "Please specify settings for your provider per http://fog.io/about/provider_documentation.html" unless options[:cloud]
end

Private Instance Methods

default_options() click to toggle source
# File lib/fucking_shell_scripts/configuration.rb, line 23
def default_options
  begin
    YAML.load(ERB.new(File.read('servers/defaults.yml')).result)
  rescue Errno::ENOENT
    {}
  end
end
read_and_parse_server_options() click to toggle source
# File lib/fucking_shell_scripts/configuration.rb, line 43
def read_and_parse_server_options
  options_string_hash = default_options.merge(server_options).merge(@command_line_options)
  @options = options_string_hash.symbolize_keys_deep!
end
server_file() click to toggle source
# File lib/fucking_shell_scripts/configuration.rb, line 39
def server_file
  "servers/#{type}.yml"
end
server_options() click to toggle source
# File lib/fucking_shell_scripts/configuration.rb, line 31
def server_options
  begin
    YAML.load(ERB.new(File.read(server_file)).result)
  rescue Errno::ENOENT
    raise MissingServerConfiguration, "Please create a configuration file './servers/#{type}.yml'"
  end
end
type() click to toggle source
# File lib/fucking_shell_scripts/configuration.rb, line 48
def type
  @command_line_options[:type]
end