Class: RailsAnalyzer::RecordInserter
- Inherits:
-
Base::RecordInserter
- Object
- Base::RecordInserter
- RailsAnalyzer::RecordInserter
- Defined in:
- lib/rails_analyzer/record_inserter.rb
Overview
Set of functions that can be used to easily log requests into a SQLite3 Database.
Instance Attribute Summary
Attributes inherited from Base::RecordInserter
#current_request, #database, #warning_count
Instance Method Summary collapse
-
#insert(request, close_statements = false) ⇒ Object
Insert a request into the database.
Methods inherited from Base::RecordInserter
#calculate_db_durations!, #count, #initialize, #insert_batch, insert_batch_into, #insert_warning
Constructor Details
This class inherits a constructor from Base::RecordInserter
Instance Method Details
#insert(request, close_statements = false) ⇒ Object
Insert a request into the database. request The request to insert. close_statements Close prepared statements (default false)
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/rails_analyzer/record_inserter.rb', line 12 def insert(request, close_statements = false) unless @insert_statements prepare_statements! close_statements = true end if request[:type] && @insert_statements.has_key?(request[:type]) if request[:type] == :started insert_warning(request[:line], "Unclosed request encountered on line #{request[:line]} (request started on line #{@current_request})") unless @current_request.nil? @current_request = request[:line] elsif [:failed, :completed].include?(request[:type]) @current_request = nil end begin @insert_statements[request.delete(:type)].execute(request) rescue SQLite3::Exception => e insert_warning(request[:line], "Could not save log line to database: " + e..to_s) end else insert_warning(request[:line], "Ignored unknown statement type") end close_prepared_statements! if close_statements end |