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 human_accept].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
# 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)


18
19
20
# File 'lib/textus/domain/policy/promote.rb', line 18

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