Class: PDD::Rule::Roles::Available
- Inherits:
-
Object
- Object
- PDD::Rule::Roles::Available
- Defined in:
- lib/pdd/rule/roles.rb
Overview
Rule for available roles checking.
Instance Method Summary collapse
- #errors ⇒ Object
-
#initialize(xml, roles) ⇒ Available
constructor
Ctor.
Constructor Details
#initialize(xml, roles) ⇒ Available
Ctor.
xml
-
XML with puzzles
28 29 30 31 |
# File 'lib/pdd/rule/roles.rb', line 28 def initialize(xml, roles) @xml = xml @roles = roles.split(',') end |
Instance Method Details
#errors ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/pdd/rule/roles.rb', line 33 def errors @xml.xpath('//puzzle').map do |p| role = p.xpath('role/text()').to_s next nil if @roles.include?(role) "puzzle #{p.xpath('file/text()')}:#{p.xpath('lines/text()')}" + if role.empty? " doesn't define any role"\ ", while one of these roles is required: #{@roles}" else " defines role #{role}"\ ", while only these roles are allowed: #{@roles}" end end.compact end |