class Datasets::Dictionary

Public Class Methods

new(values) click to toggle source
# File lib/datasets/dictionary.rb, line 5
def initialize(values)
  build_dictionary(values)
end

Public Instance Methods

decode(ids) click to toggle source
# File lib/datasets/dictionary.rb, line 40
def decode(ids)
  ids.collect do |id|
    value(id)
  end
end
each(&block) click to toggle source
# File lib/datasets/dictionary.rb, line 25
def each(&block)
  @id_to_value.each(&block)
end
encode(values) click to toggle source
# File lib/datasets/dictionary.rb, line 34
def encode(values)
  values.collect do |value|
    id(value)
  end
end
id(value) click to toggle source
# File lib/datasets/dictionary.rb, line 9
def id(value)
  @value_to_id[value]
end
ids() click to toggle source
# File lib/datasets/dictionary.rb, line 17
def ids
  @id_to_value.keys
end
length()
Alias for: size
size() click to toggle source
# File lib/datasets/dictionary.rb, line 29
def size
  @id_to_value.size
end
Also aliased as: length
value(id) click to toggle source
# File lib/datasets/dictionary.rb, line 13
def value(id)
  @id_to_value[id]
end
values() click to toggle source
# File lib/datasets/dictionary.rb, line 21
def values
  @id_to_value.values
end

Private Instance Methods

build_dictionary(values) click to toggle source
# File lib/datasets/dictionary.rb, line 47
def build_dictionary(values)
  @id_to_value = {}
  @value_to_id = {}
  id = 0
  values.each do |value|
    next if @value_to_id.key?(value)
    @id_to_value[id] = value
    @value_to_id[value] = id
    id += 1
  end
end