class ChefRake::Task::Repin
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/chef/raketasks/repin.rb, line 23 def initialize super namespace :repin do desc 'Repin hard dependencies in Chef Workstation binaries' %w[chef-client kitchen inspec ohai].each do |binary| next unless File.exist? binary_wrapper(binary) desc "Repin #{binary} dependency to a specific gem" task binary.to_sym, [:gem, :version] do |_task, args| task_repin binary, args.gem, args.version end end end # namespace repin end
Public Instance Methods
binary_wrapper(name)
click to toggle source
# File lib/chef/raketasks/repin.rb, line 46 def binary_wrapper(name) File.join('/opt/chef-workstation/bin', name) end
read(filename)
click to toggle source
# File lib/chef/raketasks/repin.rb, line 50 def read(filename) @contents = File.read(filename) @filename = filename end
repin(gem, version)
click to toggle source
# File lib/chef/raketasks/repin.rb, line 55 def repin(gem, version) printf("Changing version pin of %<gem>s to %<version>s for %<binary>s\n", gem: gem, version: version, binary: @filename) @contents.gsub!(/(?<=#{gem}"), "= [.0-9]+"/, ", \"= #{version}\"") end
task_repin(name, gem, version)
click to toggle source
# File lib/chef/raketasks/repin.rb, line 40 def task_repin(name, gem, version) read binary_wrapper(name) repin gem, version write_back end
write_back()
click to toggle source
# File lib/chef/raketasks/repin.rb, line 64 def write_back File.write(@filename, @contents) end