Class: Stupidedi::Versions::FunctionalGroups::FortyTen::SyntaxNotes::R

Inherits:
Schema::SyntaxNote show all
Defined in:
lib/stupidedi/versions/functional_groups/004010/syntax_notes.rb

Overview

Required: at least one of the elements specified in the condition must be present

Instance Attribute Summary

Attributes inherited from Schema::SyntaxNote

#indexes

Class Method Summary (collapse)

Instance Method Summary (collapse)

Methods inherited from Schema::SyntaxNote

#errors, #initialize, #satisfied?

Constructor Details

This class inherits a constructor from Stupidedi::Schema::SyntaxNote

Class Method Details

+ build(*args)



70
71
72
# File 'lib/stupidedi/versions/functional_groups/004010/syntax_notes.rb', line 70

def build(*args)
  new(args)
end

Instance Method Details

- forbidden(zipper)



58
59
60
# File 'lib/stupidedi/versions/functional_groups/004010/syntax_notes.rb', line 58

def forbidden(zipper)
  []
end

- reason(zipper)



62
63
64
65
66
# File 'lib/stupidedi/versions/functional_groups/004010/syntax_notes.rb', line 62

def reason(zipper)
  present = indexes.select{|n| zipper.child(n - 1).node.present? }
  missing = indexes - present
  "at least one of elements #{missing.join(", ")} must be present when elements #{present.join(", ")} are present"
end

- required(zipper)



49
50
51
52
53
54
55
56
# File 'lib/stupidedi/versions/functional_groups/004010/syntax_notes.rb', line 49

def required(zipper)
  if zipper.node.present?
    xs = children(zipper)
    xs.any?{|x| x.node.present? } ? [] : xs
  else
    []
  end
end