Class: CSL::TextNode
Direct Known Subclasses
Info::DependentStyle, Info::Email, Info::Id, Info::Name, Info::Published, Info::Rights, Info::Summary, Info::Title, Info::TitleShort, Info::URI, Info::Updated, Locale::Term::Multiple, Locale::Term::Single
Instance Attribute Summary collapse
-
#text ⇒ Object
Returns the value of attribute text.
Attributes inherited from Node
Attributes included from Treelike
Class Method Summary collapse
Instance Method Summary collapse
- #empty? ⇒ Boolean
-
#initialize(argument = '') ⇒ TextNode
constructor
TextNodes quack like a string.
- #initialize_copy(other) ⇒ Object
- #inspect ⇒ Object
- #tags ⇒ Object
- #textnode? ⇒ Boolean
- #to_s ⇒ Object
Methods inherited from Node
#<=>, #attribute?, #attributes?, #attributes_for, constantize, create_attributes, #custom_attributes, #deep_copy, #default_attribute?, #default_attributes, default_attributes, #each, #exact_match?, #format_page_ranges?, #formatting_options, #has_attributes?, #has_default_attributes?, #has_language?, hide_default_attributes!, hide_default_attributes?, match?, #match?, matches?, #merge!, #page_range_format, parse, parse!, #quotes?, #reverse_merge!, #save_to, show_default_attributes!, #strip_periods?, types
Methods included from Extensions::Nesting
Methods included from PrettyPrinter
Methods included from Treelike
#<<, #add_child, #add_children, #ancestors, #closest, #delete_child, #delete_children, #depth, #descendants, #each_ancestor, #each_child, #each_descendant, #each_sibling, #find_child, #find_children, #has_children?, #root, #root?, #siblings, #unlink
Constructor Details
#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 |
Instance Attribute Details
#text ⇒ Object
Returns the value of attribute text.
571 572 573 |
# File 'lib/csl/node.rb', line 571 def text @text end |
Class Method Details
Instance Method Details
#empty? ⇒ Boolean
612 613 614 |
# File 'lib/csl/node.rb', line 612 def empty? text.nil? || text.empty? end |
#initialize_copy(other) ⇒ Object
601 602 603 604 |
# File 'lib/csl/node.rb', line 601 def initialize_copy(other) super @text = other.text end |
#inspect ⇒ Object
620 621 622 |
# File 'lib/csl/node.rb', line 620 def inspect "#<#{[self.class.name, text.inspect, *attribute_assignments].join(' ')}>" end |
#tags ⇒ Object
616 617 618 |
# File 'lib/csl/node.rb', line 616 def ["<#{attribute_assignments.unshift(nodename).join(' ')}>#{to_s}</#{nodename}>"] end |
#textnode? ⇒ Boolean
606 607 608 |
# File 'lib/csl/node.rb', line 606 def textnode? true end |
#to_s ⇒ Object
573 574 575 |
# File 'lib/csl/node.rb', line 573 def to_s CSL.encode_xml_text text.to_s.strip end |