class Nodesets::Nodeset

Attributes

sorted[R]

Public Class Methods

new(nodes = nil, sorted = false) click to toggle source
Calls superclass method
# File lib/nodesets/nodeset.rb, line 6
def initialize(nodes = nil, sorted = false)
  @sorted = sorted
  nodes = Nodesets.parse_nodeset(nodes) if nodes && nodes.is_a?(String)
  #nodes = Nodesets.parse_nodeset(nodes) if nodes && (! nodes.is_a?(Set))
  super(nodes)
end

Public Instance Methods

&(nodes) click to toggle source
Calls superclass method
# File lib/nodesets/nodeset.rb, line 28
def &(nodes)
  nodes = Nodesets.parse_nodeset(nodes) if nodes && (! nodes.is_a?(Set))
  super(nodes)
end
[](pos) click to toggle source
# File lib/nodesets/nodeset.rb, line 49
def [](pos)
  self.human_sort! unless @sorted
  self.to_a[pos]
end
^(nodes) click to toggle source
Calls superclass method
# File lib/nodesets/nodeset.rb, line 32
def ^(nodes)
  nodes = Nodesets.parse_nodeset(nodes) if nodes && (! nodes.is_a?(Set))
  self.class.new(super(nodes))
end
expand(sort: true) click to toggle source
# File lib/nodesets/nodeset.rb, line 56
def expand(sort: true)
  self.human_sort! if (! @sorted) && sort
  self.to_a
end
fold() click to toggle source
# File lib/nodesets/nodeset.rb, line 53
def fold
  Nodesets.make_nodeset(self)
end
human_sort() click to toggle source
# File lib/nodesets/nodeset.rb, line 36
def human_sort
  if @sorted
    self
  else
    Nodesets::Nodeset.new(Nodesets::HumanSortableArray.new(self.to_a).human_sort, true)
  end
end
human_sort!() click to toggle source
# File lib/nodesets/nodeset.rb, line 43
def human_sort!
  self.replace(human_sort)
  #replaced = self.replace(human_sort)
  #@sorted = true
  #replaced
end
merge(nodes) click to toggle source
Calls superclass method
# File lib/nodesets/nodeset.rb, line 12
def merge(nodes)
  @sorted = false
  if nodes && (! nodes.is_a?(Set))
    nodes = if nodes.is_a?(Array)
      nodes.map {|x| Nodesets.parse_nodeset(x) }.flatten
    else
      Nodesets.parse_nodeset(nodes)
    end
  end
  super(nodes)
end
subtract(nodes) click to toggle source
Calls superclass method
# File lib/nodesets/nodeset.rb, line 23
def subtract(nodes)
  @sorted = false
  nodes = Nodesets.parse_nodeset(nodes) if nodes && (! nodes.is_a?(Set))
  super(nodes)
end