class LearnLab::Configuration
Interface for dealing with persisted configuration file in YAML format.
Attributes
email[RW]
fs[R]
path[R]
Public Class Methods
new(path, data, **options)
click to toggle source
# File lib/learn_lab/configuration.rb, line 20 def initialize(path, data, **options) @path = path @fs = options.fetch(:fs) { LearnLab.file_system } @email = data[:email] end
open(filename='enterprise.yml', **options)
click to toggle source
# File lib/learn_lab/configuration.rb, line 10 def self.open(filename='enterprise.yml', **options) fs = options.fetch(:fs) { LearnLab.file_system } path = fs.join(fs.home, '.flatiron-school', filename) data = fs.read_yaml_file(path) new(path, data) rescue ConfigurationError path = fs.join(fs.home, '.flatiron-school', 'enterprise.yml') new(path, {}) end
Public Instance Methods
save!()
click to toggle source
# File lib/learn_lab/configuration.rb, line 26 def save! directory = fs.dirname(path) fs.mkdir(directory) unless fs.directory?(directory) fs.write_yaml_file(path, payload, mode: 'w') end
valid?()
click to toggle source
# File lib/learn_lab/configuration.rb, line 32 def valid? !email.nil? end
Private Instance Methods
payload()
click to toggle source
# File lib/learn_lab/configuration.rb, line 38 def payload { 'email' => email } end