class Milestoner::Tags::Creator
Handles the creation of project repository tags.
Attributes
Public Class Methods
Source
# File lib/milestoner/tags/creator.rb, line 13 def initialize(collector: Commits::Collector.new, builder: Builder.new, **) super(**) @collector = collector @builder = builder end
Calls superclass method
Public Instance Methods
Source
# File lib/milestoner/tags/creator.rb, line 19 def call version return Success version if local? version collect.bind { create version } end
Private Instance Methods
Source
# File lib/milestoner/tags/creator.rb, line 38 def collect = collector.call.alt_map { |message| message.sub("fatal: y", "Y").sub("\n", ".") } def create version builder.call(version).bind { |body| git.tag_create version, "#{subject}\n\n#{body}\n\n" } end def subject = format(settings.tag_subject, **settings.to_h) end end
Source
# File lib/milestoner/tags/creator.rb, line 40 def create version builder.call(version).bind { |body| git.tag_create version, "#{subject}\n\n#{body}\n\n" } end
Source
# File lib/milestoner/tags/creator.rb, line 29 def local? version if git.tag_local? version logger.warn { "Local tag exists: #{version}. Skipped." } true else false end end
Source
# File lib/milestoner/tags/creator.rb, line 44 def subject = format(settings.tag_subject, **settings.to_h) end