Sha256: a50a17869d1e60b286877a57e46a096b30c82b4fd47f0d67b7219a1f1989551d

Contents?: true

Size: 876 Bytes

Versions: 7

Compression:

Stored size: 876 Bytes

Contents

# frozen_string_literal: true

require 'dynamoid_advanced_where/query_builder'

module DynamoidAdvancedWhere
  # Allows classes to be queried by where, all, first, and each and return criteria chains.
  module Integrations
    module Model
      extend ActiveSupport::Concern

      class_methods do
        def advanced_where(&blk)
          DynamoidAdvancedWhere::QueryBuilder.new(klass: self, &blk)
        end

        def batch_update
          advanced_where {}.batch_update
        end

        def where(*args, &blk)
          if !args.empty?
            raise ArgumentError, 'You may not specify where arguments and block' if blk

            super(*args)
          else
            DynamoidAdvancedWhere::QueryBuilder.new(klass: self, &blk)
          end
        end
      end
    end
  end
end

Dynamoid::Document.include DynamoidAdvancedWhere::Integrations::Model

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
dynamoid_advanced_where-1.8.0 lib/dynamoid_advanced_where/integrations/model.rb
dynamoid_advanced_where-1.7.1 lib/dynamoid_advanced_where/integrations/model.rb
dynamoid_advanced_where-1.7.0 lib/dynamoid_advanced_where/integrations/model.rb
dynamoid_advanced_where-1.6.0 lib/dynamoid_advanced_where/integrations/model.rb
dynamoid_advanced_where-1.5.1 lib/dynamoid_advanced_where/integrations/model.rb
dynamoid_advanced_where-1.5.0 lib/dynamoid_advanced_where/integrations/model.rb
dynamoid_advanced_where-1.4.0 lib/dynamoid_advanced_where/integrations/model.rb