Class: Nokogiri::XML::Builder::NodeBuilder
- Inherits:
-
Object
- Object
- Nokogiri::XML::Builder::NodeBuilder
show all
- Defined in:
- lib/nokogiri/xml/builder.rb
Overview
Instance Method Summary
collapse
Constructor Details
#initialize(node, doc_builder) ⇒ NodeBuilder
361
362
363
364
|
# File 'lib/nokogiri/xml/builder.rb', line 361
def initialize node, doc_builder
@node = node
@doc_builder = doc_builder
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
|
# File 'lib/nokogiri/xml/builder.rb', line 374
def method_missing(method, *args, &block)
opts = args.last.is_a?(Hash) ? args.pop : {}
case method.to_s
when /^(.*)!$/
@node['id'] = $1
@node.content = args.first if args.first
when /^(.*)=/
@node[$1] = args.first
else
@node['class'] =
((@node['class'] || '').split(/\s/) + [method.to_s]).join(' ')
@node.content = args.first if args.first
end
opts.each do |k,v|
@node[k.to_s] = ((@node[k.to_s] || '').split(/\s/) + [v]).join(' ')
end
if block_given?
old_parent = @doc_builder.parent
@doc_builder.parent = @node
value = @doc_builder.instance_eval(&block)
@doc_builder.parent = old_parent
return value
end
self
end
|
Instance Method Details
#[](k) ⇒ Object
370
371
372
|
# File 'lib/nokogiri/xml/builder.rb', line 370
def [] k
@node[k]
end
|
#[]=(k, v) ⇒ Object
366
367
368
|
# File 'lib/nokogiri/xml/builder.rb', line 366
def []= k, v
@node[k] = v
end
|