module Quiver::Adapter::HelpersHelpers

Public Class Methods

included(host) click to toggle source
# File lib/quiver/adapter/helpers_helpers.rb, line 4
def self.included(host)
  host.send(:extend, SelfMethods)
end

Private Instance Methods

hydrate(attributes) click to toggle source
# File lib/quiver/adapter/helpers_helpers.rb, line 46
def hydrate(attributes)
  mapper_klass.hydrate(attributes).tap do |obj|
    obj.persisted_by!(adapter_type)
  end
end
mapper_name() click to toggle source
# File lib/quiver/adapter/helpers_helpers.rb, line 18
def mapper_name
  @mapper_name ||= self.class.parent.name.split('::').last.underscore
end
when_valid(model, adapter_op) { |model, errors| ... } click to toggle source
# File lib/quiver/adapter/helpers_helpers.rb, line 22
def when_valid(model, adapter_op)
  raise ArgumentError, "requires block" unless block_given?

  errors = model.validate(
    tags: [adapter_op],
    mapper: mapper_klass.new,
    model: model,
    adapter: self
  )

  if errors.success?
    current_time = Time.now.utc
    model.updated_at = current_time if model.respond_to?(:updated_at=)

    if adapter_op == :create
      model.created_at ||= current_time if model.respond_to?(:created_at)
    end

    object = yield(model, errors)
  end

  Quiver::Mapper::MapperResult.new(object, errors, adapter_op: adapter_op)
end