Sha256: f7c1c9cf0e480bbccb7537f5f1235021b3b990865afe75e630ce99a08498c9ed

Contents?: true

Size: 2 KB

Versions: 8

Compression:

Stored size: 2 KB

Contents

module D3
  class << self
    def min(data, &block)
      if block
        @d3.JS.min(data, proc{|x| y=yield(x); y.nil? ? `undefined` : y})
      else
        @d3.JS.min(data.compact)
      end
    end

    def max(data, &block)
      if block
        @d3.JS.max(data, proc{|x| y=yield(x); y.nil? ? `undefined` : y})
      else
        @d3.JS.max(data.compact)
      end
    end

    def sum(data, &block)
      if block
        @d3.JS.sum(data, proc{|x| y=yield(x); y.nil? ? `undefined` : y})
      else
        @d3.JS.sum(data.compact)
      end
    end

    def mean(data, &block)
      result = if block
        @d3.JS.mean(data, proc{|x| y=yield(x); y.nil? ? `undefined` : y})
      else
        @d3.JS.mean(data.compact)
      end
      `result === undefined ? nil : result`
    end

    def median(data, &block)
      result = if block
        @d3.JS.median(data, proc{|x| y=yield(x); y.nil? ? `undefined` : y})
      else
        @d3.JS.median(data.compact)
      end
      `result === undefined ? nil : result`
    end

    def deviation(data, &block)
      result = if block
        @d3.JS.deviation(data, proc{|x| y=yield(x); y.nil? ? `undefined` : y})
      else
        @d3.JS.deviation(data.compact)
      end
      `result === undefined ? nil : result`
    end

    def variance(data, &block)
      result = if block
        @d3.JS.variance(data, proc{|x| y=yield(x); y.nil? ? `undefined` : y})
      else
        @d3.JS.variance(data.compact)
      end
      `result === undefined ? nil : result`
    end

    def quantile(data, p, &block)
      result = if block
        @d3.JS.quantile(data, p, proc{|x| y=yield(x); y.nil? ? `undefined` : y})
      else
        @d3.JS.quantile(data.compact, p)
      end
      `result === undefined ? nil : result`
    end

    def extent(data, &block)
      (a,b) = if block
        @d3.JS.extent(data, proc{|x| y=yield(x); y.nil? ? `undefined` : y})
      else
        @d3.JS.extent(data.compact)
      end
      [`a === undefined ? nil : a`, `b === undefined ? nil : b`]
    end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
hyper-d3-1.0.0.lap28 lib/d3/statistics.rb
hyper-d3-1.0.0.lap27 lib/d3/statistics.rb
hyper-d3-1.0.0.lap26 lib/d3/statistics.rb
hyper-d3-1.0.0.lap25 lib/d3/statistics.rb
hyper-d3-1.0.0.lap24 lib/d3/statistics.rb
hyper-d3-1.0.0.lap23 lib/d3/statistics.rb
opal-d3-0.0.20170822 lib/opal/d3/statistics.rb
opal-d3-0.0.20170205 lib/opal/d3/statistics.rb