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