From 47a55ef9ca277fcbce1ad1e908eb2110c2da57b4 Mon Sep 17 00:00:00 2001 From: Carlos Goce Date: Sat, 24 Jan 2015 20:14:56 +0100 Subject: Add formatted days spec --- lib/carlosgoce/calendar.rb | 8 ++++++++ spec/calendar_spec.rb | 8 +++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/carlosgoce/calendar.rb b/lib/carlosgoce/calendar.rb index 1166f55..6a5d8f6 100644 --- a/lib/carlosgoce/calendar.rb +++ b/lib/carlosgoce/calendar.rb @@ -27,6 +27,14 @@ module CarlosGoce } } end + + h[:formatted_days] = Array.new.tap {|a| + # todo Why I need to use 1? + days_before_week_start = Date.new(@year, 1, h[1][:days].first).wday + empty_days = [''] * (days_before_week_start - 1) + + a << (empty_days + h[1][:days]) + } } end diff --git a/spec/calendar_spec.rb b/spec/calendar_spec.rb index 6739a9f..8d8e346 100644 --- a/spec/calendar_spec.rb +++ b/spec/calendar_spec.rb @@ -41,12 +41,18 @@ describe 'Calendar' do I18n.locale = 'es' expect(@calendar.to_h[1][:days_names].first).to eq 'jueves' end + + # todo Improve spec description + it 'return the days available formated as array leaving blank days for the starting week\'s day' do + days_for_january_2015 = ['', '', ''] + (1..31).to_a + expect(@calendar.to_h[:formatted_days].first).to eq days_for_january_2015 + end end describe 'Can generate a pdfs' do it 'should receive a layout and pass it the data to create the specified file' do layout = instance_double('CarlosGoce::Layout::Simple') - file = 'destionation.pdf' + file = 'destination.pdf' year = 2015 expect(layout).to receive(:create).with(file, @calendar.to_h, year) -- cgit v1.2.3