Class: Jira::Auto::Tool::Performer::PlanningIncrementSprintCreator

Inherits:
PrefixSprintUpdater show all
Defined in:
lib/jira/auto/tool/performer/planning_increment_sprint_creator.rb

Instance Attribute Summary collapse

Attributes inherited from PrefixSprintUpdater

#tool

Instance Method Summary collapse

Methods inherited from PrefixSprintUpdater

#first_sprint_to_act_on?, #run, #sprint_prefixes

Constructor Details

#initialize(tool, sprint_suffix, iteration_count) ⇒ PlanningIncrementSprintCreator



12
13
14
15
16
17
# File 'lib/jira/auto/tool/performer/planning_increment_sprint_creator.rb', line 12

def initialize(tool, sprint_suffix, iteration_count)
  super(tool)

  @sprint_suffix = sprint_suffix
  @iteration_count = iteration_count
end

Instance Attribute Details

#iteration_countObject (readonly)

Returns the value of attribute iteration_count.



10
11
12
# File 'lib/jira/auto/tool/performer/planning_increment_sprint_creator.rb', line 10

def iteration_count
  @iteration_count
end

#sprint_suffixObject (readonly)

Returns the value of attribute sprint_suffix.



10
11
12
# File 'lib/jira/auto/tool/performer/planning_increment_sprint_creator.rb', line 10

def sprint_suffix
  @sprint_suffix
end

Instance Method Details

#act_on_sprints_for_sprint_prefix(sprint_prefix) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/jira/auto/tool/performer/planning_increment_sprint_creator.rb', line 19

def act_on_sprints_for_sprint_prefix(sprint_prefix)
  last_sprint = sprint_prefix.last_sprint
  parsed_new_name = Sprint::Name.new_with(sprint_prefix.name, sprint_suffix)

  iteration_count.times do |_iteration|
    unless parsed_new_name <= last_sprint.parsed_name
      last_sprint = create_sprint_for(last_sprint, parsed_new_name.to_s)
      sprint_prefix << last_sprint
    end

    parsed_new_name = parsed_new_name.next_in_planning_interval
  end
end

#create_sprint_for(last_sprint, new_name) ⇒ Object



33
34
35
36
37
38
# File 'lib/jira/auto/tool/performer/planning_increment_sprint_creator.rb', line 33

def create_sprint_for(last_sprint, new_name)
  RequestBuilder::SprintCreator.create_sprint(
    tool, last_sprint.origin_board_id,
    name: new_name, start_date: last_sprint.end_date, length_in_days: last_sprint.length_in_days
  )
end