class ArelHelpers::QueryBuilder

Constants

TERMINAL_METHODS

Attributes

query[R]

Public Class Methods

new(query) click to toggle source
# File lib/arel-helpers/query_builder.rb, line 34
def initialize(query)
  @query = query
end
not_nil(name) click to toggle source
Calls superclass method
# File lib/arel-helpers/query_builder.rb, line 19
def self.not_nil(name)
  mod = Module.new do
    define_method(name) do |*args, **kwargs|
      if (value = super(*args, **kwargs))
        value
      else
        reflect(query)
      end
    end
  end

  prepend mod
  name
end

Protected Instance Methods

reflect(query) click to toggle source
# File lib/arel-helpers/query_builder.rb, line 40
def reflect(query)
  dup.tap { |obj| obj.instance_variable_set('@query'.freeze, query) }
end