summaryrefslogtreecommitdiff
path: root/app/services/milestones/group_service.rb
blob: 11d702f1e7b33753f1ccc4e14294aee7e3b21a15 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
module Milestones
  class GroupService < Milestones::BaseService
    def initialize(project_milestones)
      @project_milestones = project_milestones.group_by(&:title)
    end

    def execute
      build(@project_milestones)
    end

    def milestone(title)
      if title
        group_milestone = @project_milestones[title].group_by(&:title)
        build(group_milestone).first
      else
        nil
      end
    end

    private

    def build(milestone)
      milestone.map{ |title, milestones| GroupMilestone.new(title, milestones) }
    end
  end
end