Class WillPaginate::NamedScope::Scope
In: lib/will_paginate/named_scope.rb
Parent: Object
ArgumentError InvalidPage Array Collection LinkRenderer Scope lib/will_paginate/collection.rb lib/will_paginate/view_helpers.rb Deprecation ViewHelpers VERSION ClassMethods Finder lib/will_paginate/named_scope.rb ClassMethods NamedScope WillPaginate dot/m_8_0.png

Methods

Attributes

proxy_options  [R] 
proxy_scope  [R] 

Public Class methods

[Source]

     # File lib/will_paginate/named_scope.rb, line 115
115:       def initialize(proxy_scope, options, &block)
116:         [options[:extend]].flatten.each { |extension| extend extension } if options[:extend]
117:         extend Module.new(&block) if block_given?
118:         @proxy_scope, @proxy_options = proxy_scope, options.except(:extend)
119:       end

Public Instance methods

[Source]

     # File lib/will_paginate/named_scope.rb, line 141
141:       def empty?
142:         @found ? @found.empty? : count.zero?
143:       end

[Source]

     # 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

[Source]

     # 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

[Source]

     # File lib/will_paginate/named_scope.rb, line 121
121:       def reload
122:         load_found; self
123:       end

[Source]

     # 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

Protected Instance methods

[Source]

     # File lib/will_paginate/named_scope.rb, line 150
150:       def proxy_found
151:         @found || load_found
152:       end

Private Instance methods

[Source]

     # File lib/will_paginate/named_scope.rb, line 165
165:       def load_found
166:         @found = find(:all)
167:       end

[Source]

     # File lib/will_paginate/named_scope.rb, line 155
155:       def method_missing(method, *args, &block)
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, &block)
161:           end
162:         end
163:       end

[Validate]