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
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