Sha256: 4a0fdee66bff5210f949a85c677fc102b8aa8f2ecb23330c54c0e08a7f91a0c9
Contents?: true
Size: 890 Bytes
Versions: 5
Compression:
Stored size: 890 Bytes
Contents
# frozen_string_literal: true module Confset # The main configuration backbone class Configuration < Module # Accepts configuration options, # initializing a module that can be used to extend # the necessary class with the provided config methods def initialize(**attributes) attributes.each do |name, default| define_reader(name, default) define_writer(name) end end private def define_reader(name, default) variable = :"@#{name}" define_method(name) do if instance_variable_defined?(variable) instance_variable_get(variable) else default end end end def define_writer(name) variable = :"@#{name}" define_method("#{name}=") do |value| instance_variable_set(variable, value) end end end end
Version data entries
5 entries across 5 versions & 1 rubygems