Method: CSL::TextNode#initialize
- Defined in:
- lib/csl/node.rb
#initialize(argument = '') ⇒ TextNode
TextNodes quack like a string. def_delegators :to_s, *String.instance_methods(false).reject do |m|
m.to_s =~ /^\W|!$|(?:^(?:hash|eql?|to_s|length|size|inspect)$)/
end
String.instance_methods(false).select { |m| m.to_s =~ /!$/ }.each do |m|
define_method(m) do
content.send(m) if content.respond_to?(m)
end
end
588 589 590 591 592 593 594 595 596 597 598 599 |
# File 'lib/csl/node.rb', line 588 def initialize(argument = '') case when argument.respond_to?(:each_pair) super when argument.respond_to?(:to_s) super({}) @text = argument.to_s yield self if block_given? else raise ArgumentError, "failed to create text node from #{argument.inspect}" end end |