pry/lib/pry/config/attributable.rb

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