class Futon::Configuration

Attributes

workspaces[R]

Public Class Methods

new() click to toggle source
# File lib/futon/configuration.rb, line 11
def initialize
  options = load_from(default_config_file)

  @workspaces = setup_workspaces(options)
end

Private Instance Methods

default_config_file() click to toggle source
# File lib/futon/configuration.rb, line 25
def default_config_file
  File.expand_path('~/.futon/default.yml')
end
load_from(filename) click to toggle source
# File lib/futon/configuration.rb, line 21
def load_from(filename)
  YAML.load_file(filename)
end
setup_workspaces(options) click to toggle source
# File lib/futon/configuration.rb, line 29
def setup_workspaces(options)
  msg = 'expected valid config, got %s'
  raise Error::NoWorkspaces, format(msg, options.inspect) unless options

  workspaces = options.fetch(:workspaces)
  workspaces.map do |name, workspace_options|
    Workspace.new(workspace_options.merge(name: name))
  end

rescue KeyError => e
  raise Error::NoWorkspaces, e.message
end