Class: Pdfrb::Conformance::RuleSet
- Inherits:
-
Object
- Object
- Pdfrb::Conformance::RuleSet
- Defined in:
- lib/pdfrb/conformance/rule.rb
Overview
A named collection of rules. Rules are added via #register and evaluated via #validate. Open for extension (new rules = register, no code edits), closed for modification.
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#rules ⇒ Object
readonly
Returns the value of attribute rules.
Instance Method Summary collapse
-
#initialize(name) ⇒ RuleSet
constructor
A new instance of RuleSet.
- #register(rule) ⇒ Object
- #validate(document) ⇒ Object
Constructor Details
#initialize(name) ⇒ RuleSet
Returns a new instance of RuleSet.
45 46 47 48 |
# File 'lib/pdfrb/conformance/rule.rb', line 45 def initialize(name) @name = name @rules = [] end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
43 44 45 |
# File 'lib/pdfrb/conformance/rule.rb', line 43 def name @name end |
#rules ⇒ Object (readonly)
Returns the value of attribute rules.
43 44 45 |
# File 'lib/pdfrb/conformance/rule.rb', line 43 def rules @rules end |
Instance Method Details
#register(rule) ⇒ Object
50 51 52 53 |
# File 'lib/pdfrb/conformance/rule.rb', line 50 def register(rule) @rules << rule self end |
#validate(document) ⇒ Object
55 56 57 58 59 60 61 62 |
# File 'lib/pdfrb/conformance/rule.rb', line 55 def validate(document) violations = @rules.flat_map do |rule| rule.evaluate(document).map do |v| ensure_violation(v, rule) end end ValidationResult.new(profile: @name, violations: violations) end |