519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
|
# File 'lib/arel_extensions/visitors/postgresql.rb', line 519
def visit_ArelExtensions_Nodes_Json o, collector
case o.dict
when Array
collector << 'to_jsonb(array['
o.dict.each.with_index do |v, i|
if i != 0
collector << Arel::Visitors::MySQL::COMMA
end
collector = visit v, collector
end
collector << '])'
when Hash
collector << 'jsonb_build_object('
o.dict.each.with_index do |(k, v), i|
if i != 0
collector << Arel::Visitors::MySQL::COMMA
end
collector = visit k, collector
collector << Arel::Visitors::MySQL::COMMA
collector = visit v, collector
end
collector << ')'
when String, Numeric, TrueClass, FalseClass
collector = visit Arel.quoted("#{o.dict}"), collector
collector << '::jsonb'
when NilClass
collector << %Q['null'::jsonb]
else
collector = visit o.dict, collector
collector << '::jsonb'
end
collector
end
|