Module: Todo::Config
Overview
The module that contains the methods relevant to configurations and custom configuration in config.yml
similar to Sam Goldstein’s config.rb for timetrap
Constant Summary collapse
- PATH =
The path to the the config file
File.join(ENV['HOME'], '.to-do', 'config.yml')
Instance Method Summary collapse
-
#[](key) ⇒ Object
Overloading [] operator.
-
#[]=(key, value) ⇒ Object
Overloading []= operator.
-
#defaults ⇒ Hash<Symbol,Object>
Default config key value pairs.
-
#write ⇒ Object
Writes the configs to the file config.yml.
Instance Method Details
#[](key) ⇒ Object
Overloading [] operator
Accessor for values in the config
38 39 40 41 |
# File 'lib/to-do/config.rb', line 38 def [] key fileval = YAML.load_file PATH defaults.merge(fileval)[key] end |
#[]=(key, value) ⇒ Object
Overloading []= operator
Setter for values in the Config hash
49 50 51 52 53 54 55 56 |
# File 'lib/to-do/config.rb', line 49 def []= key, value fileval = YAML.load_file PATH configs = defaults.merge(fileval) configs[key] = value File.open(PATH, 'w') do |fh| fh.puts(configs.to_yaml) end end |
#defaults ⇒ Hash<Symbol,Object>
Default config key value pairs
17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/to-do/config.rb', line 17 def defaults { # the location of all all your list yaml files :lists_directory => File.join(ENV["HOME"],".to-do","lists"), # a sqlite3 databse that contains all of the tasks :task_database => File.join(ENV["HOME"], ".to-do", "to-do.sqlite"), # the current working list :working_list_name => "My New List", # default width for formatting :width => 50, # default color scheme options :color => "light" } end |