module Kind::ImmutableAttributes::ClassMethods

Public Instance Methods

attribute(name, kind = nil, default: UNDEFINED, visibility: :public) click to toggle source
# File lib/kind/immutable_attributes.rb, line 16
def attribute(name, kind = nil, default: UNDEFINED, visibility: :public)
  __attributes__[ATTRIBUTES.name!(name)] = ATTRIBUTES.value(kind, default, visibility)

  attr_reader(name)

  private(name) if visibility == :private
  protected(name) if visibility == :protected

  name
end