Class: N1Finder
- Inherits:
-
Object
- Object
- N1Finder
- Defined in:
- lib/n_1_finder.rb,
lib/n_1_finder/version.rb
Overview
Main class
Defined Under Namespace
Modules: Adapters Classes: Invalid, InvalidLogger, InvalidORM, Logger, Middleware, N1Query, Query, Storage
Constant Summary collapse
- ORM_ADAPTERS =
Supported ORM adapters
{ active_record: N1Finder::Adapters::ActiveRecordAdapter, sequel: N1Finder::Adapters::SequelAdapter }.freeze
- VERSION =
Gem version
'0.0.4'.freeze
Class Method Summary collapse
-
.find { ... } ⇒ void
Searches for N+1 queries and logs results.
-
.logger ⇒ Logger
Logger to log N+1 queries.
-
.logger=(custom_logger) ⇒ Logger
Configure logger.
-
.orm ⇒ Symbol?
ORM used in project Default to :active_record if ActiveRecord defined Default to :sequel if Sequel defined Default to nil if ActiveRecord and Sequel are not defined.
-
.orm=(custom_orm) ⇒ Symbol
Configure ORM.
Class Method Details
.find { ... } ⇒ void
This method returns an undefined value.
Searches for N+1 queries and logs results
39 40 41 42 43 44 45 46 |
# File 'lib/n_1_finder.rb', line 39 def find storage = N1Finder::Storage.new result = catch_queries(storage) { yield } n1_queries = N1Finder::N1Query.generate_by(storage.queries) N1Finder::Logger.new.log(n1_queries) result end |
.logger ⇒ Logger
Logger to log N+1 queries
Defaults to ‘Logger.new(STDOUT)`
53 54 55 |
# File 'lib/n_1_finder.rb', line 53 def logger @logger ||= ::Logger.new(STDOUT) end |
.logger=(custom_logger) ⇒ Logger
Configure logger
65 66 67 68 69 |
# File 'lib/n_1_finder.rb', line 65 def logger=(custom_logger) raise N1Finder::InvalidLogger unless custom_logger.is_a?(::Logger) @logger = custom_logger end |
.orm ⇒ Symbol?
ORM used in project
Default to :active_record if ActiveRecord defined
Default to :sequel if Sequel defined
Default to nil if ActiveRecord and Sequel are not defined
77 78 79 80 81 82 83 84 |
# File 'lib/n_1_finder.rb', line 77 def orm @orm ||= if defined?(ActiveRecord) :active_record elsif defined?(Sequel) :sequel end end |
.orm=(custom_orm) ⇒ Symbol
Configure ORM
94 95 96 97 98 |
# File 'lib/n_1_finder.rb', line 94 def orm=(custom_orm) raise N1Finder::InvalidORM unless ORM_ADAPTERS.keys.include?(custom_orm) @orm = custom_orm end |