summaryrefslogtreecommitdiff
path: root/lib/gitlab/database/type/color.rb
blob: 32ea33a42f34aedc1d2e8f5dd54f6220e7542536 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# frozen_string_literal: true

module Gitlab
  module Database
    module Type
      class Color < ActiveModel::Type::Value
        def serialize(value)
          value.to_s if value
        end

        def serializable?(value)
          value.nil? || value.is_a?(::String) || value.is_a?(::Gitlab::Color)
        end

        def cast_value(value)
          ::Gitlab::Color.new(value.to_s)
        end
      end
    end
  end
end