diff --git a/lib/time_range/time.rb b/lib/time_range/time.rb index ec73246..5c3b546 100644 --- a/lib/time_range/time.rb +++ b/lib/time_range/time.rb @@ -15,6 +15,8 @@ def initialize(time, by = nil) end def succ + raise ArgumentError, 'by() not set for this TimeRange' if !@by || @by.empty? + next_time = Advancer.advance_time(@time, @by) return self.class.new(next_time, @by) end diff --git a/spec/time_range_spec.rb b/spec/time_range_spec.rb index bf15579..d335844 100644 --- a/spec/time_range_spec.rb +++ b/spec/time_range_spec.rb @@ -92,6 +92,13 @@ end shared_examples 'it has a begin' do + it 'raises gracefully if #by is not called' do + range = described_class.new(first, last) + expect { + range.first(1) + }.to raise_error ArgumentError, /by\(\) not set for this TimeRange/ + end + describe '#begin' do it 'has a begin' do expect(range.begin).to eq first