Class: Servactory::Maintenance::Attributes::Options::Registrar

Inherits:
Object
  • Object
show all
Defined in:
lib/servactory/maintenance/attributes/options/registrar.rb

Overview

rubocop:disable Metrics/ClassLength

Constant Summary collapse

RESERVED_OPTIONS =
%i[
  type
  required
  default
  collection
  must
  prepare
].freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attribute:, options:, features:) ⇒ Registrar

Returns a new instance of Registrar.



31
32
33
34
35
# File 'lib/servactory/maintenance/attributes/options/registrar.rb', line 31

def initialize(attribute:, options:, features:)
  @attribute = attribute
  @options = options
  @features = DEFAULT_FEATURES.merge(features)
end

Class Method Details

.registerObject



27
28
29
# File 'lib/servactory/maintenance/attributes/options/registrar.rb', line 27

def self.register(...)
  new(...).register
end

Instance Method Details

#collectionObject



49
50
51
# File 'lib/servactory/maintenance/attributes/options/registrar.rb', line 49

def collection
  @collection ||= Servactory::Maintenance::Attributes::OptionsCollection.new
end

#registerObject



39
40
41
42
43
44
45
46
47
# File 'lib/servactory/maintenance/attributes/options/registrar.rb', line 39

def register
  register_feature(:required, Servactory::Inputs::Validations::Required)
  register_feature(:types, Servactory::Maintenance::Attributes::Validations::Type)
  register_feature(:default, Servactory::Maintenance::Attributes::Validations::Type)
  register_feature(:must, Servactory::Maintenance::Attributes::Validations::Must)
  register_feature(:prepare, nil)

  self
end