class Milestoner::Tags::Creator
Handles the creation of project repository tags.
Attributes
builder[R]
collector[R]
Public Class Methods
new( collector: Commits::Collector.new, builder: Builders::Stream.new(io: StringIO.new), ** )
click to toggle source
Calls superclass method
# File lib/milestoner/tags/creator.rb, line 13 def initialize( collector: Commits::Collector.new, builder: Builders::Stream.new(io: StringIO.new), ** ) @collector = collector @builder = builder super(**) end
Public Instance Methods
call(version)
click to toggle source
# File lib/milestoner/tags/creator.rb, line 23 def call version return Success version if local? version collect.bind { create version } end
Private Instance Methods
build(version)
click to toggle source
# File lib/milestoner/tags/creator.rb, line 46 def build(version) = builder.call.fmap { |body| "Version #{version}\n\n#{body}\n\n" } end
collect(= collector.call.alt_map { |message| message.sub("fatal: y", "Y").sub("\n", ".") })
click to toggle source
# File lib/milestoner/tags/creator.rb, line 42 def collect = collector.call.alt_map { |message| message.sub("fatal: y", "Y").sub("\n", ".") } def create(version) = build(version).bind { |body| git.tag_create version, body } def build(version) = builder.call.fmap { |body| "Version #{version}\n\n#{body}\n\n" } end end end
create(version)
click to toggle source
# File lib/milestoner/tags/creator.rb, line 44 def create(version) = build(version).bind { |body| git.tag_create version, body } def build(version) = builder.call.fmap { |body| "Version #{version}\n\n#{body}\n\n" } end end
local?(version)
click to toggle source
# File lib/milestoner/tags/creator.rb, line 33 def local? version if git.tag_local? version logger.warn { "Local tag exists: #{version}. Skipped." } true else false end end