class CookbookBumper::Metadata
Attributes
aliases[R]
path[R]
version[R]
Public Class Methods
new(path)
click to toggle source
# File lib/cookbook_bumper/metadata.rb, line 9 def initialize(path) @path = path @aliases = [] @metadata = parse(path) @version = CookbookBumper::Version.new(@metadata.version) end
Public Instance Methods
bump()
click to toggle source
# File lib/cookbook_bumper/metadata.rb, line 28 def bump version.bump save end
bumped?()
click to toggle source
# File lib/cookbook_bumper/metadata.rb, line 24 def bumped? @version != @metadata.version end
method_missing(method_sym, *args, &block)
click to toggle source
Calls superclass method
# File lib/cookbook_bumper/metadata.rb, line 43 def method_missing(method_sym, *args, &block) if respond_to?(method_sym) @metadata.send(method_sym, *args, &block) else puts "Couldn't find method #{method_sym}" super end end
parse(path)
click to toggle source
# File lib/cookbook_bumper/metadata.rb, line 16 def parse(path) metadata = Chef::Cookbook::Metadata.new.tap { |m| m.from_file(path); m } # rubocop:disable Style/Semicolon path.match(%r{/(?<cookbook_dir>[^/]+)/metadata\.rb$}) do |m| @aliases |= [m[:cookbook_dir]] if metadata.name != m[:cookbook_dir] end metadata end
respond_to_missing?(method_sym, include_private = false)
click to toggle source
Calls superclass method
# File lib/cookbook_bumper/metadata.rb, line 52 def respond_to_missing?(method_sym, include_private = false) @metadata.respond_to?(method_sym) || super end
save()
click to toggle source
# File lib/cookbook_bumper/metadata.rb, line 39 def save File.write(path, updated_contents) end
updated_contents()
click to toggle source
# File lib/cookbook_bumper/metadata.rb, line 33 def updated_contents File.read(path).sub(/^\s*version.*/) do |version_line| version_line.sub(/[\d\.]+/, @metadata.version => @version) end end