class Lionel::Configuration

Constants

CONFIG_ACCESSORS
FILE_NAME

Attributes

data[R]
path[R]

Public Class Methods

config_accessor(*args) click to toggle source
# File lib/lionel/configuration.rb, line 18
def self.config_accessor(*args)
  def_delegators :data, *args

  args.each do |accessor|
    define_method("#{accessor}=") do |value|
      data.send("#{accessor}=", value)
      write
    end
  end
end
new() click to toggle source
# File lib/lionel/configuration.rb, line 31
def initialize
  @path = File.join(File.expand_path("~"), FILE_NAME)
  @data = OpenStruct.new(load_data)
end

Public Instance Methods

default_data() click to toggle source
# File lib/lionel/configuration.rb, line 50
def default_data
  # {
  #   'trello_key' => ENV['TRELLO_KEY'],
  #   'trello_token' => ENV['TRELLO_TOKEN'],
  #   'trello_board_id' => ENV['TRELLO_BOARD_ID'],
  #   'google_token' => ENV['GOOGLE_TOKEN'],
  #   'google_refresh_token' => ENV['GOOGLE_REFRESH_TOKEN'],
  #   'google_doc_id' => ENV['GOOGLE_DOC_ID']
  #   'google_client_id' => ENV['GOOGLE_CLIENT_ID']
  #   'google_client_secret' => ENV['GOOGLE_CLIENT_SECRET']
  # }
  {}.tap do |data|
    CONFIG_ACCESSORS.each do |name|
      data[name] = ENV[name.to_s.upcase]
    end
  end
end
load_data() click to toggle source
# File lib/lionel/configuration.rb, line 43
def load_data
  load_file
rescue Errno::ENOENT
  Lionel.logger.info "Couldn't load file, falling back to ENV"
  default_data
end
load_file() click to toggle source
# File lib/lionel/configuration.rb, line 68
def load_file
  require 'yaml'
  YAML.load_file(@path)
end
save(attrs = {}) click to toggle source
# File lib/lionel/configuration.rb, line 36
def save(attrs = {})
  attrs.each do |accessor, value|
    data.send("#{accessor}=", value)
  end
  write
end
write() click to toggle source
# File lib/lionel/configuration.rb, line 73
def write
  require 'yaml'
  File.open(@path, File::RDWR|File::TRUNC|File::CREAT, 0600) do |rcfile|
    rcfile.write @data.marshal_dump.to_yaml
  end
end