diff --git a/lib/gold_miner/helpers.rb b/lib/gold_miner/helpers.rb index 80f13f7..219299a 100644 --- a/lib/gold_miner/helpers.rb +++ b/lib/gold_miner/helpers.rb @@ -6,12 +6,7 @@ def self.pretty_date(date) end def self.last_friday - date = Date.today - one_day_ago = (date - 1) - one_week_ago = date - 7 - friday = one_day_ago.downto(one_week_ago).find { |date| date.friday? } - - friday.to_s + Enumerator.produce(Date.today - 1, &:prev_day).find { |date| date.friday? }.to_s end end diff --git a/spec/gold_miner/helpers_spec.rb b/spec/gold_miner/helpers_spec.rb index ae04987..55c5daa 100644 --- a/spec/gold_miner/helpers_spec.rb +++ b/spec/gold_miner/helpers_spec.rb @@ -3,6 +3,34 @@ require "spec_helper" RSpec.describe GoldMiner::Helpers do + describe GoldMiner::Helpers::Time do + describe ".last_friday" do + it "returns the last Friday when today is Saturday" do + travel_to Date.new(2024, 7, 13) do + result = described_class.last_friday + + expect(result).to eq("2024-07-12") + end + end + + it "returns the last Friday when today is Friday" do + travel_to Date.new(2024, 7, 12) do + result = described_class.last_friday + + expect(result).to eq("2024-07-05") + end + end + + it "returns the last Friday when today is Thursday" do + travel_to Date.new(2024, 7, 11) do + result = described_class.last_friday + + expect(result).to eq("2024-07-05") + end + end + end + end + describe GoldMiner::Helpers::Sentence do describe ".from" do it "returns a sentence from a list of words" do