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 169
169:       def initialize(expr, interval)
170:         @expr = expr
171:         @interval = if interval.is_a?(Hash)
172:           interval.each_value do |v|
173:              # Attempt to prevent SQL injection by users who pass untrusted strings
174:              # as interval values. 
175:              if v.is_a?(String) && !v.is_a?(LiteralString)
176:                raise Sequel::InvalidValue, "cannot provide String value as interval part: #{v.inspect}"
177:              end
178:           end
179:           interval
180:         else
181:           h = Hash.new(0)
182:           interval.parts.each{|unit, value| h[unit] += value}
183:           {}.merge(h)
184:         end
185:       end

[Validate]