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