Class: Diogenes::DSL::Rule
- Inherits:
-
Object
- Object
- Diogenes::DSL::Rule
- Defined in:
- lib/diogenes/dsl/rule.rb,
sig/generated/diogenes/dsl/rule.rbs
Instance Attribute Summary collapse
-
#name ⇒ String
readonly
: String.
Instance Method Summary collapse
-
#content(value = nil) ⇒ String?
: (?String?) -> String?.
-
#description(value = nil) ⇒ String?
: (?String?) -> String?.
-
#initialize(name, &block) ⇒ Rule
constructor
: (String, ?Proc) -> void.
-
#validate! ⇒ void
: () -> void.
Constructor Details
#initialize(name, &block) ⇒ Rule
: (String, ?Proc) -> void
10 11 12 13 14 |
# File 'lib/diogenes/dsl/rule.rb', line 10 def initialize(name, &block) @name = name #: String instance_eval(&block) if block_given? validate! end |
Instance Attribute Details
#name ⇒ String (readonly)
: String
7 8 9 |
# File 'lib/diogenes/dsl/rule.rb', line 7 def name @name end |
Instance Method Details
#content(value = nil) ⇒ String?
: (?String?) -> String?
23 24 25 26 |
# File 'lib/diogenes/dsl/rule.rb', line 23 def content(value = nil) @content = value unless value.nil? @content end |
#description(value = nil) ⇒ String?
: (?String?) -> String?
17 18 19 20 |
# File 'lib/diogenes/dsl/rule.rb', line 17 def description(value = nil) @description = value unless value.nil? @description end |
#validate! ⇒ void
This method returns an undefined value.
: () -> void
31 32 33 34 35 36 37 38 39 |
# File 'lib/diogenes/dsl/rule.rb', line 31 def validate! missing = %i[description content].reject { |f| instance_variable_get(:"@#{f}") } return if missing.empty? raise Diogenes::ConfigurationError, "Rule #{@name.inspect} is missing required " \ "field#{"s" if missing.size > 1}: #{missing.join(", ")}. " \ "A rule requires: description and content." end |