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:
authorJan Provaznik <jprovaznik@gitlab.com>2019-09-06 10:47:41 +0300
committerJan Provaznik <jprovaznik@gitlab.com>2019-09-06 10:47:41 +0300
commit913c87c6126c0f1c80f57cf82d14b1e8fbc2397d (patch)
treeaec6e403120edfdbc6fc1a32d60140d444e666d5 /lib/gitlab
parent6fd0de9ddea01661747fca174522ddddbab0f414 (diff)
parent7a8d216480b8b33c38c56c28734deb96f74f0988 (diff)
Merge branch '59729-estimate-quick-action-does-not-produce-correct-time-for-1mo' into 'master'
Resolve "estimate quick action does not produce correct time for 1mo" See merge request gitlab-org/gitlab-ce!32165
Diffstat (limited to 'lib/gitlab')
-rw-r--r--lib/gitlab/patch/chronic_duration.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/gitlab/patch/chronic_duration.rb b/lib/gitlab/patch/chronic_duration.rb
new file mode 100644
index 00000000000..ab3cba3657f
--- /dev/null
+++ b/lib/gitlab/patch/chronic_duration.rb
@@ -0,0 +1,35 @@
+# frozen_string_literal: true
+
+# Fixes a bug where parsing months doesn't take into account
+# the ChronicDuration.days_per_week setting
+#
+# We can remove this when we do a refactor and push upstream in
+# https://gitlab.com/gitlab-org/gitlab-ce/issues/66637
+
+module Gitlab
+ module Patch
+ module ChronicDuration
+ extend ActiveSupport::Concern
+
+ class_methods do
+ def duration_units_seconds_multiplier(unit)
+ return 0 unless duration_units_list.include?(unit)
+
+ case unit
+ when 'months'
+ 3600 * ::ChronicDuration.hours_per_day * ::ChronicDuration.days_per_month
+ else
+ super
+ end
+ end
+
+ # ChronicDuration#output uses 1mo = 4w as the conversion so we do the same here.
+ # We do need to add a special case for the default days_per_week value because
+ # we want to retain existing behavior for the default case
+ def days_per_month
+ ::ChronicDuration.days_per_week == 7 ? 30 : ::ChronicDuration.days_per_week * 4
+ end
+ end
+ end
+ end
+end