Class: Jira::Auto::Tool::Ticket
Constant Summary
collapse
- IMPLEMENTATION_TEAM_VALUE_ATTRIBUTES =
%w[value name].freeze
Instance Attribute Summary collapse
Instance Method Summary
collapse
#corresponding_environment_variable_defined?, #define_environment_variable_name_constant, #define_holds_a_secret_predicate, #define_overridable_environment_based_value, #define_predicate, #define_reader, #define_reader_accepting_default_value, #define_writer, #fetch_corresponding_environment_variable, #instance_variable_name
Constructor Details
#initialize(tool, jira_ticket, implementation_team = nil, expected_start_date = nil) ⇒ Ticket
Returns a new instance of Ticket.
14
15
16
17
18
19
|
# File 'lib/jira/auto/tool/ticket.rb', line 14
def initialize(tool, jira_ticket, implementation_team = nil, expected_start_date = nil)
@tool = tool
@jira_ticket = jira_ticket
@implementation_team = implementation_team
@expected_start_date = expected_start_date
end
|
Instance Attribute Details
#jira_ticket ⇒ Object
Returns the value of attribute jira_ticket.
12
13
14
|
# File 'lib/jira/auto/tool/ticket.rb', line 12
def jira_ticket
@jira_ticket
end
|
Returns the value of attribute tool.
12
13
14
|
# File 'lib/jira/auto/tool/ticket.rb', line 12
def tool
@tool
end
|
Instance Method Details
#expected_start_date ⇒ Object
57
58
59
|
# File 'lib/jira/auto/tool/ticket.rb', line 57
def expected_start_date
@expected_start_date || jira_field_value(expected_start_date_field.id)
end
|
#expected_start_date_field ⇒ Object
88
89
90
|
# File 'lib/jira/auto/tool/ticket.rb', line 88
def expected_start_date_field
tool.expected_start_date_field
end
|
#implementation_team ⇒ Object
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/jira/auto/tool/ticket.rb', line 63
def implementation_team
@implementation_team ||=
begin
attributes = implementation_team_attributes
if attributes.nil?
nil
else
IMPLEMENTATION_TEAM_VALUE_ATTRIBUTES.any? { |attr| attributes.key?(attr) } or
raise "Implementation team #{IMPLEMENTATION_TEAM_VALUE_ATTRIBUTES.join(" and ")} " \
"attributes not found in #{attributes}!"
attributes.values_at(*IMPLEMENTATION_TEAM_VALUE_ATTRIBUTES).compact.first
end
end
end
|
#implementation_team_attributes ⇒ Object
80
81
82
|
# File 'lib/jira/auto/tool/ticket.rb', line 80
def implementation_team_attributes
jira_field_value(implementation_team_field.id)
end
|
#implementation_team_field ⇒ Object
84
85
86
|
# File 'lib/jira/auto/tool/ticket.rb', line 84
def implementation_team_field
tool.implementation_team_field
end
|
#jira_client ⇒ Object
49
50
51
|
# File 'lib/jira/auto/tool/ticket.rb', line 49
def jira_client
tool.jira_client
end
|
#jira_field_value(field_id = caller_locations(1, 1).first.base_label) ⇒ Object
96
97
98
99
100
101
102
103
104
105
106
|
# File 'lib/jira/auto/tool/ticket.rb', line 96
def jira_field_value(field_id = caller_locations(1, 1).first.base_label)
log.debug { "jira_field_value(#{field_id})" }
field = jira_ticket.fields.fetch(field_id) do |id|
raise "#{id}: value not found in #{jira_ticket.fields}"
end
log.debug { "jira_field_value(#{field_id}), field: #{field}" }
field
end
|
#jira_sprint_field ⇒ Object
53
54
55
|
# File 'lib/jira/auto/tool/ticket.rb', line 53
def jira_sprint_field
tool.jira_sprint_field
end
|
21
22
23
|
# File 'lib/jira/auto/tool/ticket.rb', line 21
def key
jira_ticket.key
end
|
45
46
47
|
# File 'lib/jira/auto/tool/ticket.rb', line 45
def sprint
jira_ticket.fields.fetch(tool.jira_sprint_field.id)
end
|
#sprint=(sprint) ⇒ Object
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/jira/auto/tool/ticket.rb', line 25
def sprint=(sprint)
@sprint = sprint
jira_ticket.save!({ "fields" => { tool.jira_sprint_field.id => sprint.id } })
rescue StandardError => e
message = "Failed to set sprint for ticket #{key} to #{sprint.id}! #{self}"
log.error { message }
raise e.class, message
end
|
92
93
94
|
# File 'lib/jira/auto/tool/ticket.rb', line 92
def summary
jira_ticket.summary
end
|
37
38
39
|
# File 'lib/jira/auto/tool/ticket.rb', line 37
def to_s
"Ticket(#{to_s_fields.collect { |field| "#{field}: #{send(field)}" }.join(", ")})"
end
|
#to_s_fields ⇒ Object
41
42
43
|
# File 'lib/jira/auto/tool/ticket.rb', line 41
def to_s_fields
i[key summary sprint implementation_team expected_start_date]
end
|