Module: Quiver::Model

Defined in:
lib/quiver/model.rb,
lib/quiver/model/soft_delete.rb,
lib/quiver/model/validations.rb,
lib/quiver/model/validation_error.rb

Defined Under Namespace

Modules: ExtantAttributeOverrides, SoftDelete, Validations Classes: ValidationError

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(host) ⇒ Object



23
24
25
26
27
# File 'lib/quiver/model.rb', line 23

def self.included(host)
  host.send(:include, Extant::Attributes)
  host.send(:include, Validations)
  host.send(:include, ExtantAttributeOverrides)
end

Instance Method Details

#coerced?(attr) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
32
# File 'lib/quiver/model.rb', line 29

def coerced?(attr)
  extant_attributes[attr].set? && extant_attributes[attr].coerced? ||
    extant_attributes[attr].unset? && !extant_attributes[attr].coerced?
end

#coerced_all?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/quiver/model.rb', line 34

def coerced_all?
  extant_attributes.all? { |(_, attr_object)| attr_object.coerced? }
end

#original_attributesObject



54
55
56
57
58
# File 'lib/quiver/model.rb', line 54

def original_attributes
  original_extant_attributes.each_with_object({}) do |(k, v), attrs|
    attrs[k] = v.value
  end
end

#persisted?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/quiver/model.rb', line 38

def persisted?
  persisted_by.any?
end

#persisted_byObject



42
43
44
# File 'lib/quiver/model.rb', line 42

def persisted_by
  @persisted_by ||= []
end

#persisted_by!(adapter_type) ⇒ Object



46
47
48
# File 'lib/quiver/model.rb', line 46

def persisted_by!(adapter_type)
  persisted_by << adapter_type
end

#serialization_typeObject



50
51
52
# File 'lib/quiver/model.rb', line 50

def serialization_type
  @serialization_type ||= self.class.name.split('::').last
end