Class: BlockedStalledChange

Inherits:
Object
  • Object
show all
Includes:
ValueEquality
Defined in:
lib/jirametrics/blocked_stalled_change.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ValueEquality

#==, #eql?

Constructor Details

#initialize(time:, flagged: nil, flag_reason: nil, status: nil, status_is_blocking: true, blocking_issue_keys: nil, stalled_days: nil) ⇒ BlockedStalledChange

Returns a new instance of BlockedStalledChange.



9
10
11
12
13
14
15
16
17
18
# File 'lib/jirametrics/blocked_stalled_change.rb', line 9

def initialize time:, flagged: nil, flag_reason: nil, status: nil, status_is_blocking: true,
  blocking_issue_keys: nil, stalled_days: nil
  @flag = flagged
  @flag_reason = flag_reason
  @status = status
  @status_is_blocking = status_is_blocking
  @blocking_issue_keys = blocking_issue_keys
  @stalled_days = stalled_days
  @time = time
end

Instance Attribute Details

#blocking_issue_keysObject (readonly)

Returns the value of attribute blocking_issue_keys.



7
8
9
# File 'lib/jirametrics/blocked_stalled_change.rb', line 7

def blocking_issue_keys
  @blocking_issue_keys
end

#flagObject (readonly)

Returns the value of attribute flag.



7
8
9
# File 'lib/jirametrics/blocked_stalled_change.rb', line 7

def flag
  @flag
end

#flag_reasonObject (readonly)

Returns the value of attribute flag_reason.



7
8
9
# File 'lib/jirametrics/blocked_stalled_change.rb', line 7

def flag_reason
  @flag_reason
end

#stalled_daysObject (readonly)

Returns the value of attribute stalled_days.



7
8
9
# File 'lib/jirametrics/blocked_stalled_change.rb', line 7

def stalled_days
  @stalled_days
end

#statusObject (readonly)

Returns the value of attribute status.



7
8
9
# File 'lib/jirametrics/blocked_stalled_change.rb', line 7

def status
  @status
end

#status_is_blockingObject (readonly)

Returns the value of attribute status_is_blocking.



7
8
9
# File 'lib/jirametrics/blocked_stalled_change.rb', line 7

def status_is_blocking
  @status_is_blocking
end

#timeObject (readonly)

Returns the value of attribute time.



7
8
9
# File 'lib/jirametrics/blocked_stalled_change.rb', line 7

def time
  @time
end

Instance Method Details

#active?Boolean

Returns:

  • (Boolean)


22
# File 'lib/jirametrics/blocked_stalled_change.rb', line 22

def active? = !blocked? && !stalled?

#as_symbolObject



41
42
43
44
45
46
47
48
49
# File 'lib/jirametrics/blocked_stalled_change.rb', line 41

def as_symbol
  if blocked?
    :blocked
  elsif stalled?
    :stalled
  else
    :active
  end
end

#blocked?Boolean

Returns:

  • (Boolean)


20
# File 'lib/jirametrics/blocked_stalled_change.rb', line 20

def blocked? = !!(@flag || blocked_by_status? || @blocking_issue_keys)

#blocked_by_status?Boolean

Returns:

  • (Boolean)


24
# File 'lib/jirametrics/blocked_stalled_change.rb', line 24

def blocked_by_status? = !!(@status && @status_is_blocking)

#inspectObject



51
52
53
54
55
56
57
58
59
# File 'lib/jirametrics/blocked_stalled_change.rb', line 51

def inspect
  text = "BlockedStalledChange(time: '#{@time}', "
  if active?
    text << 'Active'
  else
    text << reasons
  end
  text << ')'
end

#reasonsObject



27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/jirametrics/blocked_stalled_change.rb', line 27

def reasons
  result = []
  if blocked?
    result << (@flag_reason ? "Blocked by flag: #{@flag_reason}" : 'Blocked by flag') if @flag
    result << "Blocked by status: #{@status}" if blocked_by_status?
    result << "Blocked by issues: #{@blocking_issue_keys.join(', ')}" if @blocking_issue_keys
  elsif stalled_by_status?
    result << "Stalled by status: #{@status}"
  elsif @stalled_days
    result << "Stalled by inactivity: #{@stalled_days} days"
  end
  result.join(', ')
end

#stalled?Boolean

Returns:

  • (Boolean)


21
# File 'lib/jirametrics/blocked_stalled_change.rb', line 21

def stalled? = !!(@stalled_days || stalled_by_status?)

#stalled_by_status?Boolean

Returns:

  • (Boolean)


25
# File 'lib/jirametrics/blocked_stalled_change.rb', line 25

def stalled_by_status? = !!(@status && !@status_is_blocking)