Sha256: 31a83b64b35b7100197d62d61e3b5fdf98f411f0c8b2a96076594ed448d3fa45

Contents?: true

Size: 416 Bytes

Versions: 7

Compression:

Stored size: 416 Bytes

Contents

require_relative '../function'

Dentaku::AST::Function.register(:avg, :numeric, ->(*args) {
  if args.empty?
    raise Dentaku::ArgumentError.for(
        :too_few_arguments,
        function_name: 'AVG()', at_least: 1, given: 0
    ), 'AVG() requires at least one argument'
  end

  flatten_args = args.flatten
  flatten_args.map { |arg| Dentaku::AST::Function.numeric(arg) }.reduce(0, :+) / flatten_args.length
})

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
dentaku-3.3.4 lib/dentaku/ast/functions/avg.rb
dentaku-3.3.3 lib/dentaku/ast/functions/avg.rb
dentaku-3.3.2 lib/dentaku/ast/functions/avg.rb
dentaku-3.3.1 lib/dentaku/ast/functions/avg.rb
dentaku-3.3.0 lib/dentaku/ast/functions/avg.rb
dentaku-3.2.1 lib/dentaku/ast/functions/avg.rb
dentaku-3.2.0 lib/dentaku/ast/functions/avg.rb