summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2018-05-02 08:09:21 +0000
committerRémy Coutable <remy@rymai.me>2018-05-02 08:09:21 +0000
commit2fe82443bf91e1f4e872fb304719a3f393052197 (patch)
tree4f944de0c0ae7e5a6b5bc83993d4e557244c8594
parent1350d80ca2f2633c8104460c4b9a60eb189a767b (diff)
parent9e78b86dd48ee893c950643d6ca0188a4978eeaa (diff)
downloadgitlab-ce-2fe82443bf91e1f4e872fb304719a3f393052197.tar.gz
Merge branch 'blackst0ne-rails5-fix-enum-question-mark-methods' into 'master'
[Rails5] Fix enum question mark methods See merge request gitlab-org/gitlab-ce!18662
-rw-r--r--app/models/ci/pipeline.rb11
-rw-r--r--app/models/commit_status.rb7
2 files changed, 18 insertions, 0 deletions
diff --git a/app/models/ci/pipeline.rb b/app/models/ci/pipeline.rb
index 434b9b64c65..e1b9bc76475 100644
--- a/app/models/ci/pipeline.rb
+++ b/app/models/ci/pipeline.rb
@@ -530,6 +530,17 @@ module Ci
@latest_builds_with_artifacts ||= builds.latest.with_artifacts_archive.to_a
end
+ # Rails 5.0 autogenerated question mark enum methods return wrong result if enum value is nil.
+ # They always return `false`.
+ # These methods overwrite autogenerated ones to return correct results.
+ def unknown?
+ Gitlab.rails5? ? source.nil? : super
+ end
+
+ def unknown_source?
+ Gitlab.rails5? ? config_source.nil? : super
+ end
+
private
def ci_yaml_from_repo
diff --git a/app/models/commit_status.rb b/app/models/commit_status.rb
index b6276c2fb50..97d89422594 100644
--- a/app/models/commit_status.rb
+++ b/app/models/commit_status.rb
@@ -189,4 +189,11 @@ class CommitStatus < ActiveRecord::Base
v =~ /\d+/ ? v.to_i : v
end
end
+
+ # Rails 5.0 autogenerated question mark enum methods return wrong result if enum value is nil.
+ # They always return `false`.
+ # This method overwrites the autogenerated one to return correct result.
+ def unknown_failure?
+ Gitlab.rails5? ? failure_reason.nil? : super
+ end
end