Sha256: 266e86d199608429e0ebf20825c529b8f41025e3713a5574487f8d60920eec5a

Contents?: true

Size: 1.14 KB

Versions: 6

Compression:

Stored size: 1.14 KB

Contents

# frozen_string_literal: true

module Influxer
  module Calculations #:nodoc:
    CALCULATION_METHODS =
      [
        :count, :min, :max, :mean,
        :mode, :median, :distinct, :derivative,
        :stddev, :sum, :first, :last
      ].freeze

    CALCULATION_METHODS.each do |name|
      class_eval <<-CODE, __FILE__, __LINE__ + 1
        def #{name}(val, alias_name = nil)                                                        # def count(val)
          @values[:has_calculations] = true                                                       #   @values[:has_calculations] = true
          select_values << "#{name}(\#\{val\})\#\{alias_name ? ' as '+alias_name.to_s : ''\}"     #   select_values << "count(\#\{val\})"
          self                                                                                    #   self
        end                                                                                       # end
      CODE
    end

    def percentile(name, val, alias_name = nil)
      @values[:has_calculations] = true
      select_values << "percentile(#{name}, #{val})#{alias_name ? " as " + alias_name.to_s : ""}"
      self
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
influxer-2.0.0 lib/influxer/metrics/relation/calculations.rb
influxer-1.4.0 lib/influxer/metrics/relation/calculations.rb
influxer-1.3.0 lib/influxer/metrics/relation/calculations.rb
influxer-1.2.2 lib/influxer/metrics/relation/calculations.rb
influxer-1.2.1 lib/influxer/metrics/relation/calculations.rb
influxer-1.2.0 lib/influxer/metrics/relation/calculations.rb