Class/Module Index [+]

Quicksearch

Sequel::Postgres::JSONDatabaseMethods

Methods enabling Database object integration with the json type.

Public Class Methods

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 99
def self.parse_json(s)
  begin
    value = Sequel.parse_json(s)
  rescue JSON::ParserError=>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 117
def bound_variable_arg(arg, conn)
  case arg
  when JSONArray, JSONHash
    arg.to_json
  else
    super
  end
end
schema_column_type(db_type) click to toggle source

Make the column type detection recognize the json type.

# File lib/sequel/extensions/pg_json.rb, line 127
def schema_column_type(db_type)
  case db_type
  when 'json'
    :json
  else
    super
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.