class Arel::Visitors::Sunstone

Private Instance Methods

visit_Arel_Nodes_Ascending(o, collector) click to toggle source
# File lib/arel/visitors/sunstone_extensions.rb, line 6
def visit_Arel_Nodes_Ascending o, collector
  hash = visit(o.expr, collector)
  
  value = case o.nulls
  when :nulls_first
    {asc: :nulls_first}
  when :nulls_last
    {asc: :nulls_last}
  else
    :asc
  end
  
  if hash.is_a?(Hash)
    add_to_bottom_of_hash_or_array(hash, value)
  else
    hash = { hash => value }
  end

  hash
end
visit_Arel_Nodes_Contains(o, collector) click to toggle source
# File lib/arel/visitors/sunstone_extensions.rb, line 66
def visit_Arel_Nodes_Contains o, collector
  key = visit(o.left, collector)
  value = { contains: visit(o.right, collector) }
  
  if key.is_a?(Hash)
    add_to_bottom_of_hash(key, value)
  else
    { key => value }
  end
end
visit_Arel_Nodes_Descending(o, collector) click to toggle source
# File lib/arel/visitors/sunstone_extensions.rb, line 27
def visit_Arel_Nodes_Descending o, collector
  hash = visit(o.expr, collector)

  value = case o.nulls
  when :nulls_first
    {desc: :nulls_first}
  when :nulls_last
    {desc: :nulls_last}
  else
    :desc
  end

  if hash.is_a?(Hash)
    add_to_bottom_of_hash_or_array(hash, value)
  else
    hash = { hash => value }
  end

  hash
end
visit_Arel_Nodes_Excludes(o, collector) click to toggle source
# File lib/arel/visitors/sunstone_extensions.rb, line 92
def visit_Arel_Nodes_Excludes o, collector
  key = visit(o.left, collector)
  value = { excludes: visit(o.right, collector) }
  
  if key.is_a?(Hash)
    add_to_bottom_of_hash(key, value)
  else
    { key => value }
  end
end
visit_Arel_Nodes_HasAnyKey(o, collector) click to toggle source
# File lib/arel/visitors/sunstone_extensions.rb, line 149
def visit_Arel_Nodes_HasAnyKey o, collector
  key = visit(o.left, collector)
  value = { has_any_key: visit(Array(o.right), collector) }
  
  if key.is_a?(Hash)
    add_to_bottom_of_hash(key, value)
  else
    { key => value }
  end
end
visit_Arel_Nodes_HasKey(o, collector) click to toggle source
# File lib/arel/visitors/sunstone_extensions.rb, line 127
def visit_Arel_Nodes_HasKey o, collector
  key = visit(o.left, collector)
  value = {has_key: (o.right.nil? ? nil : o.right.to_s)}
  
  if key.is_a?(Hash)
    add_to_bottom_of_hash(key, value)
  else
    { key => value }
  end
end
visit_Arel_Nodes_HasKeys(o, collector) click to toggle source
# File lib/arel/visitors/sunstone_extensions.rb, line 138
def visit_Arel_Nodes_HasKeys o, collector
  key = visit(o.left, collector)
  value = {has_keys: Array(o.right).map(&:to_s)}
  
  if key.is_a?(Hash)
    add_to_bottom_of_hash(key, value)
  else
    { key => value }
  end
end
visit_Arel_Nodes_HexEncodedBinary(o, collector) click to toggle source
# File lib/arel/visitors/sunstone_extensions.rb, line 77
def visit_Arel_Nodes_HexEncodedBinary(o, collector)
  o.expr
end
visit_Arel_Nodes_NotOverlaps(o, collector) click to toggle source
# File lib/arel/visitors/sunstone_extensions.rb, line 115
def visit_Arel_Nodes_NotOverlaps o, collector
  key = visit(o.left, collector)
  value = { not_overlaps: visit(o.right, collector) }
  
  if key.is_a?(Hash)
    add_to_bottom_of_hash_or_array(key, value)
    key
  else
    { key => value }
  end
end
visit_Arel_Nodes_Overlaps(o, collector) click to toggle source
# File lib/arel/visitors/sunstone_extensions.rb, line 103
def visit_Arel_Nodes_Overlaps o, collector
  key = visit(o.left, collector)
  value = { overlaps: visit(o.right, collector) }
  
  if key.is_a?(Hash)
    add_to_bottom_of_hash_or_array(key, value)
    key
  else
    {key => value}
  end
end
visit_Arel_Nodes_RandomOrdering(o, collector) click to toggle source
# File lib/arel/visitors/sunstone_extensions.rb, line 48
def visit_Arel_Nodes_RandomOrdering o, collector
  :random
end
visit_Arel_Nodes_Within(o, collector) click to toggle source
# File lib/arel/visitors/sunstone_extensions.rb, line 81
def visit_Arel_Nodes_Within o, collector
  key = visit(o.left, collector)
  value = { within: visit(o.right, collector) }

  if key.is_a?(Hash)
    add_to_bottom_of_hash(key, value)
  else
    { key => value }
  end
end
visit_Hash(o, collector) click to toggle source
# File lib/arel/visitors/sunstone_extensions.rb, line 52
def visit_Hash o, collector
  rvalue = {}
  o.each do |key, value|
    rvalue[visit(key, collector)] = visit(value, collector)
  end
  rvalue
end
visit_Symbol(o, collector) click to toggle source
# File lib/arel/visitors/sunstone_extensions.rb, line 62
def visit_Symbol o, collector
  o.to_s
end