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.
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. |
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. |
# 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