Class Sequel::SQL::DateAdd
In: lib/sequel/extensions/date_arithmetic.rb
Parent: GenericExpression

The DateAdd class represents the addition of an interval to a date/timestamp expression.

Methods

new  

Classes and Modules

Module Sequel::SQL::DateAdd::DatasetMethods

Attributes

expr  [R]  The expression that the interval is being added to.
interval  [R]  The interval added to the expression, as a hash with symbol keys.

Public Class methods

Supports two types of intervals:

Hash :Used directly, but values cannot be plain strings.
ActiveSupport::Duration :Converted to a hash using the interval‘s parts.

[Source]

     # File lib/sequel/extensions/date_arithmetic.rb, line 172
172:       def initialize(expr, interval)
173:         @expr = expr
174:         @interval = if interval.is_a?(Hash)
175:           interval.each_value do |v|
176:              # Attempt to prevent SQL injection by users who pass untrusted strings
177:              # as interval values. 
178:              if v.is_a?(String) && !v.is_a?(LiteralString)
179:                raise Sequel::InvalidValue, "cannot provide String value as interval part: #{v.inspect}"
180:              end
181:           end
182:           interval
183:         else
184:           h = Hash.new(0)
185:           interval.parts.each{|unit, value| h[unit] += value}
186:           Hash[h]
187:         end
188:       end

[Validate]