Class: HTML::Text
- Defined in:
- lib/action_controller/vendor/html-scanner/html/node.rb
Overview
A node that represents text, rather than markup.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#content ⇒ Object
readonly
:nodoc:.
Attributes inherited from Node
#children, #line, #parent, #position
Instance Method Summary collapse
- #==(node) ⇒ Object
-
#find(conditions) ⇒ Object
Returns
self
if this node meets the given conditions. -
#initialize(parent, line, pos, content) ⇒ Text
constructor
Creates a new text node as a child of the given parent, with the given content.
-
#match(conditions) ⇒ Object
Returns non-
nil
if this node meets the given conditions, ornil
otherwise. -
#to_s ⇒ Object
Returns the content of this node.
Methods inherited from Node
#find_all, parse, #tag?, #validate_conditions
Constructor Details
#initialize(parent, line, pos, content) ⇒ Text
Creates a new text node as a child of the given parent, with the given content.
214 215 216 217 |
# File 'lib/action_controller/vendor/html-scanner/html/node.rb', line 214 def initialize(parent, line, pos, content) super(parent, line, pos) @content = content end |
Instance Attribute Details
#content ⇒ Object (readonly)
:nodoc:
210 211 212 |
# File 'lib/action_controller/vendor/html-scanner/html/node.rb', line 210 def content @content end |
Instance Method Details
#==(node) ⇒ Object
260 261 262 263 |
# File 'lib/action_controller/vendor/html-scanner/html/node.rb', line 260 def ==(node) return false unless super content == node.content end |
#find(conditions) ⇒ Object
Returns self
if this node meets the given conditions. Text nodes support conditions of the following kinds:
-
if
conditions
is a string, it must be a substring of the node’s content -
if
conditions
is a regular expression, it must match the node’s content -
if
conditions
is a hash, it must contain a:content
key that is either a string or a regexp, and which is interpreted as described above.
234 235 236 |
# File 'lib/action_controller/vendor/html-scanner/html/node.rb', line 234 def find(conditions) match(conditions) && self end |
#match(conditions) ⇒ Object
Returns non-nil
if this node meets the given conditions, or nil
otherwise. See the discussion of #find for the valid conditions.
240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 |
# File 'lib/action_controller/vendor/html-scanner/html/node.rb', line 240 def match(conditions) case conditions when String @content == conditions when Regexp @content =~ conditions when Hash conditions = validate_conditions(conditions) # Text nodes only have :content, :parent, :ancestor unless (conditions.keys - [:content, :parent, :ancestor]).empty? return false end match(conditions[:content]) else nil end end |
#to_s ⇒ Object
Returns the content of this node.
220 221 222 |
# File 'lib/action_controller/vendor/html-scanner/html/node.rb', line 220 def to_s @content end |