Module: DecoLite::FieldConflictable

Includes:
FieldsOptionable
Included in:
FieldCreatable
Defined in:
lib/deco_lite/field_conflictable.rb

Overview

Defines methods to to manage fields that conflict with existing model attributes.

Constant Summary

Constants included from FieldsOptionable

DecoLite::FieldsOptionable::OPTION_FIELDS, DecoLite::FieldsOptionable::OPTION_FIELDS_DEFAULT, DecoLite::FieldsOptionable::OPTION_FIELDS_MERGE, DecoLite::FieldsOptionable::OPTION_FIELDS_STRICT, DecoLite::FieldsOptionable::OPTION_FIELDS_VALUES

Instance Method Summary collapse

Instance Method Details

#field_conflict?(field_name:) ⇒ Boolean



19
20
21
# File 'lib/deco_lite/field_conflictable.rb', line 19

def field_conflict?(field_name:)
  respond_to? field_name
end

#validate_field_conflicts!(field_name:, options:) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/deco_lite/field_conflictable.rb', line 11

def validate_field_conflicts!(field_name:, options:)
  return unless options.strict? && field_conflict?(field_name: field_name)

  raise "Field '#{field_name}' conflicts with existing attribute; " \
    'this will raise an error when running in strict mode: ' \
    "options: { #{OPTION_FIELDS}: :#{OPTION_FIELDS_STRICT} }."
end