diff options
author | Rémy Coutable <remy@rymai.me> | 2018-05-02 08:09:21 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2018-05-02 08:09:21 +0000 |
commit | 2fe82443bf91e1f4e872fb304719a3f393052197 (patch) | |
tree | 4f944de0c0ae7e5a6b5bc83993d4e557244c8594 | |
parent | 1350d80ca2f2633c8104460c4b9a60eb189a767b (diff) | |
parent | 9e78b86dd48ee893c950643d6ca0188a4978eeaa (diff) | |
download | gitlab-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.rb | 11 | ||||
-rw-r--r-- | app/models/commit_status.rb | 7 |
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 |