Class: ChiliLogger::CurrentLogAccessor
- Inherits:
-
Object
- Object
- ChiliLogger::CurrentLogAccessor
- Defined in:
- lib/current_log_accessor.rb
Overview
class for manipulating current thread variables
Instance Method Summary collapse
- #add_error(error) ⇒ Object
- #add_modified_record(table_name, new_mod_rec) ⇒ Object
- #add_to_main_content(new_content) ⇒ Object
- #clear_log_info ⇒ Object
- #desc ⇒ Object
- #errors ⇒ Object
-
#initialize(msg_broker, msg_writer) ⇒ CurrentLogAccessor
constructor
A new instance of CurrentLogAccessor.
- #main_content ⇒ Object
- #modified_records ⇒ Object
- #overwrite_errors(new_errors) ⇒ Object
- #overwrite_modified_records(new_mod_recs) ⇒ Object
- #publish(**options) ⇒ Object
- #update_action(new_action_name) ⇒ Object
- #update_desc(new_desc) ⇒ Object
- #update_main_content(new_content) ⇒ Object
- #update_service(new_service_name) ⇒ Object
- #update_type(new_type_name) ⇒ Object
- #update_user(new_user) ⇒ Object
-
#user ⇒ Object
ACCESSOR METHODS BELOW current log infos are stored in thread variables, so they can be accessed anywhere(controllers, models, tasks…).
Constructor Details
#initialize(msg_broker, msg_writer) ⇒ CurrentLogAccessor
Returns a new instance of CurrentLogAccessor.
10 11 12 13 14 15 16 17 |
# 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 |
Instance Method Details
#add_error(error) ⇒ Object
119 120 121 122 123 124 |
# 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) ⇒ Object
100 101 102 103 104 105 106 |
# 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) ⇒ Object
79 80 81 82 83 84 85 86 87 |
# 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 ⇒ Object
126 127 128 129 130 |
# File 'lib/current_log_accessor.rb', line 126 def clear_log_info update_desc(nil) update_user(nil) update_main_content(nil) end |
#desc ⇒ Object
40 41 42 |
# File 'lib/current_log_accessor.rb', line 40 def desc Thread.current[:current_log_desc] ||= @default.desc end |
#errors ⇒ Object
108 109 110 |
# File 'lib/current_log_accessor.rb', line 108 def errors main_content[:errors] ||= @default.log_errors end |
#main_content ⇒ Object
63 64 65 |
# File 'lib/current_log_accessor.rb', line 63 def main_content Thread.current[:current_log_main_content] ||= @default.main_content end |
#modified_records ⇒ Object
89 90 91 |
# File 'lib/current_log_accessor.rb', line 89 def modified_records main_content[:modified_records] ||= @default.modified_records end |
#overwrite_errors(new_errors) ⇒ Object
112 113 114 115 116 117 |
# 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) ⇒ Object
93 94 95 96 97 98 |
# 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) ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/current_log_accessor.rb', line 19 def publish(**) update_current_log() = @msg_writer.write(desc: desc, user: user, main_content: main_content) @msg_broker.publish() clear_log_info end |
#update_action(new_action_name) ⇒ Object
52 53 54 |
# 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) ⇒ Object
56 57 58 59 60 61 |
# 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) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 |
# 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) ⇒ Object
48 49 50 |
# 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) ⇒ Object
44 45 46 |
# 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) ⇒ Object
33 34 35 36 37 38 |
# 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 ⇒ Object
ACCESSOR METHODS BELOW current log infos are stored in thread variables, so they can be accessed anywhere(controllers, models, tasks…)
29 30 31 |
# File 'lib/current_log_accessor.rb', line 29 def user Thread.current[:current_log_user] ||= @default.user end |