Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksei Lipniagov <alipniagov@gitlab.com>2019-09-11 21:32:24 +0300
committerKamil TrzciƄski <ayufan@ayufan.eu>2019-09-11 21:32:24 +0300
commit50cb6eca570a352a3b9799a66f77edad261763be (patch)
treed5157634a5100ca6900a3dc8d7b0b806caf39ca5 /lib/gitlab/time_tracking_formatter.rb
parent6db9cbfe77a556ea2d321f0ea0a0c6b6e14a817c (diff)
Use 'gitlab_chronic_duration' gem
Replace 'chronic_duration' to 'gitlab_chronic_duration', to make relevant method calls thread-safe.
Diffstat (limited to 'lib/gitlab/time_tracking_formatter.rb')
-rw-r--r--lib/gitlab/time_tracking_formatter.rb47
1 files changed, 24 insertions, 23 deletions
diff --git a/lib/gitlab/time_tracking_formatter.rb b/lib/gitlab/time_tracking_formatter.rb
index 302da91328a..31883527135 100644
--- a/lib/gitlab/time_tracking_formatter.rb
+++ b/lib/gitlab/time_tracking_formatter.rb
@@ -4,37 +4,38 @@ module Gitlab
module TimeTrackingFormatter
extend self
- def parse(string)
- with_custom_config do
- string = string.sub(/\A-/, '')
+ # We may want to configure it through project settings in a future version.
+ CUSTOM_DAY_AND_WEEK_LENGTH = { hours_per_day: 8, days_per_month: 20 }.freeze
- seconds = ChronicDuration.parse(string, default_unit: 'hours') rescue nil
- seconds *= -1 if seconds && Regexp.last_match
- seconds
- end
+ def parse(string)
+ string = string.sub(/\A-/, '')
+
+ seconds =
+ begin
+ ChronicDuration.parse(
+ string,
+ CUSTOM_DAY_AND_WEEK_LENGTH.merge(default_unit: 'hours'))
+ rescue
+ nil
+ end
+
+ seconds *= -1 if seconds && Regexp.last_match
+ seconds
end
def output(seconds)
- with_custom_config do
- ChronicDuration.output(seconds, format: :short, limit_to_hours: limit_to_hours_setting, weeks: true) rescue nil
- end
+ ChronicDuration.output(
+ seconds,
+ CUSTOM_DAY_AND_WEEK_LENGTH.merge(
+ format: :short,
+ limit_to_hours: limit_to_hours_setting,
+ weeks: true))
+ rescue
+ nil
end
private
- def with_custom_config
- # We may want to configure it through project settings in a future version.
- ChronicDuration.hours_per_day = 8
- ChronicDuration.days_per_week = 5
-
- result = yield
-
- ChronicDuration.hours_per_day = 24
- ChronicDuration.days_per_week = 7
-
- result
- end
-
def limit_to_hours_setting
Gitlab::CurrentSettings.time_tracking_limit_to_hours
end