class CrossOrigin::Collection::View
Attributes
model[R]
Public Class Methods
new(collection, selector, options, model)
click to toggle source
Calls superclass method
# File lib/cross_origin/collection.rb, line 20 def initialize(collection, selector, options, model) super(collection, selector, options) @model = model end
Public Instance Methods
count(options = {})
click to toggle source
Calls superclass method
# File lib/cross_origin/collection.rb, line 32 def count(options = {}) super + (options[:super] ? 0 : cross_views.inject(0) { |count, view| count + view.count }) end
cross_views()
click to toggle source
# File lib/cross_origin/collection.rb, line 36 def cross_views views = [] skip, limit = self.skip, self.limit opts = options previous_view = self count = 0 CrossOrigin.configurations.each do |config| if skip || limit opts = opts.dup current_count = previous_view.count(super: true) if skip opts[:skip] = skip = if current_count < skip skip - current_count else count += current_count - skip 0 end end if limit opts[:limit] = limit = if count > limit 0 else limit - count end end end views << (previous_view = config.collection_for(model).find(selector, opts).modifiers(modifiers)) end views end
each(&block)
click to toggle source
Calls superclass method
# File lib/cross_origin/collection.rb, line 25 def each(&block) if block super(&block) cross_views.each { |view| view.each(&block) } end end
new(options)
click to toggle source
# File lib/cross_origin/collection.rb, line 69 def new(options) View.new(collection, selector, options, model) end