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.
11 12 13 14 15 16 17 18 |
# File 'lib/current_log_accessor.rb', line 11 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
122 123 124 125 126 127 |
# File 'lib/current_log_accessor.rb', line 122 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
103 104 105 106 107 108 109 |
# File 'lib/current_log_accessor.rb', line 103 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
82 83 84 85 86 87 88 89 90 |
# File 'lib/current_log_accessor.rb', line 82 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
129 130 131 132 133 |
# File 'lib/current_log_accessor.rb', line 129 def clear_log_info update_desc(nil) update_user(nil) update_main_content(nil) end |
#desc ⇒ Object
43 44 45 |
# File 'lib/current_log_accessor.rb', line 43 def desc Thread.current[:current_log_desc] ||= @default.desc end |
#errors ⇒ Object
111 112 113 |
# File 'lib/current_log_accessor.rb', line 111 def errors main_content[:errors] ||= @default.log_errors end |
#main_content ⇒ Object
66 67 68 |
# File 'lib/current_log_accessor.rb', line 66 def main_content Thread.current[:current_log_main_content] ||= @default.main_content end |
#modified_records ⇒ Object
92 93 94 |
# File 'lib/current_log_accessor.rb', line 92 def modified_records main_content[:modified_records] ||= @default.modified_records end |
#overwrite_errors(new_errors) ⇒ Object
115 116 117 118 119 120 |
# File 'lib/current_log_accessor.rb', line 115 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
96 97 98 99 100 101 |
# File 'lib/current_log_accessor.rb', line 96 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
20 21 22 23 24 25 26 27 28 |
# File 'lib/current_log_accessor.rb', line 20 def publish(**) update_current_log() = @msg_writer.write(desc: desc, user: user, main_content: main_content) routing_key = @msg_writer.write_description_tag(desc) @msg_broker.publish(, routing_key) clear_log_info end |
#update_action(new_action_name) ⇒ Object
55 56 57 |
# File 'lib/current_log_accessor.rb', line 55 def update_action(new_action_name) desc[:action] = @desc_uniformizer.action(new_action_name) end |
#update_desc(new_desc) ⇒ Object
59 60 61 62 63 64 |
# File 'lib/current_log_accessor.rb', line 59 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
70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/current_log_accessor.rb', line 70 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
51 52 53 |
# File 'lib/current_log_accessor.rb', line 51 def update_service(new_service_name) desc[:service] = @desc_uniformizer.service(new_service_name) end |
#update_type(new_type_name) ⇒ Object
47 48 49 |
# File 'lib/current_log_accessor.rb', line 47 def update_type(new_type_name) desc[:type] = @desc_uniformizer.type(new_type_name) end |
#update_user(new_user) ⇒ Object
36 37 38 39 40 41 |
# File 'lib/current_log_accessor.rb', line 36 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…)
32 33 34 |
# File 'lib/current_log_accessor.rb', line 32 def user Thread.current[:current_log_user] ||= @default.user end |