Module: FormCore::Concerns::Models::Field

Extended by:
ActiveSupport::Concern
Included in:
Field
Defined in:
lib/form_core/concerns/models/field.rb

Instance Method Summary collapse

Instance Method Details

#accessibilityObject



36
37
38
# File 'lib/form_core/concerns/models/field.rb', line 36

def accessibility
  super&.to_sym
end

#default_valueObject



44
45
46
# File 'lib/form_core/concerns/models/field.rb', line 44

def default_value
  ActiveModel::Type.lookup(stored_type).cast(static_default_value)
end

#interpret_to(model, overrides: {}) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/form_core/concerns/models/field.rb', line 48

def interpret_to(model, overrides: {})
  check_model_validity!(model)

  accessibility = overrides.fetch(:accessibility, self.accessibility)
  return model if accessibility == :hidden

  default_value = overrides.fetch(:default_value, self.default_value)
  model.attribute name, stored_type, default: default_value

  if accessibility == :read_only
    model.attr_readonly name
  end

  interpret_validations_to model, accessibility, overrides
  interpret_extra_to model, accessibility, overrides

  model
end

#nameObject



32
33
34
# File 'lib/form_core/concerns/models/field.rb', line 32

def name
  super&.to_sym
end

#stored_typeObject

Raises:

  • (NotImplementedError)


40
41
42
# File 'lib/form_core/concerns/models/field.rb', line 40

def stored_type
  raise NotImplementedError
end