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

[Validate]