class Blather::Stanza::Iq::Si::Si::Range

Range stanza fragment

Public Class Methods

find_or_create(parent) click to toggle source

Find or create range node in file node and converts it to Si::Si::File::Range

@param [Si::Si::File] parent a file node where to find or create range

@return [Si::Si::File::Range]

# File lib/blather/stanza/iq/si.rb, line 363
def self.find_or_create(parent)
  if found_range = parent.find_first('//ns:range', :ns => self.registered_ns)
    range = self.new found_range
    found_range.remove
  else
    range = self.new
  end
  parent << range

  range
end
new(offset = nil, length = nil) click to toggle source

Create a new Si::Si::File::Range object

@param [XML::Node, nil] node a node to inherit from

@return [Si::Si::File::Range]

Calls superclass method
# File lib/blather/stanza/iq/si.rb, line 346
def self.new(offset = nil, length = nil)
  new_node = super :range

  case offset
  when Nokogiri::XML::Node
    new_node.inherit offset
  else
    new_node.offset = offset
    new_node.length = length
  end
  new_node
end

Public Instance Methods

length() click to toggle source

Get the length

@return [Fixnum, nil]

# File lib/blather/stanza/iq/si.rb, line 396
def length
  if (l = read_attr(:length)) && (l =~ /^\d+$/)
    l.to_i
  else
    nil
  end
end
length=(length) click to toggle source

Set the length

@param [Fixnum, nil] length the number of bytes to retrieve starting at offset

# File lib/blather/stanza/iq/si.rb, line 407
def length=(length)
  write_attr :length, length
end
offset() click to toggle source

Get the offset

@return [Fixnum, nil]

# File lib/blather/stanza/iq/si.rb, line 378
def offset
  if (o = read_attr(:offset)) && (o =~ /^\d+$/)
    o.to_i
  else
    nil
  end
end
offset=(offset) click to toggle source

Set the offset

@param [Fixnum, nil] offset the position, in bytes, to start transferring the file data from

# File lib/blather/stanza/iq/si.rb, line 389
def offset=(offset)
  write_attr :offset, offset
end