Module: GroupableIssueChart

Included in:
AgingWorkInProgressChart, FlowEfficiencyScatterplot, ThroughputChart, TimeBasedHistogram, TimeBasedScatterplot
Defined in:
lib/jirametrics/groupable_issue_chart.rb

Instance Method Summary collapse

Instance Method Details

#group_issues(completed_issues) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/jirametrics/groupable_issue_chart.rb', line 16

def group_issues completed_issues
  result = {}
  ignored_issues = []
  @issue_hints = {}
  @issue_periods = {}
  completed_issues.each do |issue|
    rules = GroupingRules.new
    @group_by_block.call(issue, rules)
    if rules.ignored?
      ignored_issues << issue
      next
    end

    @issue_hints[issue] = rules.issue_hint
    @issue_periods[issue] = rules.last_day_of_period
    (result[rules] ||= []) << issue
  end

  completed_issues.reject! { |issue| ignored_issues.include? issue }

  result.each_key do |rules|
    rules.color = random_color if rules.color.nil?
  end
  result
end

#grouping_rules(&block) ⇒ Object



12
13
14
# File 'lib/jirametrics/groupable_issue_chart.rb', line 12

def grouping_rules &block
  @group_by_block = block
end

#init_configuration_block(user_provided_block, &default_block) ⇒ Object



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

def init_configuration_block user_provided_block, &default_block
  instance_eval(&user_provided_block)
  instance_eval(&default_block) unless @group_by_block
end