diff options
author | Kamil Trzciński <ayufan@ayufan.eu> | 2017-06-29 11:14:08 +0300 |
---|---|---|
committer | Kamil Trzciński <ayufan@ayufan.eu> | 2017-06-29 11:14:08 +0300 |
commit | 36e17d0fa878d7284672292378731d1b80a57bc8 (patch) | |
tree | 4e3aa2dde89ff33a7c8c8dd504c1ec5ebf607c0d /app | |
parent | eb175d5fe08aeefe615f39e7359d62788af8b43a (diff) | |
parent | de893b19c30acf83ce43dd42376783505d704763 (diff) |
Merge branch 'feature/sm/34314-add-hasvariable-concern' into 'master'
Implement `HasVariable` concern
Closes #34314
See merge request !12448
Diffstat (limited to 'app')
-rw-r--r-- | app/models/ci/variable.rb | 19 | ||||
-rw-r--r-- | app/models/concerns/has_variable.rb | 23 |
2 files changed, 25 insertions, 17 deletions
diff --git a/app/models/ci/variable.rb b/app/models/ci/variable.rb index f235260208f..96d6e120998 100644 --- a/app/models/ci/variable.rb +++ b/app/models/ci/variable.rb @@ -1,27 +1,12 @@ module Ci class Variable < ActiveRecord::Base extend Ci::Model + include HasVariable belongs_to :project - validates :key, - presence: true, - uniqueness: { scope: :project_id }, - length: { maximum: 255 }, - format: { with: /\A[a-zA-Z0-9_]+\z/, - message: "can contain only letters, digits and '_'." } + validates :key, uniqueness: { scope: :project_id } - scope :order_key_asc, -> { reorder(key: :asc) } scope :unprotected, -> { where(protected: false) } - - attr_encrypted :value, - mode: :per_attribute_iv_and_salt, - insecure_mode: true, - key: Gitlab::Application.secrets.db_key_base, - algorithm: 'aes-256-cbc' - - def to_runner_variable - { key: key, value: value, public: false } - end end end diff --git a/app/models/concerns/has_variable.rb b/app/models/concerns/has_variable.rb new file mode 100644 index 00000000000..9585b5583dc --- /dev/null +++ b/app/models/concerns/has_variable.rb @@ -0,0 +1,23 @@ +module HasVariable + extend ActiveSupport::Concern + + included do + validates :key, + presence: true, + length: { maximum: 255 }, + format: { with: /\A[a-zA-Z0-9_]+\z/, + message: "can contain only letters, digits and '_'." } + + scope :order_key_asc, -> { reorder(key: :asc) } + + attr_encrypted :value, + mode: :per_attribute_iv_and_salt, + insecure_mode: true, + key: Gitlab::Application.secrets.db_key_base, + algorithm: 'aes-256-cbc' + + def to_runner_variable + { key: key, value: value, public: false } + end + end +end |