class Twiddler::Config::KeyTable

Public Class Methods

new() click to toggle source
# File lib/twiddler/config.rb, line 64
def initialize
  @data = Hash.new{|h,k| KeyData.new(k, "U/#{k.inspect}")}
  @ordered = []
  @current_tags = {}
end

Public Instance Methods

[](idx, mod=nil) click to toggle source
# File lib/twiddler/config.rb, line 103
def [](idx, mod=nil)
  return @data[idx].string(mod)
end
[]=(idx, value) click to toggle source
# File lib/twiddler/config.rb, line 107
def []=(idx, value)
  if @data.has_key?(idx)
    @ordered.delete(@data[idx])
  end
  data = KeyData.new(idx, value)
  @current_tags.each_key do |name|
    data.tag(name)
  end
  @data[idx] = data
  @ordered << data
end
clear_tags() click to toggle source
# File lib/twiddler/config.rb, line 89
def clear_tags
  @current_tags.clear
end
each(&block) click to toggle source
# File lib/twiddler/config.rb, line 120
def each(&block)
  @ordered.each(&block)
end
end_tag(name) click to toggle source
# File lib/twiddler/config.rb, line 85
def end_tag(name)
  @current_tags.delete(name.to_sym)
end
is_tagged?(idx, tag) click to toggle source
# File lib/twiddler/config.rb, line 99
def is_tagged?(idx, tag)
  @data[idx].tag?(tag)
end
mod(idx, mod, value) click to toggle source
# File lib/twiddler/config.rb, line 124
def mod(idx, mod, value)
  @data[idx].modified(mod, value)
end
normalized(stroke) click to toggle source
# File lib/twiddler/config.rb, line 70
def normalized(stroke)
  mods = KeyData::normalized(stroke[1])
  return [stroke[0], mods]
end
start_tag(name) click to toggle source
# File lib/twiddler/config.rb, line 81
def start_tag(name)
  @current_tags[name.to_sym] = true
end
tagged(name) click to toggle source
# File lib/twiddler/config.rb, line 93
def tagged(name)
  @ordered.find_all do |key|
    key.tag?(name)
  end
end
unknowns(list) click to toggle source
# File lib/twiddler/config.rb, line 75
def unknowns(list)
  return list.reject do |item|
    @data.has_key?(item)
  end
end