Class | WillPaginate::NamedScope::Scope |
In: |
lib/will_paginate/named_scope.rb
|
Parent: | Object |
proxy_options | [R] | |
proxy_scope | [R] |
# File lib/will_paginate/named_scope.rb, line 115 115: def initialize(proxy_scope, options) 116: [options[:extend]].flatten.each { |extension| extend extension } if options[:extend] 117: extend Module.new { |*args| yield(*args) } if block_given? 118: @proxy_scope, @proxy_options = proxy_scope, options.except(:extend) 119: end
# File lib/will_paginate/named_scope.rb, line 141 141: def empty? 142: @found ? @found.empty? : count.zero? 143: end
# File lib/will_paginate/named_scope.rb, line 125 125: def first(*args) 126: if args.first.kind_of?(Integer) || (@found && !args.first.kind_of?(Hash)) 127: proxy_found.first(*args) 128: else 129: find(:first, *args) 130: end 131: end
# File lib/will_paginate/named_scope.rb, line 133 133: def last(*args) 134: if args.first.kind_of?(Integer) || (@found && !args.first.kind_of?(Hash)) 135: proxy_found.last(*args) 136: else 137: find(:last, *args) 138: end 139: end
# File lib/will_paginate/named_scope.rb, line 145 145: def respond_to?(method, include_private = false) 146: super || @proxy_scope.respond_to?(method, include_private) 147: end
# File lib/will_paginate/named_scope.rb, line 150 150: def proxy_found 151: @found || load_found 152: end
# File lib/will_paginate/named_scope.rb, line 165 165: def load_found 166: @found = find(:all) 167: end
# File lib/will_paginate/named_scope.rb, line 155 155: def method_missing(method, *args) 156: if scopes.include?(method) 157: scopes[method].call(self, *args) 158: else 159: with_scope :find => proxy_options do 160: proxy_scope.send(method, *args) { |*a| yield(*a) if block_given? } 161: end 162: end 163: end