Sha256: 728073e242f222dca95a66e1b05bf4ade62b3bbca4d2d5551c954f732c2b9ccb
Contents?: true
Size: 743 Bytes
Versions: 28
Compression:
Stored size: 743 Bytes
Contents
module CloudSesame module Query module Node class Query < Abstract attr_writer :query def query @query ||= context[:query] end def compile compiled = [query] compiled << fuzziness if context[:fuzziness] compiled << sloppiness if context[:sloppiness] { query: join_by_or(compiled) } end private def fuzziness context[:fuzziness] && query && !query.empty? ? context[:fuzziness].parse(query) : nil end def sloppiness context[:sloppiness] && query && query.include?(' ') ? "\"#{ query }\"~#{ context[:sloppiness] }" : nil end def join_by_or(args = []) (args = args.compact).size > 1 ? "(#{ args.join('|') })" : args[0] end end end end end
Version data entries
28 entries across 28 versions & 1 rubygems