Class: Textus::Domain::Policy::Promote

Inherits:
Object
  • Object
show all
Defined in:
lib/textus/domain/policy/promote.rb

Constant Summary collapse

KNOWN =
%i[schema_valid accept_authority_signed].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(requires:) ⇒ Promote

Returns a new instance of Promote.



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/textus/domain/policy/promote.rb', line 8

def initialize(requires:)
  syms = Array(requires).map { |r| r.to_s.to_sym }
  unknown = syms - KNOWN
  unless unknown.empty?
    raise Textus::UsageError.new(
      "unknown promote requirement: #{unknown.first.inspect} (known: #{KNOWN.join(", ")})",
    )
  end

  @requires = syms
end

Instance Attribute Details

#requiresObject (readonly)

Returns the value of attribute requires.



6
7
8
# File 'lib/textus/domain/policy/promote.rb', line 6

def requires
  @requires
end

Instance Method Details

#demands?(req) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/textus/domain/policy/promote.rb', line 20

def demands?(req)
  @requires.include?(req)
end