Class: Avrolution::CompatibilityBreak

Inherits:
Object
  • Object
show all
Includes:
ActiveModel::Validations
Defined in:
lib/avrolution/compatibility_break.rb

Constant Summary collapse

ValidationError =
Class.new(StandardError)
VALID_COMPATIBILITY_VALUES =
[
  'BACKWARD',
  'BACKWARD_TRANSITIVE',
  'FORWARD',
  'FORWARD_TRANSITIVE',
  'FULL',
  'FULL_TRANSITIVE',
  'NONE'
].freeze
NONE =
'NONE'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, fingerprint, with_compatibility = NONE, after_compatibility = nil, *extra) ⇒ CompatibilityBreak

Returns a new instance of CompatibilityBreak.



28
29
30
31
32
33
34
# File 'lib/avrolution/compatibility_break.rb', line 28

def initialize(name, fingerprint, with_compatibility = NONE, after_compatibility = nil, *extra)
  @name = name
  @fingerprint = fingerprint
  @with_compatibility = with_compatibility.upcase
  @after_compatibility = after_compatibility.try(:upcase)
  @extra = extra
end

Instance Attribute Details

#after_compatibilityObject (readonly)

Returns the value of attribute after_compatibility.



22
23
24
# File 'lib/avrolution/compatibility_break.rb', line 22

def after_compatibility
  @after_compatibility
end

#fingerprintObject (readonly)

Returns the value of attribute fingerprint.



22
23
24
# File 'lib/avrolution/compatibility_break.rb', line 22

def fingerprint
  @fingerprint
end

#nameObject (readonly)

Returns the value of attribute name.



22
23
24
# File 'lib/avrolution/compatibility_break.rb', line 22

def name
  @name
end

#with_compatibilityObject (readonly)

Returns the value of attribute with_compatibility.



22
23
24
# File 'lib/avrolution/compatibility_break.rb', line 22

def with_compatibility
  @with_compatibility
end

Instance Method Details

#keyObject



36
37
38
# File 'lib/avrolution/compatibility_break.rb', line 36

def key
  [name, fingerprint]
end

#lineObject



44
45
46
# File 'lib/avrolution/compatibility_break.rb', line 44

def line
  [name, fingerprint, with_compatibility, after_compatibility].compact.join(' ')
end

#register_optionsObject



48
49
50
51
52
# File 'lib/avrolution/compatibility_break.rb', line 48

def register_options
  { with_compatibility: with_compatibility }.tap do |options|
    options[:after_compatibility] = after_compatibility if after_compatibility.present?
  end
end

#validate!Object

Raises:



40
41
42
# File 'lib/avrolution/compatibility_break.rb', line 40

def validate!
  raise ValidationError.new(errors.full_messages.join(', ')) unless valid?
end