Class: Dcc::Validate::Schematron::Profile
- Inherits:
-
Object
- Object
- Dcc::Validate::Schematron::Profile
- Defined in:
- lib/dcc/validate/schematron/profile.rb
Overview
Dcc::Validate::Schematron::Profile aggregates the 14 PTB Schematron
rules and runs them against a parsed DCC object tree. Each rule is a
Lutaml::Model::Validation::Rule subclass that walks the parsed tree.
Instance Attribute Summary collapse
-
#dcc ⇒ Object
readonly
Returns the value of attribute dcc.
-
#rules ⇒ Object
readonly
Returns the value of attribute rules.
Class Method Summary collapse
-
.call(dcc) ⇒ Dcc::Validate::Result
Convenience class method.
Instance Method Summary collapse
-
#call ⇒ Object
Run all rules and return a
Dcc::Validate::Result. -
#initialize(dcc) ⇒ Profile
constructor
A new instance of Profile.
Constructor Details
#initialize(dcc) ⇒ Profile
Returns a new instance of Profile.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/dcc/validate/schematron/profile.rb', line 20 def initialize(dcc) @dcc = dcc @rules = [ Rules::UsedMethodsPlacement, Rules::UsedSoftwarePlacement, Rules::InfluenceConditionsPlacement, Rules::SchemaVersionCheck, Rules::IdRefIdLinking, Rules::IsoCodeValidation, Rules::DateRangeCheck, Rules::ReleaseFormatCheck, Rules::UncertaintyConsistency, Rules::UnitFormatCheck, Rules::NonSiDeclaration, Rules::LanguageCodeDedup, Rules::XmlListSpacing, ] end |
Instance Attribute Details
#dcc ⇒ Object (readonly)
Returns the value of attribute dcc.
18 19 20 |
# File 'lib/dcc/validate/schematron/profile.rb', line 18 def dcc @dcc end |
#rules ⇒ Object (readonly)
Returns the value of attribute rules.
18 19 20 |
# File 'lib/dcc/validate/schematron/profile.rb', line 18 def rules @rules end |
Class Method Details
.call(dcc) ⇒ Dcc::Validate::Result
Convenience class method.
57 58 59 |
# File 'lib/dcc/validate/schematron/profile.rb', line 57 def call(dcc) new(dcc).call end |
Instance Method Details
#call ⇒ Object
Run all rules and return a Dcc::Validate::Result.
40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/dcc/validate/schematron/profile.rb', line 40 def call issues = [] rules.each do |rule_class| issues.concat(rule_class.new.check_on(dcc)) end ::Dcc::Validate::Result.new( issues: issues, schema_version: Dcc::TypeGuards.has_attribute?(dcc, :schema_version) ? dcc.schema_version.to_s : nil, source: "schematron", ) end |