Module: RedisMemo::MemoizeQuery::CachedSelect::ConnectionAdapter
- Defined in:
- lib/redis_memo/memoize_query/cached_select/connection_adapter.rb
Instance Method Summary collapse
Instance Method Details
#cacheable_query(*args) ⇒ Object
5 6 7 8 9 10 11 12 |
# File 'lib/redis_memo/memoize_query/cached_select/connection_adapter.rb', line 5 def cacheable_query(*args) query, binds = super(*args) # Persist the arel object to StatementCache#execute query.instance_variable_set(:@__redis_memo_memoize_query_memoize_query_arel, args.last) [query, binds] end |
#exec_query(*args) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/redis_memo/memoize_query/cached_select/connection_adapter.rb', line 14 def exec_query(*args) # An Arel AST in Thread local is set prior to supported query methods if !RedisMemo.without_memo? && RedisMemo::MemoizeQuery::CachedSelect.extract_bind_params(args[0]) # [Reids $model Load] $sql $binds RedisMemo::DefaultOptions.logger&.info( "[Redis] \u001b[36;1m#{args[1]} \u001b[34;1m#{args[0]}\u001b[0m #{ args[2].map { |bind| [bind.name, bind.value_for_database]} }" ) super(*args) else RedisMemo.without_memo { super(*args) } end end |
#select_all(*args) ⇒ Object
31 32 33 34 35 36 37 38 39 |
# File 'lib/redis_memo/memoize_query/cached_select/connection_adapter.rb', line 31 def select_all(*args) if args[0].is_a?(Arel::SelectManager) RedisMemo::MemoizeQuery::CachedSelect.current_query = args[0] end super(*args) ensure RedisMemo::MemoizeQuery::CachedSelect.reset_current_query end |