Sha256: 366705d410e8604980e016a007ca0f710cab0651d81cbab22cef062d5a80dbcc

Contents?: true

Size: 1.11 KB

Versions: 10

Compression:

Stored size: 1.11 KB

Contents

module MarkLogic
  module Queries
    class WordQuery< BaseQuery
      def initialize(values, options = {})
        @values = values
        @options = options || {}
        @weight = @options.delete(:weight) || 1.0
        @options[:exact] = true if @options.length == 0
      end

      def options
        opts = []
        @options.each do |k, v|
          dashed_key = k.to_s.gsub(/_/, '-')
          case k.to_s
          when "lang", "distance_weight", "min_occurs", "max_occurs", "lexicon_expand"
            opts << %Q{"#{dashed_key}=#{v}"}
          when /(case|diacritic|punctuation|whitespace)_sensitive/
            opts << (v == true ? %Q{"#{$1}-sensitive"} : %Q{"#{$1}-insensitive"})
          when "exact"
            opts << %Q{"#{dashed_key}"}
          when "stemmed", "wildcarded"
            opts << (v == true ? %Q{"#{dashed_key}"} : %Q{"un#{dashed_key}"})
          else
            opts << %Q{"#{v}"}
          end
        end

        opts
      end

      def to_xqy
        values = query_value(@values)
        %Q{cts:word-query((#{values}),(#{options.join(',')}),#{@weight})}
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
marklogic-0.0.11 lib/marklogic/queries/word_query.rb
marklogic-0.0.10 lib/marklogic/queries/word_query.rb
marklogic-0.0.9 lib/marklogic/queries/word_query.rb
marklogic-0.0.8 lib/marklogic/queries/word_query.rb
marklogic-0.0.7 lib/marklogic/queries/word_query.rb
marklogic-0.0.6 lib/marklogic/queries/word_query.rb
marklogic-0.0.5 lib/marklogic/queries/word_query.rb
marklogic-0.0.4 lib/marklogic/queries/word_query.rb
marklogic-0.0.3 lib/marklogic/queries/word_query.rb
marklogic-0.0.1 lib/marklogic/queries/word_query.rb