Sha256: 98a677ae812196988ac51cc21d803a01e9413d3bfe54cc28c0a2d74abe982ac6

Contents?: true

Size: 731 Bytes

Versions: 2

Compression:

Stored size: 731 Bytes

Contents

# rubocop:disable Naming/MethodName
# rubocop:disable Naming/UncommunicativeMethodParamName

module Arel
  module Nodes
    # https://www.postgresql.org/docs/9.4/functions-math.html
    class Factorial < Arel::Nodes::Unary
      attr_accessor :prefix

      def initialize(expr, prefix)
        super(expr)
        @prefix = prefix
      end
    end
  end

  module Visitors
    class ToSql
      def visit_Arel_Nodes_Factorial(o, collector)
        if o.prefix
          collector << '!! '
          visit o.expr, collector
        else
          visit o.expr, collector
          collector << ' !'
        end
      end
    end
  end
end

# rubocop:enable Naming/UncommunicativeMethodParamName
# rubocop:enable Naming/MethodName

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
arel_toolkit-0.3.0 lib/arel/extensions/factorial.rb
arel_toolkit-0.2.0 lib/arel/extensions/factorial.rb