lib/loaf/configuration.rb
# frozen_string_literal: true
module Loaf
class Configuration
VALID_ATTRIBUTES = [
:locales_path,
:match
].freeze
attr_accessor(*VALID_ATTRIBUTES)
DEFAULT_LOCALES_PATH = '/'
DEFAULT_MATCH = :inclusive
# Setup this configuration
#
# @api public
def initialize(attributes = {})
VALID_ATTRIBUTES.each do |attr|
default = self.class.const_get("DEFAULT_#{attr.to_s.upcase}")
attr_value = attributes.fetch(attr) { default }
send("#{attr}=", attr_value)
end
end
# Convert all properties into hash
#
# @return [Hash]
#
# @api public
def to_hash
VALID_ATTRIBUTES.reduce({}) { |acc, k| acc[k] = send(k); acc }
end
end # Configuration
end # Loaf