Created
November 16, 2016 15:37
-
-
Save kannans/53e0c7742ab02d6c2665c04a9d2b380d to your computer and use it in GitHub Desktop.
pager
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "pager/version" | |
module Pager | |
class RandomRecord | |
@@count = 0 | |
def initialize(records=[], random: true, options:{}) | |
@records = random ? records.shuffle : records | |
@@count = 0 | |
end | |
def next_item | |
if @@count != (records.size - 1) | |
records[@@count += 1] | |
end | |
end | |
def prev_item | |
if @@count != 0 | |
records[@@count -= 1] | |
end | |
end | |
def first_item | |
records[0] | |
end | |
def last_item | |
records[records.size - 1] | |
end | |
private | |
attr_accessor :records, :count | |
end | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'spec_helper' | |
describe Pager do | |
it 'has a version number' do | |
expect(Pager::VERSION).not_to be nil | |
end | |
it 'does first useful' do | |
recs = [1,3,5] | |
rpage = Pager::RandomRecord.new(recs, random: false) | |
expect(rpage.first_item).to eq(1) | |
end | |
it 'does last useful' do | |
recs = [1,3,5] | |
rpage = Pager::RandomRecord.new(recs, random: false) | |
expect(rpage.last_item).to eq(5) | |
end | |
it 'does next useful' do | |
recs = [1,3,5] | |
rpage = Pager::RandomRecord.new(recs, random: false) | |
expect(rpage.next_item).to eq(3) | |
end | |
it 'does prev useful' do | |
recs = [1,3,5] | |
rpage = Pager::RandomRecord.new(recs, random: false) | |
expect(rpage.next_item).to eq(3) | |
expect(rpage.next_item).to eq(5) | |
expect(rpage.prev_item).to eq(3) | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment