class HDOC::Configuration
Provides methods for read configuration options by a file. By default, it uses YAML as configuration file's parser.
Attributes
file_path[R]
options[R]
Public Class Methods
init(file_path, file_parser = YAML, **options)
click to toggle source
Initializes a new configuration file with a set of defaults options:
“` # Using a custom format Configuration.init
('~/package.json', JSON, name: 'howsweather', version: '0.1.4')
# Using default format Configuration.init
('~/.1hdoc.yml', day: 0, last_commit_on: Time.now) “`
# File lib/1hdoc/core/configuration.rb, line 18 def self.init(file_path, file_parser = YAML, **options) file_path = File.expand_path(file_path) dumped_options = file_parser.dump(options) File.open(file_path, 'w') { |config| config.puts(dumped_options) } end
new(file_path, file_parser = YAML)
click to toggle source
# File lib/1hdoc/core/configuration.rb, line 25 def initialize(file_path, file_parser = YAML) @file_path = File.expand_path(file_path) @file_parser = file_parser @options = load_options end
Public Instance Methods
load_options()
click to toggle source
# File lib/1hdoc/core/configuration.rb, line 31 def load_options raise "Unable to find #{file_path}" unless File.exist? file_path @file_parser.load(File.read(file_path)) end
set(option, value)
click to toggle source
Sets a new option or a edit an existing one.
It's used in pair with Configuration#update
in order to update an existing configuration file.
# File lib/1hdoc/core/configuration.rb, line 50 def set(option, value) @options[option] = value end
update()
click to toggle source
Updates configuration file by rewriting the whole file using init's singleton method.
You should avoid this method for big files and use it for small ones.
# File lib/1hdoc/core/configuration.rb, line 41 def update self.class.init(@file_path, @file_parser, options) end