class MarkLogic::Queries::ValueQuery

Public Class Methods

new(name, value, options = {}) click to toggle source
# File lib/marklogic/queries/value_query.rb, line 4
def initialize(name, value, options = {})
  @name = name.to_s
  @value = value
  @value = value.to_s if value.is_a?(ObjectId)
  @options = options || {}
  @weight = @options.delete(:weight) || 1.0
  @options[:exact] = true if @options.length == 0
end

Public Instance Methods

options() click to toggle source
# File lib/marklogic/queries/value_query.rb, line 17
def options
  opts = []
  @options.each do |k, v|
    dashed_key = k.to_s.gsub(/_/, '-')
    case k.to_s
    when "lang", "min_occurs", "max_occurs"
      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
options=(opts) click to toggle source
# File lib/marklogic/queries/value_query.rb, line 13
def options=(opts)
  @options = opts
end
to_xqy() click to toggle source
# File lib/marklogic/queries/value_query.rb, line 38
def to_xqy
  value = query_value(@value)
  %Q{cts:json-property-value-query("#{@name}",(#{value}),(#{options.join(',')}),#{@weight})}
end