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

Version Path
CloudSesame-0.6.4 lib/cloud_sesame/query/node/query.rb
CloudSesame-0.6.3 lib/cloud_sesame/query/node/query.rb
CloudSesame-0.6.2 lib/cloud_sesame/query/node/query.rb
CloudSesame-0.6.1 lib/cloud_sesame/query/node/query.rb
CloudSesame-0.6.0 lib/cloud_sesame/query/node/query.rb
CloudSesame-0.5.5 lib/cloud_sesame/query/node/query.rb
CloudSesame-0.5.4 lib/cloud_sesame/query/node/query.rb
CloudSesame-0.5.3 lib/cloud_sesame/query/node/query.rb
CloudSesame-0.5.2 lib/cloud_sesame/query/node/query.rb
CloudSesame-0.5.1 lib/cloud_sesame/query/node/query.rb
CloudSesame-0.5.0 lib/cloud_sesame/query/node/query.rb
CloudSesame-0.4.6 lib/cloud_sesame/query/node/query.rb
CloudSesame-0.4.5 lib/cloud_sesame/query/node/query.rb
CloudSesame-0.4.4 lib/cloud_sesame/query/node/query.rb
CloudSesame-0.4.3 lib/cloud_sesame/query/node/query.rb
CloudSesame-0.4.2 lib/cloud_sesame/query/node/query.rb
CloudSesame-0.4.1 lib/cloud_sesame/query/node/query.rb
CloudSesame-0.4.0 lib/cloud_sesame/query/node/query.rb
CloudSesame-0.3.6 lib/cloud_sesame/query/node/query.rb
CloudSesame-0.3.5 lib/cloud_sesame/query/node/query.rb