Sha256: e27f7c2b6eb3e3eb7d3019249d89f45dce636bf3a70438623cc7ed26e67fb8f3
Contents?: true
Size: 732 Bytes
Versions: 10
Compression:
Stored size: 732 Bytes
Contents
module Kasket module SelectManagerMixin def to_kasket_query(klass, binds = []) query = Kasket::Visitor.new(klass, binds).accept(ast) return nil if query.nil? || query == :unsupported return nil if query[:attributes].blank? query[:index] = query[:attributes].map(&:first) if query[:limit] return nil if query[:limit] > 1 # return nil if !query[:index].include?(:id) end if query[:index].size > 1 && query[:attributes].any? { |attribute, value| value.is_a?(Array) } return nil end query[:key] = klass.kasket_key_for(query[:attributes]) query[:key] << '/first' if query[:limit] == 1 && query[:index] != [:id] query end end end
Version data entries
10 entries across 10 versions & 1 rubygems