class ChiliLogger::CurrentLogAccessor
class for manipulating current thread variables
Public Class Methods
new(msg_broker, msg_writer)
click to toggle source
# File lib/current_log_accessor.rb, line 10 def initialize(msg_broker, msg_writer) @msg_broker = msg_broker @msg_writer = msg_writer @default = ChiliLogger::Values::Default.new @user_uniformizer = ChiliLogger::Values::TypeUniformizer::User.new @desc_uniformizer = ChiliLogger::Values::TypeUniformizer::Desc.new @main_content_uniformizer = ChiliLogger::Values::TypeUniformizer::MainContent.new end
Public Instance Methods
add_error(error)
click to toggle source
# File lib/current_log_accessor.rb, line 119 def add_error(error) uniformized_error = @main_content_uniformizer.error(error) main_content[:errors] = errors.push(uniformized_error) errors end
add_modified_record(table_name, new_mod_rec)
click to toggle source
# File lib/current_log_accessor.rb, line 100 def add_modified_record(table_name, new_mod_rec) return unless table_name.is_a?(String) uniformized_rec = @main_content_uniformizer.modified_record(new_mod_rec) modified_records[table_name] ||= [] modified_records[table_name] = modified_records[table_name].push(uniformized_rec) end
add_to_main_content(new_content)
click to toggle source
# File lib/current_log_accessor.rb, line 79 def add_to_main_content(new_content) uniform_content = @main_content_uniformizer.main_content(new_content) uniform_recs = uniform_content[:modified_records] uniform_errs = uniform_content[:errors] # only overwrite if key was explicitly set main_content[:modified_records] = modified_records.merge(uniform_recs) if uniform_recs main_content[:errors] = errors + uniform_errs if uniform_errs end
clear_log_info()
click to toggle source
# File lib/current_log_accessor.rb, line 126 def clear_log_info update_desc(nil) update_user(nil) update_main_content(nil) end
desc()
click to toggle source
# File lib/current_log_accessor.rb, line 40 def desc Thread.current[:current_log_desc] ||= @default.desc end
errors()
click to toggle source
# File lib/current_log_accessor.rb, line 108 def errors main_content[:errors] ||= @default.log_errors end
main_content()
click to toggle source
# File lib/current_log_accessor.rb, line 63 def main_content Thread.current[:current_log_main_content] ||= @default.main_content end
modified_records()
click to toggle source
# File lib/current_log_accessor.rb, line 89 def modified_records main_content[:modified_records] ||= @default.modified_records end
overwrite_errors(new_errors)
click to toggle source
# File lib/current_log_accessor.rb, line 112 def overwrite_errors(new_errors) return main_content[:errors] = nil if new_errors.nil? uniformized_errors = @main_content_uniformizer.errors(new_errors) main_content[:errors] = uniformized_errors end
overwrite_modified_records(new_mod_recs)
click to toggle source
# File lib/current_log_accessor.rb, line 93 def overwrite_modified_records(new_mod_recs) return main_content[:modified_records] = nil if new_mod_recs.nil? uniformized_recs = @main_content_uniformizer.modified_records(new_mod_recs) main_content[:modified_records] = uniformized_recs end
publish(**options)
click to toggle source
# File lib/current_log_accessor.rb, line 19 def publish(**options) update_current_log(options) message = @msg_writer.write(desc: desc, user: user, main_content: main_content) @msg_broker.publish(message) clear_log_info end
update_action(new_action_name)
click to toggle source
# File lib/current_log_accessor.rb, line 52 def update_action(new_action_name) desc[:action] = @desc_uniformizer.action(new_action_name) end
update_desc(new_desc)
click to toggle source
# File lib/current_log_accessor.rb, line 56 def update_desc(new_desc) return Thread.current[:current_log_desc] = nil if new_desc.nil? uniformized_desc = @desc_uniformizer.desc(new_desc) Thread.current[:current_log_desc] = desc.merge(uniformized_desc) end
update_main_content(new_content)
click to toggle source
# File lib/current_log_accessor.rb, line 67 def update_main_content(new_content) return Thread.current[:current_log_main_content] = nil if new_content.nil? uniform_content = @main_content_uniformizer.main_content(new_content) uniform_recs = @main_content_uniformizer.modified_records(uniform_content[:modified_records]) uniform_errors = @main_content_uniformizer.errors(uniform_content[:errors]) # only overwrite if key was explicitly set main_content[:modified_records] = uniform_recs if uniform_content.key?(:modified_records) main_content[:errors] = uniform_errors if uniform_content.key?(:errors) end
update_service(new_service_name)
click to toggle source
# File lib/current_log_accessor.rb, line 48 def update_service(new_service_name) desc[:service] = @desc_uniformizer.service(new_service_name) end
update_type(new_type_name)
click to toggle source
# File lib/current_log_accessor.rb, line 44 def update_type(new_type_name) desc[:type] = @desc_uniformizer.type(new_type_name) end
update_user(new_user)
click to toggle source
# File lib/current_log_accessor.rb, line 33 def update_user(new_user) return Thread.current[:current_log_user] = nil if new_user.nil? uniformized_user = @user_uniformizer.user(new_user) Thread.current[:current_log_user] = user.merge(uniformized_user) end
user()
click to toggle source
ACCESSOR METHODS BELOW current log infos are stored in thread variables, so they can be accessed anywhere(controllers, models, tasks…)
# File lib/current_log_accessor.rb, line 29 def user Thread.current[:current_log_user] ||= @default.user end
Private Instance Methods
update_current_log(options)
click to toggle source
# File lib/current_log_accessor.rb, line 134 def update_current_log(options) update_desc(options[:desc]) if options[:desc] update_user(options[:user]) if options[:user] update_main_content(options[:main_content]) if options[:main_content] end