Sha256: d00877a661cca2d7969221bf67a0dc02ac0b8d47ab3744741ac2ed5db8164715

Contents?: true

Size: 895 Bytes

Versions: 4

Compression:

Stored size: 895 Bytes

Contents

module Gitter

  class Axis

    attr_reader :grid, :name, :attr

    def initialize grid, name, opts = {}
      @grid, @name = grid, name
      @attr = opts.delete(:column){name}
      only = opts.delete(:only){nil}
      case only
      when Hash
        @only_data, @titles= only.keys, only
      else
        @only_data, @titles = only, nil
      end
      @except = opts.delete(:except){[]}
    end


    def data
      data = case attr
      when Symbol,String
        grid.scope.select(attr).uniq.map(&:"#{attr}").sort
      else
        attr
      end

      data = ((data + @only_data) & @only_data).uniq if @only_data
      data = data - @except
    end

    def titles
      if @titles
        data.map{|d|@titles[d]}
      else
        data
      end
    end

    def data_titles
      res = {}	   
      data.each{|d| res[d] = @titles ? @titles[d] : d}
      res
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
gitter-1.1.6 lib/gitter/axis.rb
gitter-1.1.5 lib/gitter/axis.rb
gitter-1.1.4 lib/gitter/axis.rb
gitter-1.1.3 lib/gitter/axis.rb