class Output::WriterMacro
Public Class Methods
define_writer(output_class, name, level, device_options, message_transformer)
click to toggle source
# File lib/output/writer_macro.rb, line 7 def self.define_writer(output_class, name, level, device_options, message_transformer) macro = new output_class, name, level, device_options, message_transformer macro.define_writer end
Public Instance Methods
define_getter()
click to toggle source
# File lib/output/writer_macro.rb, line 18 def define_getter name = self.name level = self.level transformer = self.message_transformer device_options = self.device_options writer_attribute = Writer::Attribute.build name attribute_name = writer_attribute.name var_name = writer_attribute.variable_name output_class.send :define_method, attribute_name do writer = instance_variable_get var_name unless writer writer = build_writer(name, level, device_options, transformer) unless writer instance_variable_set var_name, writer end writer end end
define_setter()
click to toggle source
# File lib/output/writer_macro.rb, line 40 def define_setter writer_attribute = Writer::Attribute.build name attribute_name = writer_attribute.name var_name = writer_attribute.variable_name output_class.send :define_method, "#{attribute_name}=" do |writer| writer.logger_level = level instance_variable_set var_name, writer writer end end
define_write_method()
click to toggle source
# File lib/output/writer_macro.rb, line 52 def define_write_method name = self.name output_class.send :define_method, name do |message| writer(name).write message self.last_method = name message end end
define_writer()
click to toggle source
# File lib/output/writer_macro.rb, line 12 def define_writer define_getter define_setter define_write_method end