class Avrolution::Rake::AddCompatibilityBreakTask

Public Class Methods

new(**) click to toggle source
Calls superclass method
# File lib/avrolution/rake/add_compatibility_break_task.rb, line 9
def initialize(**)
  super
  @name ||= :add_compatibility_break
  @task_desc ||= 'Add an Avro schema compatibility break. Parameters: name, fingerprint, ' \
    'with_compatibility, after_compatibility'
end

Private Instance Methods

perform() click to toggle source
# File lib/avrolution/rake/add_compatibility_break_task.rb, line 18
def perform
  compatibility_break_args = ENV.to_h.slice(
    'name', 'fingerprint', 'with_compatibility', 'after_compatibility'
  ).symbolize_keys

  missing_args = [:name, :fingerprint].select do |arg|
    compatibility_break_args[arg].blank?
  end

  if missing_args.any?
    puts missing_args.map { |arg| "#{arg} can't be blank" }.join(', ')
    puts 'Usage: rake avro:add_compatibility_break name=<name> fingerprint=<fingerprint> ' \
      '[with_compatibility=<default:NONE>] [after_compatibility=<compatibility>]'
    exit(1)
  end

  Avrolution::CompatibilityBreaksFile.add(**compatibility_break_args)
end