Class: Opencdd::Validator::UniquenessRule
- Inherits:
-
Rule
- Object
- Rule
- Opencdd::Validator::UniquenessRule
show all
- Defined in:
- lib/opencdd/validator/uniqueness_rule.rb
Constant Summary
Constants inherited
from Rule
Rule::REFERENCE_VALUE_KINDS
Instance Method Summary
collapse
Methods inherited from Rule
#blank?, #reference_kind?, #skip_blank?, #value_passes?
Instance Method Details
#applies?(context) ⇒ Boolean
10
11
12
|
# File 'lib/opencdd/validator/uniqueness_rule.rb', line 10
def applies?(context)
code_column?(context)
end
|
#call(value, context) ⇒ Object
14
15
16
17
18
|
# File 'lib/opencdd/validator/uniqueness_rule.rb', line 14
def call(value, context)
return true if value.nil? || value.to_s.strip.empty?
peers = context.database.entities.filter_map { |e| e.irdi&.code if e.type == context.entity.type }
peers.tally[value.to_s] == 1
end
|
#id ⇒ Object
6
7
8
|
# File 'lib/opencdd/validator/uniqueness_rule.rb', line 6
def id
"R02"
end
|
#message(value, _context) ⇒ Object
20
21
22
|
# File 'lib/opencdd/validator/uniqueness_rule.rb', line 20
def message(value, _context)
"R02: code #{value.inspect} is not unique within its sheet"
end
|