23 lines
563 B
Ruby
23 lines
563 B
Ruby
# frozen_string_literal: true
|
|
|
|
class Pry
|
|
class Config
|
|
# Attributable provides the ability to create "attribute"
|
|
# accessors. Attribute accessors create a standard "attr_writer" and a
|
|
# customised "attr_reader". This reader is Proc-aware (lazy).
|
|
#
|
|
# @since ?.?.?
|
|
# @api private
|
|
module Attributable
|
|
def attribute(attr_name)
|
|
define_method(attr_name) do
|
|
value = Config::Value.new(instance_variable_get("@#{attr_name}"))
|
|
value.call
|
|
end
|
|
|
|
attr_writer(attr_name)
|
|
end
|
|
end
|
|
end
|
|
end
|