Class: Blather::Stanza::Iq::Si::Si::Range

Inherits:
XMPPNode
  • Object
show all
Defined in:
lib/blather/stanza/iq/si.rb

Overview

Range stanza fragment

Constant Summary

Constants inherited from XMPPNode

XMPPNode::BASE_NAMES

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from XMPPNode

class_from_registration, #decorate, decorator_modules, import, parse, register, #to_stanza

Class Method Details

.find_or_create(parent) ⇒ Si::Si::File::Range

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

Parameters:

  • parent (Si::Si::File)

    a file node where to find or create range

Returns:

  • (Si::Si::File::Range)


363
364
365
366
367
368
369
370
371
372
373
# 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) ⇒ Si::Si::File::Range

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

Parameters:

  • node (XML::Node, nil)

    a node to inherit from

Returns:

  • (Si::Si::File::Range)


346
347
348
349
350
351
352
353
354
355
356
357
# 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

Instance Method Details

#lengthFixnum?

Get the length

Returns:

  • (Fixnum, nil)


396
397
398
399
400
401
402
# 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) ⇒ Object

Set the length

Parameters:

  • length (Fixnum, nil)

    the number of bytes to retrieve starting at offset



407
408
409
# File 'lib/blather/stanza/iq/si.rb', line 407

def length=(length)
  write_attr :length, length
end

#offsetFixnum?

Get the offset

Returns:

  • (Fixnum, nil)


378
379
380
381
382
383
384
# 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) ⇒ Object

Set the offset

Parameters:

  • offset (Fixnum, nil)

    the position, in bytes, to start transferring the file data from



389
390
391
# File 'lib/blather/stanza/iq/si.rb', line 389

def offset=(offset)
  write_attr :offset, offset
end