Sha256: 03f469a7c1e88a646072461cdb978ed6b46e5917d07dacb6e067699b375ece4a

Contents?: true

Size: 606 Bytes

Versions: 2

Compression:

Stored size: 606 Bytes

Contents

module CloudSesame
	module Query
		module Node
			class Query < Abstract

				attr_writer :query

				def query
					@query ||= context[:query]
				end

				def compile
					{ query: join_by_or(query, fuzziness, sloppiness) }
				end

				private

				def fuzziness
					context[:fuzziness] ? context[:fuzziness].parse(query) : nil
				end

				def sloppiness
					context[:sloppiness] && query.include?(' ') ? "\"#{ query }\"~#{ context[:sloppiness] }" : nil
				end

				def join_by_or(*args)
					(args = args.flatten.compact).size > 1 ? "(#{ args.join('|') })" : args[0]
				end

			end
		end
	end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
CloudSesame-0.2.1 lib/cloud_sesame/query/node/query.rb
CloudSesame-0.2.0 lib/cloud_sesame/query/node/query.rb