Sha256: f7cd79f11f6b71edb554456d483b1b630157f95c7a25d57d9fca0514aa623493

Contents?: true

Size: 1.07 KB

Versions: 7

Compression:

Stored size: 1.07 KB

Contents

# frozen_string_literal: true

module DynamodbRecord
  module Document
    extend ActiveSupport::Concern
    include DynamodbRecord::Fields
    include DynamodbRecord::Persistence
    include DynamodbRecord::Finders
    include DynamodbRecord::Query
    include DynamodbRecord::Associations

    included do
      class_attribute :base_class
      self.base_class = self
    end

    module ClassMethods
      def from_database(attrs)
        new(attrs, true).tap { |r| r.new_record = false }
      end
    end

    attr_accessor :new_record

    def initialize(params = {}, ignore_unknown_field = false)
      @new_record = true
      @attributes = {} # Validar esta linea

      # Set default
      self.class.attributes.each do |key, value|
        send("#{key}=", value[:options][:default]) if value[:options][:default]
      end

      load(params, ignore_unknown_field)
    end

    def load(params, ignore_unknown_field = false)
      params.each do |key, value|
        next if ignore_unknown_field && !respond_to?("#{key}=")

        send("#{key}=", value)
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
dynamodb_record-0.4.1 lib/dynamodb_record/document.rb
dynamodb_record-0.2.2 lib/dynamodb_record/document.rb
dynamodb_record-0.2.1 lib/dynamodb_record/document.rb
dynamodb_record-0.2.0 lib/dynamodb_record/document.rb
dynamodb_record-0.1.0 lib/dynamodb_record/document.rb
dynamodb_record-0.0.2 lib/dynamodb_record/document.rb
dynamodb_record-0.0.1 lib/dynamodb_record/document.rb