module Loggun::Helpers::ClassMethods
Public Instance Methods
log_options(**options)
click to toggle source
# File lib/loggun/helpers.rb, line 36 def log_options(**options) @log_entity_name = options[:entity_name] @log_entity_action = options[:entity_action] @with_log_transaction_id = options[:as_transaction] @log_transaction_generator = options[:transaction_generator] @log_transaction_except = options[:log_transaction_except]&.map(&:to_sym) @log_skip_methods = options[:except]&.map(&:to_sym) @log_only_methods = options[:only]&.map(&:to_sym) @log_all_methods = options[:log_all_methods] end
method_added(method_name)
click to toggle source
Calls superclass method
# File lib/loggun/helpers.rb, line 47 def method_added(method_name) super @log_modified_methods ||= [] return if !log_all_methods && !log_only_methods&.include?(method_name) return if log_skip_methods&.include?(method_name) return if SKIPPED_METHODS.include?(method_name) || log_modified_methods.include?(method_name) log_modified_methods << method_name method = instance_method(method_name) undef_method(method_name) define_method(method_name) do |*args, &block| if self.class.log_transaction_except&.include?(method_name.to_sym) method.bind(self).call(*args, &block) else type = log_type(nil, method_name) in_log_transaction(type) do method.bind(self).call(*args, &block) end end end end