Module: Operations::Form::Base::ClassMethods
- Included in:
- Operations::Form::Base
- Defined in:
- lib/operations/form/base.rb
Overview
:nodoc:
Class Method Summary collapse
Instance Method Summary collapse
- #attribute(name, **options) ⇒ Object
- #human_attribute_name(name, options = {}) ⇒ Object
- #model_name ⇒ Object
- #reflect_on_association ⇒ Object
- #validators_on(name) ⇒ Object
Class Method Details
.extended(base) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/operations/form/base.rb', line 28 def self.extended(base) base.singleton_class.include Operations::Inspect.new(:attributes) base.extend Dry::Initializer base.include Dry::Equalizer(:attributes, :errors) base.include Operations::Inspect.new(:attributes, :errors) base.param :data, type: Operations::Types::Hash.map(Operations::Types::Symbol, Operations::Types::Any), default: proc { {} }, reader: :private base.option :messages, type: Operations::Types::Hash.map( Operations::Types::Nil | Operations::Types::Coercible::Symbol, Operations::Types::Any ), default: proc { {} }, reader: :private base.option :operation_result, default: proc {} base.class_attribute :attributes, instance_accessor: false, default: {} base.class_attribute :primary_key, instance_accessor: false, default: :id base.class_attribute :persisted, instance_accessor: false, default: nil base.define_method :initialize do |*args, **kwargs| args.empty? && kwargs.present? ? super(kwargs, **{}) : super(*args, **kwargs) end end |
Instance Method Details
#attribute(name, **options) ⇒ Object
57 58 59 60 61 62 63 |
# File 'lib/operations/form/base.rb', line 57 def attribute(name, **) attribute = Operations::Form::Attribute.new(name, **) self.attributes = attributes.merge( attribute.name => attribute ) end |
#human_attribute_name(name, options = {}) ⇒ Object
65 66 67 68 69 70 71 |
# File 'lib/operations/form/base.rb', line 65 def human_attribute_name(name, = {}) if attributes[name.to_sym] attributes[name.to_sym].model_human_name() else name.to_s.humanize end end |
#model_name ⇒ Object
77 78 79 |
# File 'lib/operations/form/base.rb', line 77 def model_name @model_name ||= ActiveModel::Name.new(self) end |
#reflect_on_association ⇒ Object
81 |
# File 'lib/operations/form/base.rb', line 81 def reflect_on_association(...); end |
#validators_on(name) ⇒ Object
73 74 75 |
# File 'lib/operations/form/base.rb', line 73 def validators_on(name) attributes[name.to_sym]&.model_validators || [] end |