Class: Bemi::ContextHandler
- Inherits:
-
Object
- Object
- Bemi::ContextHandler
- Defined in:
- lib/bemi/context_handler.rb
Constant Summary collapse
- READ_QUERY =
ActiveRecord::ConnectionAdapters::MySQL::DatabaseStatements.const_get(:READ_QUERY)
%r{\A(?:[(\s]|(?m-ix:(?:--.*\n)|/\*(?:[^*]|\*[^/])*\*/))*(?-mix:(?i-mx:desc)|(?i-mx:describe)|(?i-mx:set)|(?i-mx:show)|(?i-mx:use)|(?i-mx:begin)|(?i-mx:commit)|(?i-mx:explain)|(?i-mx:release)|(?i-mx:rollback)|(?i-mx:savepoint)|(?i-mx:select)|(?i-mx:with))}- IGNORE_TABLES =
%r{#{Bemi::Ingester::IGNORE_TABLES.map { |t| "`#{t}`" }.join('|')}}
Instance Attribute Summary collapse
-
#context ⇒ Object
readonly
Returns the value of attribute context.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(context: nil) ⇒ ContextHandler
constructor
A new instance of ContextHandler.
Constructor Details
#initialize(context: nil) ⇒ ContextHandler
Returns a new instance of ContextHandler.
35 36 37 |
# File 'lib/bemi/context_handler.rb', line 35 def initialize(context: nil) @context = context end |
Instance Attribute Details
#context ⇒ Object (readonly)
Returns the value of attribute context.
33 34 35 |
# File 'lib/bemi/context_handler.rb', line 33 def context @context end |
Class Method Details
.get ⇒ Object
12 13 14 |
# File 'lib/bemi/context_handler.rb', line 12 def get Thread.current[:context_handler] ||= Bemi::ContextHandler.new end |
.set(data) ⇒ Object
7 8 9 10 |
# File 'lib/bemi/context_handler.rb', line 7 def set(data) context = Bemi::Context.new(data: data) Thread.current[:context_handler] = Bemi::ContextHandler.new(context: context) end |
.transform_sql(sql) ⇒ Object
16 17 18 19 20 21 22 23 24 |
# File 'lib/bemi/context_handler.rb', line 16 def transform_sql(sql) return sql if !write_query?(sql) context_handler = get context_handler.context.save! if context_handler.context && context_handler.context.id.nil? context_id = context_handler.context&.id context_id ? "/* #{context_id} */ #{sql}" : sql end |