Sha256: 8a838dfe2fde2949de41ba5ea7ac4eb7c64e05c052e1c33507952dd3ae54e710
Contents?: true
Size: 1.22 KB
Versions: 1
Compression:
Stored size: 1.22 KB
Contents
# frozen_string_literal: true module Arel # :nodoc: all module Nodes class Case < Arel::Nodes::Node attr_accessor :case, :conditions, :default def initialize(expression = nil, default = nil) @case = expression @conditions = [] @default = default end def when(condition, expression = nil) @conditions << When.new(Nodes.build_quoted(condition), expression) self end def then(expression) @conditions.last.right = Nodes.build_quoted(expression) self end def else(expression) @default = Else.new Nodes.build_quoted(expression) self end def initialize_copy(other) super @case = @case.clone if @case @conditions = @conditions.map { |x| x.clone } @default = @default.clone if @default end def hash [@case, @conditions, @default].hash end def eql?(other) self.class == other.class && self.case == other.case && self.conditions == other.conditions && self.default == other.default end alias :== :eql? end class When < Binary # :nodoc: end class Else < Unary # :nodoc: end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
activerecord-6.0.0.beta1 | lib/arel/nodes/case.rb |