Class: XML::Element
- Inherits:
-
Object
- Object
- XML::Element
- Defined in:
- lib/lazy/check/Nokogiri_extension.rb
Instance Attribute Summary collapse
-
#errors ⇒ Object
readonly
Liste [Array] des erreurs rencontrées au cours d’un check Il faut penser initialiser (@errors = []) cette valeur au début d’un check.
Instance Method Summary collapse
- #add_error(err) ⇒ Object
-
#attributes?(attrs) ⇒ Array
par rapport à attrs.
- #children? ⇒ Boolean
-
#contains?(requireds) ⇒ Boolean
Test du contenu.
-
#contains_as_string?(searched) ⇒ Boolean
(also: #match?)
(mais ce retour ne sert pas à grand-chose, en fait, et même à rien) Surtout : ajoute une erreur à @errors si une erreur est rencontrées.
-
#contains_as_tag?(dtag) ⇒ Boolean
une erreur dans @errors.
-
#empty? ⇒ Boolean
True si le node est vraiment vide.
- #has_no_text? ⇒ Boolean
- #has_text? ⇒ Boolean
- #id ⇒ Object
-
#length ⇒ Integer
La longueur du texte.
- #traverse_children(&block) ⇒ Object
Instance Attribute Details
#errors ⇒ Object (readonly)
Liste [Array] des erreurs rencontrées au cours d’un check Il faut penser initialiser (@errors = []) cette valeur au début d’un check
11 12 13 |
# File 'lib/lazy/check/Nokogiri_extension.rb', line 11 def errors @errors end |
Instance Method Details
#add_error(err) ⇒ Object
133 134 135 136 |
# File 'lib/lazy/check/Nokogiri_extension.rb', line 133 def add_error(err) @errors ||= [] @errors << err end |
#attributes?(attrs) ⇒ Array
par rapport à attrs
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/lazy/check/Nokogiri_extension.rb', line 113 def attributes?(attrs) miss_attrs = [] attrs.each do |attr_name, attr_value| attr_name = attr_name.to_s if self.key?(attr_name) # L'attribut existe if self.attr(attr_name) == attr_value # … et sa valeur est la bonne next else # … mais sa valeur est différente miss_attrs << "attribut #{attr_name} existe, mais avec la valeur #{self.attr(attr_name).inspect}, pas #{attr_value.inspect}." end else miss_attrs << "pas d'attribut #{attr_name.inspect}" end end return miss_attrs end |
#children? ⇒ Boolean
22 23 24 |
# File 'lib/lazy/check/Nokogiri_extension.rb', line 22 def children? elements && elements.count > 0 end |
#contains?(requireds) ⇒ Boolean
Test du contenu
dans required
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/lazy/check/Nokogiri_extension.rb', line 44 def contains?(requireds) @errors = [] @ok = true requireds = [requireds] unless requireds.is_a?(Array) # # Recherche sur tous les éléments requis # # On ne s'arrête pas, même si une erreur a été trouvée, pour # pouvoir les relever toutes. # requireds.each do |required| # # Qu'est-ce qu'on doit chercher ? # case required when String if required.match?(/[^ ]/) && required.match?(/[#.]/) contains_as_tag?({tag: required}) else contains_as_string?(required) end when Hash contains_as_tag?(required) else # Erreur d'implémentation, je dois m'arrêter raise CheckCaseError.new(Lazy::ERRORS[2000] % {c: required.class.name}) end end return @errors.empty? # true si OK end |
#contains_as_string?(searched) ⇒ Boolean Also known as: match?
alias #match?
(mais ce retour ne sert pas à grand-chose, en fait, et même
à rien)
Surtout : ajoute une erreur à @errors si une erreur est rencontrées.
88 89 90 91 92 93 94 95 |
# File 'lib/lazy/check/Nokogiri_extension.rb', line 88 def contains_as_string?(searched) if text.include?(searched) return true else add_error(Lazy::ERRORS[5020] % {e: searched}) return false end end |
#contains_as_tag?(dtag) ⇒ Boolean
une erreur dans @errors
101 102 103 104 105 106 107 108 109 |
# File 'lib/lazy/check/Nokogiri_extension.rb', line 101 def contains_as_tag?(dtag) ctag = Lazy::Checker::CheckedTag.new(dtag) if ctag.is_in?(self) return true else add_error(Lazy::ERRORS[5021] % {e: dtag.inspect}) return false end end |
#empty? ⇒ Boolean
Returns true si le node est vraiment vide.
18 19 20 |
# File 'lib/lazy/check/Nokogiri_extension.rb', line 18 def empty? not(children?) && content.strip.empty? end |
#has_no_text? ⇒ Boolean
30 31 32 |
# File 'lib/lazy/check/Nokogiri_extension.rb', line 30 def has_no_text? text.strip.empty? end |
#has_text? ⇒ Boolean
26 27 28 |
# File 'lib/lazy/check/Nokogiri_extension.rb', line 26 def has_text? not(text.strip.empty?) end |
#id ⇒ Object
138 139 140 |
# File 'lib/lazy/check/Nokogiri_extension.rb', line 138 def id @id ||= self['id'] end |
#length ⇒ Integer
Returns La longueur du texte.
143 144 145 |
# File 'lib/lazy/check/Nokogiri_extension.rb', line 143 def length @length ||= text.strip.length end |
#traverse_children(&block) ⇒ Object
13 14 15 |
# File 'lib/lazy/check/Nokogiri_extension.rb', line 13 def traverse_children(&block) children.each { |ch| ch.traverse(&block) } end |