2014-06-25 14:19:03 +00:00
|
|
|
module Milestones
|
|
|
|
class GroupService < Milestones::BaseService
|
2014-06-26 08:57:36 +00:00
|
|
|
def initialize(project_milestones)
|
2014-06-25 14:19:03 +00:00
|
|
|
@project_milestones = project_milestones.group_by(&:title)
|
|
|
|
end
|
|
|
|
|
2014-06-26 08:57:36 +00:00
|
|
|
def execute
|
2014-06-27 08:14:57 +00:00
|
|
|
build(@project_milestones)
|
2014-06-25 14:19:03 +00:00
|
|
|
end
|
|
|
|
|
2014-06-26 12:19:29 +00:00
|
|
|
def milestone(title)
|
|
|
|
if title
|
2014-06-27 08:14:57 +00:00
|
|
|
group_milestone = @project_milestones[title].group_by(&:title)
|
|
|
|
build(group_milestone).first
|
2014-06-26 12:19:29 +00:00
|
|
|
else
|
|
|
|
nil
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2014-06-30 11:27:17 +00:00
|
|
|
private
|
2014-06-27 08:14:57 +00:00
|
|
|
|
|
|
|
def build(milestone)
|
|
|
|
milestone.map{ |title, milestones| GroupMilestone.new(title, milestones) }
|
|
|
|
end
|
2014-06-25 14:19:03 +00:00
|
|
|
end
|
|
|
|
end
|