Class/Module Index [+]

Quicksearch

Sequel::Postgres::JSONDatabaseMethods

Methods enabling Database object integration with the json type.

Public Class Methods

extended(db) click to toggle source
# File lib/sequel/extensions/pg_json.rb, line 96
def self.extended(db)
  db.instance_eval do
    copy_conversion_procs([114, 199])
    @schema_type_classes[:json] = [JSONHash, JSONArray]
  end
end
parse_json(s) click to toggle source

Parse the given string as json, returning either a JSONArray or JSONHash instance, and raising an error if the JSON parsing does not yield an array or hash.

# File lib/sequel/extensions/pg_json.rb, line 106
def self.parse_json(s)
  begin
    value = Sequel.parse_json(s)
  rescue Sequel.json_parser_error_class => e
    raise Sequel.convert_exception_class(e, Sequel::InvalidValue)
  end

  case value
  when Array
    JSONArray.new(value)
  when Hash 
    JSONHash.new(value)
  else
    raise Sequel::InvalidValue, "unhandled json value: #{value.inspect} (from #{s.inspect})"
  end
end

Public Instance Methods

bound_variable_arg(arg, conn) click to toggle source

Handle JSONArray and JSONHash in bound variables

# File lib/sequel/extensions/pg_json.rb, line 124
def bound_variable_arg(arg, conn)
  case arg
  when JSONArray, JSONHash
    Sequel.object_to_json(arg)
  else
    super
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.