From 4bc8ba745559339cf17d8c1b0ac48911de2d211d Mon Sep 17 00:00:00 2001 From: Melody Date: Wed, 8 Jul 2015 22:11:55 -0400 Subject: [PATCH 1/2] fixes #56 by accounting for case that would produce zero rows --- lib/squib/input_helpers.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/squib/input_helpers.rb b/lib/squib/input_helpers.rb index fa9dc88..7b0d461 100644 --- a/lib/squib/input_helpers.rb +++ b/lib/squib/input_helpers.rb @@ -221,7 +221,11 @@ module Squib def rowify(opts) unless opts[:rows].respond_to? :to_i raise "Columns must be an integer" unless opts[:columns].respond_to? :to_i - opts[:rows] = (@cards.size / opts[:columns].to_i).ceil + if @cards.size < opts[:columns].to_i + opts[:rows] = 1 + else + opts[:rows] = (@cards.size / opts[:columns].to_i).ceil + end end opts end From 8674d8d94661a2d15b6b4a7213ca201c95f2abdb Mon Sep 17 00:00:00 2001 From: Melody Date: Wed, 8 Jul 2015 23:47:49 -0400 Subject: [PATCH 2/2] updates rowify specs to merge default options and cover new test case --- spec/input_helpers_spec.rb | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/spec/input_helpers_spec.rb b/spec/input_helpers_spec.rb index be70d37..b682404 100644 --- a/spec/input_helpers_spec.rb +++ b/spec/input_helpers_spec.rb @@ -182,19 +182,30 @@ describe Squib::InputHelpers do end context '#rowify' do + before(:each) do + @default_opts = { rows: :infinite, columns: 5 } + end + it 'does nothing on an integer' do - opts = @deck.send(:rowify, {columns: 2, rows: 2}) + opts = @deck.send(:rowify, @default_opts.merge({columns: 2, rows: 2})) expect(opts).to eq({ columns: 2, rows: 2 }) end it 'computes properly on non-integer' do - opts = @deck.send(:rowify, {columns: 1, rows: :infinite}) + opts = @deck.send(:rowify, @default_opts.merge({columns: 1, rows: :infinite})) expect(opts).to eq({ columns: 1, rows: 2 }) end + + it 'computes properly on unspecified rows' do + opts = @deck.send(:rowify, @default_opts.merge({columns: 3})) + expect(opts).to eq({ columns: 3, + rows: 1 + }) + end end context '#faceify' do