Sha256: 300861f4f963aa6fea165c4c551bb0d65994b377729d05f1352853a5fb4bf696

Contents?: true

Size: 897 Bytes

Versions: 8

Compression:

Stored size: 897 Bytes

Contents

# frozen_string_literal: true

require_relative 'base'
require_relative 'label'
require 'date'
require 'time'

module Gitlab
  module Triage
    module Resource
      class LabelEvent < Base
        FIELDS = %i[
          id
          resource_type
          resource_id
          action
        ].freeze

        TIME_FIELDS = %i[
          created_at
        ].freeze

        FIELDS.each do |field|
          define_field(field) do
            resource[field]
          end
        end

        TIME_FIELDS.each do |field|
          define_field(field) do
            value = resource[field]

            Time.parse(value) if value
          end
        end

        def label
          return unless resource[:label]

          @label ||= Label.new(
            resource[:label].reverse_merge(added_at: resource[:created_at]),
            parent: self)
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
gitlab-triage-1.4.2 lib/gitlab/triage/resource/label_event.rb
gitlab-triage-1.4.1 lib/gitlab/triage/resource/label_event.rb
gitlab-triage-1.4.0 lib/gitlab/triage/resource/label_event.rb
gitlab-triage-1.3.0 lib/gitlab/triage/resource/label_event.rb
gitlab-triage-1.2.0 lib/gitlab/triage/resource/label_event.rb
gitlab-triage-1.1.1 lib/gitlab/triage/resource/label_event.rb
gitlab-triage-1.1.0 lib/gitlab/triage/resource/label_event.rb
gitlab-triage-1.0.1 lib/gitlab/triage/resource/label_event.rb