Sha256: fa16ab4396d745518023d11234440949148a40ee653b5b36b2a60473361b3b84
Contents?: true
Size: 1.35 KB
Versions: 20
Compression:
Stored size: 1.35 KB
Contents
# frozen_string_literal: true require_relative 'base' require_relative 'shared/issuable' module Gitlab module Triage module Resource class Issue < Base include Shared::Issuable DATE_FIELDS = %i[ due_date ].freeze DATE_FIELDS.each do |field| define_field(field) do value = resource[field] Date.parse(value) if value end end def merge_requests_count @merge_requests_count ||= resource.dig(:merge_requests_count) end def related_merge_requests @related_merge_requests ||= network.query_api_cached( resource_url(sub_resource_type: 'related_merge_requests')) .map { |merge_request| MergeRequest.new(merge_request, parent: self) } end def closed_by @closed_by ||= network.query_api_cached( resource_url(sub_resource_type: 'closed_by')) .map { |merge_request| MergeRequest.new(merge_request, parent: self) } end def linked_issues @linked_issues ||= network.query_api_cached( resource_url(sub_resource_type: 'links')) .map { |issue| LinkedIssue.new(issue, parent: self) } end def expired?(today = Date.today) due_date && due_date < today end end end end end
Version data entries
20 entries across 20 versions & 2 rubygems