diff --git a/lib/tzinfo/timezone_transition_definition.rb b/lib/tzinfo/timezone_transition_definition.rb index 26c7da86..263d1951 100644 --- a/lib/tzinfo/timezone_transition_definition.rb +++ b/lib/tzinfo/timezone_transition_definition.rb @@ -97,5 +97,10 @@ def eql?(tti) def hash @offset.hash ^ @previous_offset.hash ^ @numerator_or_time.hash ^ @denominator.hash end + + def freeze + at # to fully initialize object before freeze + super + end end end diff --git a/test/tc_timezone_transition_definition.rb b/test/tc_timezone_transition_definition.rb index a542c129..82585fff 100644 --- a/test/tc_timezone_transition_definition.rb +++ b/test/tc_timezone_transition_definition.rb @@ -281,4 +281,12 @@ def test_hash t6.hash) end end + + def test_freeze_when_not_fully_initialized + transition = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT), + TimezoneOffset.new(3600, 0, :TST), 1148949080) + transition.freeze + + assert_nothing_raised { transition.at } + end end