class Textbringer::InputMethod
Public Class Methods
find(name)
click to toggle source
# File lib/textbringer/input_method.rb, line 19 def self.find(name) class_name = name.split(/_/).map(&:capitalize).join + "InputMethod" Textbringer.const_get(class_name).new rescue NameError raise EditorError, "No such input method: #{name}" end
inherited(subclass)
click to toggle source
# File lib/textbringer/input_method.rb, line 8 def self.inherited(subclass) name = subclass.name.sub(/Textbringer::/, "").sub(/InputMethod/, ""). gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').gsub(/([a-z\d])([A-Z])/, '\1_\2'). downcase @@list.push(name) end
list()
click to toggle source
# File lib/textbringer/input_method.rb, line 15 def self.list @@list end
new()
click to toggle source
# File lib/textbringer/input_method.rb, line 26 def initialize @enabled = false @skip_next_event = false end
Public Instance Methods
disable()
click to toggle source
# File lib/textbringer/input_method.rb, line 35 def disable @enabled = false end
enabled?()
click to toggle source
# File lib/textbringer/input_method.rb, line 39 def enabled? @enabled end
filter_event(event)
click to toggle source
# File lib/textbringer/input_method.rb, line 43 def filter_event(event) if @enabled if event == "\e" @skip_next_event = true event elsif @skip_next_event @skip_next_event = false event else handle_event(event) end else event end end
handle_event(event)
click to toggle source
# File lib/textbringer/input_method.rb, line 59 def handle_event(event) raise EditorError, "subclass must override InputMethod#handle_event" end
toggle()
click to toggle source
# File lib/textbringer/input_method.rb, line 31 def toggle @enabled = !@enabled end