class Velcro::Config
Configuration settings for Velcro
projects
Public Class Methods
new()
click to toggle source
# File lib/velcro/config.rb, line 14 def initialize setup reset end
Public Instance Methods
apply(config)
click to toggle source
# File lib/velcro/config.rb, line 19 def apply(config) config.each_pair { |k, v| send("#{k}=", v) } rescue NoMethodError => e method = e.message.match(/`(.*)\=/)[1] raise NoMethodError, "No configuration setting for :#{method} in #{default_options.join(', ')}" end
reset()
click to toggle source
# File lib/velcro/config.rb, line 26 def reset apply(defaults) load_rc end
Private Instance Methods
default_options()
click to toggle source
# File lib/velcro/config.rb, line 46 def default_options @default_options ||= defaults.keys.map{|k| ":#{k}" } end
defaults()
click to toggle source
# File lib/velcro/config.rb, line 42 def defaults self.class.instance_variable_get(:"@defaults") end
load_rc()
click to toggle source
# File lib/velcro/config.rb, line 33 def load_rc return unless File.exist?(rc_path) apply(YAML.load_file(rc_path)['config']) end
rc_path()
click to toggle source
# File lib/velcro/config.rb, line 50 def rc_path File.join(dotfiles, '.velcrorc') end
setup()
click to toggle source
# File lib/velcro/config.rb, line 38 def setup defaults.each_pair{|k, _| self.class.send(:attr_accessor, k.to_sym) } end