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