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

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

Constant Summary collapse

NAME_REGEX =
/\A[a-z][a-z_0-9]*\z/.freeze

Instance Method Summary collapse

Instance Method Details

#accessibilityObject



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

def accessibility
  self[:accessibility]&.to_sym
end

#default_valueObject



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

def default_value
  nil
end

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



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# 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

  model.attr_readonly name if accessibility == :readonly

  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
  self[:name]&.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