Sha256: 431fc043ebb091fb0af3dc876309f7889dbce4ee5063ca5190cb2ff9c24c9d1e

Contents?: true

Size: 730 Bytes

Versions: 13

Compression:

Stored size: 730 Bytes

Contents

module Mobility
  module Backend
    class Sequel::Column::QueryMethods < Backend::Sequel::QueryMethods
      def initialize(attributes, **)
        super
        attributes_extractor = @attributes_extractor

        define_method :_filter_or_exclude do |invert, clause, cond, &block|
          if keys = attributes_extractor.call(cond)
            cond = cond.dup
            keys.each { |attr| cond[Column.column_name_for(attr)] = cond.delete(attr) }
          end
          super(invert, clause, cond, &block)
        end

        attributes.each do |attribute|
          define_method :"first_by_#{attribute}" do |value|
            where(attribute.to_sym => value).first
          end
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
mobility-0.1.18 lib/mobility/backend/sequel/column/query_methods.rb
mobility-0.1.17 lib/mobility/backend/sequel/column/query_methods.rb
mobility-0.1.16 lib/mobility/backend/sequel/column/query_methods.rb
mobility-0.1.15 lib/mobility/backend/sequel/column/query_methods.rb
mobility-0.1.14 lib/mobility/backend/sequel/column/query_methods.rb
mobility-0.1.13 lib/mobility/backend/sequel/column/query_methods.rb
mobility-0.1.12 lib/mobility/backend/sequel/column/query_methods.rb
mobility-0.1.11 lib/mobility/backend/sequel/column/query_methods.rb
mobility-0.1.10 lib/mobility/backend/sequel/column/query_methods.rb
mobility-0.1.7 lib/mobility/backend/sequel/column/query_methods.rb
mobility-0.1.6 lib/mobility/backend/sequel/column/query_methods.rb
mobility-0.1.5 lib/mobility/backend/sequel/column/query_methods.rb
mobility-0.1.4 lib/mobility/backend/sequel/column/query_methods.rb