Sha256: 537ad0ae341780d3f34256ad89ed9fcd9a641d17fb24354726793c2271acd299

Contents?: true

Size: 527 Bytes

Versions: 3

Compression:

Stored size: 527 Bytes

Contents

class ModelSet
  class SetQuery < Query
    delegate :add!, :unshift!, :subtract!, :intersect!, :reorder!, :reverse!, :to => :set

    def anchor!(query)
      @set = query.ids.to_ordered_set
    end

    def set
      @set ||= [].to_ordered_set
    end

    def ids
      if limit
        set.limit(limit, offset)
      else
        set.clone
      end
    end
    
    def size
      if limit
        [count - offset, limit].min
      else
        count
      end
    end

    def count
      set.size
    end
    
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ninjudd-model_set-0.10.1 lib/model_set/set_query.rb
ninjudd-model_set-0.10.2 lib/model_set/set_query.rb
ninjudd-model_set-0.10.3 lib/model_set/set_query.rb