Class/Module Index [+]

Quicksearch

Sequel::Postgres::IntervalDatabaseMethods

Constants

DURATION_UNITS
EMPTY_INTERVAL
PARSER

Single instance of Parser used for parsing, to save on memory (since the parser has no state).

Public Class Methods

extended(db) click to toggle source

Reset the conversion procs if using the native postgres adapter, and extend the datasets to correctly literalize ActiveSupport::Duration values.

# File lib/sequel/extensions/pg_interval.rb, line 121
def self.extended(db)
  db.instance_eval do
    extend_datasets(IntervalDatasetMethods)
    copy_conversion_procs([1186, 1187])
    @schema_type_classes[:interval] = ActiveSupport::Duration
  end
end
literal_duration(duration) click to toggle source

Return an unquoted string version of the duration object suitable for use as a bound variable.

# File lib/sequel/extensions/pg_interval.rb, line 46
def self.literal_duration(duration)
  h = Hash.new(0)
  duration.parts.each{|unit, value| h[unit] += value}
  s = ''

  DURATION_UNITS.each do |unit|
    if (v = h[unit]) != 0
      s << "#{v.is_a?(Integer) ? v : sprintf('%0.6f', v)} #{unit} "
    end
  end

  if s.empty?
    EMPTY_INTERVAL
  else
    s
  end
end

Public Instance Methods

bound_variable_arg(arg, conn) click to toggle source

Handle ActiveSupport::Duration values in bound variables.

# File lib/sequel/extensions/pg_interval.rb, line 130
def bound_variable_arg(arg, conn)
  case arg
  when ActiveSupport::Duration
    IntervalDatabaseMethods.literal_duration(arg)
  else
    super
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.