class N1Finder::Adapters::BaseAdapter
Adds common functionality to other adapters
Constants
- MAIN_METHOD_ALIAS
An alias that we create for MAIN_METHOD function
Attributes
storage[R]
@!attribute [r] storage
Storage that stores queries
Public Class Methods
new(storage)
click to toggle source
# File lib/n_1_finder/adapters/base_adapter.rb, line 12 def initialize(storage) @storage = storage end
Public Instance Methods
exec() { || ... }
click to toggle source
Replaces original query execution function (defined in MAIN_METHOD) with our function that collects all queries and calls original function. After passed block yileds, replaces our function with origianal and removes our function.
@yield passed block
@return passed block execution result
# File lib/n_1_finder/adapters/base_adapter.rb, line 24 def exec set_trap yield ensure remove_trap end
Private Instance Methods
remove_trap()
click to toggle source
# File lib/n_1_finder/adapters/base_adapter.rb, line 33 def remove_trap main_query_method = self.class::MAIN_METHOD main_method_alias = MAIN_METHOD_ALIAS database_class.class_eval do remove_method(main_query_method) alias_method main_query_method, main_method_alias remove_method(main_method_alias) end end