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, Errors Classes: Logger, Middleware, N1Query, Query, Storage
Constant Summary collapse
- ORM_ADAPTERS =
Supported ORM adapters
[:active_record, :sequel].freeze
- VERSION =
Gem version
'0.0.6'.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
14 15 16 17 18 19 20 21 |
# File 'lib/n_1_finder.rb', line 14 def find storage = Storage.new result = catch_queries(storage) { yield } n1_queries = N1Query.generate_by(storage.queries) Logger.new.log(n1_queries) result end |
.logger ⇒ Logger
Logger to log N+1 queries
Defaults to ‘Logger.new(STDOUT)`
28 29 30 |
# File 'lib/n_1_finder.rb', line 28 def logger @logger ||= ::Logger.new(STDOUT) end |
.logger=(custom_logger) ⇒ Logger
Configure logger
40 41 42 43 44 |
# File 'lib/n_1_finder.rb', line 40 def logger=(custom_logger) raise Errors::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
52 53 54 55 56 57 58 |
# File 'lib/n_1_finder.rb', line 52 def orm @orm ||= if defined?(ActiveRecord) :active_record elsif defined?(Sequel) :sequel end end |
.orm=(custom_orm) ⇒ Symbol
Configure ORM
68 69 70 71 72 |
# File 'lib/n_1_finder.rb', line 68 def orm=(custom_orm) raise Errors::InvalidORM unless ORM_ADAPTERS.include?(custom_orm) @orm = custom_orm end |