Class: Output::WriterMacro
- Inherits:
-
Object
- Object
- Output::WriterMacro
- Includes:
- Initializer
- Defined in:
- lib/output/writer_macro.rb
Class Method Summary collapse
Instance Method Summary collapse
- #define_getter ⇒ Object
- #define_setter ⇒ Object
- #define_write_method ⇒ Object
- #define_writer ⇒ Object
Class Method Details
.define_writer(output_class, name, level, device_options, message_transformer) ⇒ Object
7 8 9 10 |
# File 'lib/output/writer_macro.rb', line 7 def self.define_writer(output_class, name, level, , ) macro = new output_class, name, level, , macro.define_writer end |
Instance Method Details
#define_getter ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/output/writer_macro.rb', line 18 def define_getter name = self.name level = self.level transformer = self. = self. 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, , transformer) unless writer instance_variable_set var_name, writer end writer end end |
#define_setter ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 |
# 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 ⇒ Object
52 53 54 55 56 57 58 59 |
# File 'lib/output/writer_macro.rb', line 52 def define_write_method name = self.name output_class.send :define_method, name do || writer(name).write self.last_method = name end end |
#define_writer ⇒ Object
12 13 14 15 16 |
# File 'lib/output/writer_macro.rb', line 12 def define_writer define_getter define_setter define_write_method end |