54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/riveter/enquiry.rb', line 54
def query_with(query_klass=nil, &block)
raise "Query already defined." if self.respond_to?(:query_class)
unless query_klass
raise ArgumentError, "Missing block" unless block_given?
query_klass = Class.new(Query::Base)
query_klass.class_eval do
define_method :build_relation, &block
protected :build_relation
end
end
define_singleton_method :query_class do
query_klass
end
define_method :query_class do
query_klass
end
end
|