class Milestoner::Tags::Manifest
Manages build manifest.
Public Class Methods
Source
# File lib/milestoner/tags/manifest.rb, line 17 def initialize(name: "manifest.json", **) super(**) @name = name end
Calls superclass method
Public Instance Methods
Source
# File lib/milestoner/tags/manifest.rb, line 22 def build_path = settings.build_output.join name def diff path = build_path git.tags.value_or(Core::EMPTY_ARRAY).then do |tags| return Core::EMPTY_HASH if tags.empty? content_for(tags).diff read(path) end end def read(path = build_path) = JSON(path.read, {symbolize_names: true}) def write(path = build_path, **) path.make_ancestors.write JSON.pretty_generate(generator.deep_merge(**)) end private attr_reader :name # :reek:FeatureEnvy def content_for tags generator.merge latest: tags.last.version, versions: tags.map(&:version) end def generator {generator: {label: settings.generator_label, version: settings.generator_version.to_s}} end end end
Source
# File lib/milestoner/tags/manifest.rb, line 43 def content_for tags generator.merge latest: tags.last.version, versions: tags.map(&:version) end
:reek: FeatureEnvy
Source
# File lib/milestoner/tags/manifest.rb, line 24 def diff path = build_path git.tags.value_or(Core::EMPTY_ARRAY).then do |tags| return Core::EMPTY_HASH if tags.empty? content_for(tags).diff read(path) end end
Source
# File lib/milestoner/tags/manifest.rb, line 47 def generator {generator: {label: settings.generator_label, version: settings.generator_version.to_s}} end
Source
# File lib/milestoner/tags/manifest.rb, line 32 def read(path = build_path) = JSON(path.read, {symbolize_names: true}) def write(path = build_path, **) path.make_ancestors.write JSON.pretty_generate(generator.deep_merge(**)) end private attr_reader :name # :reek:FeatureEnvy def content_for tags generator.merge latest: tags.last.version, versions: tags.map(&:version) end def generator {generator: {label: settings.generator_label, version: settings.generator_version.to_s}} end end
Source
# File lib/milestoner/tags/manifest.rb, line 34 def write(path = build_path, **) path.make_ancestors.write JSON.pretty_generate(generator.deep_merge(**)) end