module Groonga::Client::Request::Select::ScriptSyntaxValueEscapable

@private

Constants

VALID_SCRIPT_SYNTAX_IDENTIFIER_PATTERN

Private Instance Methods

escape_script_syntax_value(value) click to toggle source
# File lib/groonga/client/request/select.rb, line 750
def escape_script_syntax_value(value)
  case value
  when Numeric
    value.to_s
  when TrueClass, FalseClass
    value.to_s
  when NilClass
    "null"
  when String
    ScriptSyntax.format_string(value)
  when Symbol
    if valid_script_syntax_identifier?(value)
      value.to_s
    else
      ScriptSyntax.format_string(value.to_s)
    end
  when ::Array
    escaped_value = "["
    value.each_with_index do |element, i|
      escaped_value << ", " if i > 0
      escaped_value << escape_script_syntax_value(element)
    end
    escaped_value << "]"
    escaped_value
  when ::Hash
    escaped_value = "{"
    value.each_with_index do |(k, v), i|
      escaped_value << ", " if i > 0
      escaped_value << escape_script_syntax_value(k.to_s)
      escaped_value << ": "
      escaped_value << escape_script_syntax_value(v)
    end
    escaped_value << "}"
    escaped_value
  else
    value
  end
end
valid_script_syntax_identifier?(value) click to toggle source
# File lib/groonga/client/request/select.rb, line 792
def valid_script_syntax_identifier?(value)
  VALID_SCRIPT_SYNTAX_IDENTIFIER_PATTERN === value.to_s
end