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
522 523 524 525 526 527 528 529 530 531 532 533 |
# File 'lib/csl/node.rb', line 522 def initialize(argument = '') case when argument.is_a?(Hash) 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 |