diff --git a/app/components/admin/budgets/duration_component.rb b/app/components/admin/budgets/duration_component.rb index 177845928..368ed92d8 100644 --- a/app/components/admin/budgets/duration_component.rb +++ b/app/components/admin/budgets/duration_component.rb @@ -6,7 +6,7 @@ class Admin::Budgets::DurationComponent < ApplicationComponent end def dates - safe_join([formatted_start_date, "-", formatted_end_date], " ") + Admin::DateRangeComponent.new(start_time, end_time).call end def duration @@ -15,15 +15,11 @@ class Admin::Budgets::DurationComponent < ApplicationComponent private - def formatted_start_date - formatted_date(durable.starts_at) if durable.starts_at.present? + def start_time + durable.starts_at end - def formatted_end_date - formatted_date(durable.ends_at - 1.second) if durable.ends_at.present? - end - - def formatted_date(time) - time_tag(time, format: :short_datetime) + def end_time + durable.ends_at - 1.second if durable.ends_at.present? end end diff --git a/app/components/admin/date_range_component.rb b/app/components/admin/date_range_component.rb new file mode 100644 index 000000000..1ce7ec5c4 --- /dev/null +++ b/app/components/admin/date_range_component.rb @@ -0,0 +1,26 @@ +class Admin::DateRangeComponent < ApplicationComponent + attr_reader :start_time, :end_time + + def initialize(start_time, end_time) + @start_time = start_time + @end_time = end_time + end + + def call + safe_join([formatted_start_time, "-", formatted_end_time], " ") + end + + private + + def formatted_start_time + formatted_date(start_time) if start_time.present? + end + + def formatted_end_time + formatted_date(end_time) if end_time.present? + end + + def formatted_date(time) + time_tag(time, format: :short_datetime) + end +end