Module: Weechat::Helper
- Defined in:
- lib/weechat.rb
Constant Summary collapse
- SignalCallbackTransformations =
TODO add IRC parser TODO add support for filters TODO add support for ignores TODO add support for infolists by pointer
{ [/irc_(channel|pv)_opened/, /^logger_(start|stop|backlog)$/, /^buffer_(closing|closed|lines_hidden|moved|opened|renamed|switch)$/, /^buffer_(title|type)_changed$/, /^buffer_localvar_(added|changed|removed)$/] => lambda { |v| Weechat::Buffer.new(v) }, [/irc_server_(connecting|connected|disconnected)/] => lambda { |v| Weechat::Server.new(v) }, [/weechat_(highlight|pv)/] => lambda { |v| Weechat::Line.parse(v) }, [/window_(scrolled|unzooming|unzoomed|zooming|zoomed)/] => lambda { |v| Weechat::Window.new(v) }, }
- ModifierCallbackTransformations =
{ ['irc_color_decode', 'irc_color_encode'] => lambda { |v| Weechat.integer_to_bool(v) }, [/^bar_condition_.+$/] => lambda { |v| Weechat::Window.new(v) }, ["input_text_content", "input_text_display", "input_text_display_with_cursor"] => lambda { |v| Weechat::Buffer.new(v) }, ["weechat_print"] => lambda { |v| parts = v.split(";") parts[0] = Weechat::Plugin.find(parts[0]) parts[1] = Weechat::Buffer.find(parts[1], parts[0]) if parts[2] parts[2] = parts[2].split(",") else parts[2] = [] end parts }, }
- ModifierCallbackRTransformations =
{ [/^bar_condition_.+$/] => lambda { |v| Weechat.bool_to_integer(v) }, }
Instance Method Summary collapse
- #close_callback(method, buffer) ⇒ Object
- #command_callback(id, buffer, args) ⇒ Object
- #command_run_callback(id, buffer, command) ⇒ Object
- #config_callback(id, option, value) ⇒ Object
- #info_callback(id, info, arguments) ⇒ Object
- #input_callback(method, buffer, input) ⇒ Object
- #modifier_callback(id, modifier, modifier_data, s) ⇒ Object
- #print_callback(id, buffer, date, tags, displayed, highlight, prefix, message) ⇒ Object
- #process_callback(id, command, code, stdout, stderr) ⇒ Object
- #signal_callback(id, signal, data) ⇒ Object
- #timer_callback(id, remaining) ⇒ Object
Instance Method Details
#close_callback(method, buffer) ⇒ Object
27 28 29 |
# File 'lib/weechat.rb', line 27 def close_callback(method, buffer) Weechat::Buffer.call_close_callback(method, buffer) end |
#command_callback(id, buffer, args) ⇒ Object
11 12 13 |
# File 'lib/weechat.rb', line 11 def command_callback(id, buffer, args) Weechat::Command.find_by_id(id).call(Weechat::Buffer.new(buffer), args) end |
#command_run_callback(id, buffer, command) ⇒ Object
15 16 17 |
# File 'lib/weechat.rb', line 15 def command_run_callback(id, buffer, command) Weechat::Hooks::CommandRunHook.find_by_id(id).call(Weechat::Buffer.new(buffer), command) end |
#config_callback(id, option, value) ⇒ Object
64 65 66 |
# File 'lib/weechat.rb', line 64 def config_callback(id, option, value) ret = Weechat::Hooks::Config.find_by_id(id).call(option, value) end |
#info_callback(id, info, arguments) ⇒ Object
31 32 33 |
# File 'lib/weechat.rb', line 31 def info_callback(id, info, arguments) Weechat::Info.find_by_id(id).call(arguments).to_s end |
#input_callback(method, buffer, input) ⇒ Object
23 24 25 |
# File 'lib/weechat.rb', line 23 def input_callback(method, buffer, input) Weechat::Buffer.call_input_callback(method, buffer, input) end |
#modifier_callback(id, modifier, modifier_data, s) ⇒ Object
111 112 113 114 115 116 117 118 119 |
# File 'lib/weechat.rb', line 111 def modifier_callback(id, modifier, modifier_data, s) klass = Weechat::Modifiers::Mappings[modifier] || Weechat::Modifier modifier_data = Weechat::Utilities.apply_transformation(modifier, modifier_data, ModifierCallbackTransformations) args = modifier_data + [Weechat::Line.parse(s)] callback = klass.find_by_id(id) callback ||= Weechat::Modifier.find_by_id(id) ret = callback.call(*args) return Weechat::Utilities.apply_transformation(modifier, ret, ModifierCallbackRTransformations).to_s end |
#print_callback(id, buffer, date, tags, displayed, highlight, prefix, message) ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/weechat.rb', line 35 def print_callback(id, buffer, date, , displayed, highlight, prefix, ) buffer = Weechat::Buffer.new(buffer) date = Time.at(date.to_i) = .split(",") displayed = Weechat.integer_to_bool(displayed) highlight = Weechat.integer_to_bool(highlight) Weechat::Hooks::Print.find_by_id(id).call(buffer, date, , displayed, highlight, prefix, ) end |
#process_callback(id, command, code, stdout, stderr) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/weechat.rb', line 68 def process_callback(id, command, code, stdout, stderr) code = case code when Weechat::WEECHAT_HOOK_PROCESS_RUNNING :running when Weechat::WEECHAT_HOOK_PROCESS_ERROR :error else code end process = Weechat::Process.find_by_id(id) if process.collect process.buffer(stdout, stderr) if code == :error || code != :running process.call(code, process.stdout, process.stderr) end else Weechat::Process.find_by_id(id).call(code, stdout, stderr) end end |
#signal_callback(id, signal, data) ⇒ Object
59 60 61 62 |
# File 'lib/weechat.rb', line 59 def signal_callback(id, signal, data) data = Weechat::Utilities.apply_transformation(signal, data, SignalCallbackTransformations) Weechat::Hooks::Signal.find_by_id(id).call(signal, data) end |
#timer_callback(id, remaining) ⇒ Object
19 20 21 |
# File 'lib/weechat.rb', line 19 def timer_callback(id, remaining) Weechat::Timer.find_by_id(id).call(remaining.to_i) end |