Class: Aspera::Cli::Deprecation

Inherits:
Struct
  • Object
show all
Defined in:
lib/aspera/cli/deprecation.rb

Overview

Deprecation of a feature (e.g. an option).

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**kwargs) ⇒ Deprecation

Returns a new instance of Deprecation.



12
13
14
15
16
17
18
19
# File 'lib/aspera/cli/deprecation.rb', line 12

def initialize(**kwargs)
  super
  Aspera.assert_type(last, String) { 'deprecation last' }
  Aspera.assert(Gem::Version.correct?(last) && Gem::Version.new(last) < Gem::Version.new(VERSION)) do
    "deprecation: last (#{last}) must be a released version, before #{VERSION}"
  end
  Aspera.assert_type(message, String) { 'deprecation message' }
end

Instance Attribute Details

#last ⇒ Object (readonly)

Last released version supporting the feature without deprecation, e.g. 4.25.0



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/aspera/cli/deprecation.rb', line 11

Deprecation = Struct.new(:last, :message, keyword_init: true) do
  def initialize(**kwargs)
    super
    Aspera.assert_type(last, String) { 'deprecation last' }
    Aspera.assert(Gem::Version.correct?(last) && Gem::Version.new(last) < Gem::Version.new(VERSION)) do
      "deprecation: last (#{last}) must be a released version, before #{VERSION}"
    end
    Aspera.assert_type(message, String) { 'deprecation message' }
  end

  # @return [String] e.g. `deprecated after 4.25.0: use --out.level`
  def to_s = "deprecated after #{last}: #{message}"

  class << self
    # @param value [Deprecation, Hash, nil] Deprecation, or its attributes: `{last:, message:}`
    # @return [Deprecation, nil]
    def create(value)
      case value
      when nil, Deprecation then value
      when Hash then new(**value)
      else Aspera.error_unexpected_value(value.class) { 'deprecation, expect Hash {last:, message:}' }
      end
    end
  end
end

#message ⇒ Object (readonly)

What to use instead, e.g. use --out.level



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/aspera/cli/deprecation.rb', line 11

Deprecation = Struct.new(:last, :message, keyword_init: true) do
  def initialize(**kwargs)
    super
    Aspera.assert_type(last, String) { 'deprecation last' }
    Aspera.assert(Gem::Version.correct?(last) && Gem::Version.new(last) < Gem::Version.new(VERSION)) do
      "deprecation: last (#{last}) must be a released version, before #{VERSION}"
    end
    Aspera.assert_type(message, String) { 'deprecation message' }
  end

  # @return [String] e.g. `deprecated after 4.25.0: use --out.level`
  def to_s = "deprecated after #{last}: #{message}"

  class << self
    # @param value [Deprecation, Hash, nil] Deprecation, or its attributes: `{last:, message:}`
    # @return [Deprecation, nil]
    def create(value)
      case value
      when nil, Deprecation then value
      when Hash then new(**value)
      else Aspera.error_unexpected_value(value.class) { 'deprecation, expect Hash {last:, message:}' }
      end
    end
  end
end

Class Method Details

.create(value) ⇒ Deprecation?

Parameters:

  • value (Deprecation, Hash, nil) —

    Deprecation, or its attributes: {last:, message:}

Returns:



27
28
29
30
31
32
33
# File 'lib/aspera/cli/deprecation.rb', line 27

def create(value)
  case value
  when nil, Deprecation then value
  when Hash then new(**value)
  else Aspera.error_unexpected_value(value.class) { 'deprecation, expect Hash {last:, message:}' }
  end
end

Instance Method Details

#to_s ⇒ String

Returns e.g. deprecated after 4.25.0: use --out.level.

Returns:

  • (String) —

    e.g. deprecated after 4.25.0: use --out.level



22
# File 'lib/aspera/cli/deprecation.rb', line 22

def to_s = "deprecated after #{last}: #{message}"