module TransparentData::Configurable

Public Instance Methods

configure() { |self| ... } click to toggle source
# File lib/transparent_data/configurable.rb, line 3
def configure
  yield self
end

Private Instance Methods

initialize_config_accessors(*attributes) click to toggle source
# File lib/transparent_data/configurable.rb, line 9
def initialize_config_accessors(*attributes)
  module_eval do
    attributes.each do |attr|
      define_singleton_method(attr) do
        instance_variable_get("@#{attr}") || raise(NotImplementedError, "Need to configure: #{attr}")
      end

      define_singleton_method("#{attr}=") do |value|
        instance_variable_get("@#{attr}") || instance_variable_set("@#{attr}", value)
      end
    end
  end
end