Class: Excelgrip::RangeCursor

Inherits:
Range show all
Defined in:
lib/excelgrip.rb

Overview

RangeCursor Class ==============

Instance Method Summary collapse

Methods inherited from Range

#==, #cells, #each_range, #get_cursor, #h_pos, #h_size, #include?, #insert_here, #inspect, #merge, #mergearea, #name, #name=, #position, #unmerge, #v_pos, #v_size, #value, #value=

Methods inherited from GripWrapper

#initialize, #inspect, #raw

Constructor Details

This class inherits a constructor from Excelgrip::GripWrapper

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Excelgrip::GripWrapper

Instance Method Details

#delete(shift = nil) ⇒ Object

undef delete



449
450
451
452
453
454
# File 'lib/excelgrip.rb', line 449

def delete(shift=nil)
  range_name = @raw_object.name
  parent_sheet = @raw_object.parent
  @raw_object.delete(shift)
  @raw_object = parent_sheet.range(range_name)
end

#h_move(offset) ⇒ Object



407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
# File 'lib/excelgrip.rb', line 407

def h_move(offset)
  return(self) if offset == 0
  sheet = @raw_object.parent
  sign = (offset.abs / offset)  # +1 or -1
  offset.abs.times do
    v_pos, h_pos = position()
    h_pos += (h_size() * sign)
    h_pos = 1 if h_pos < 1
    next_top_cell = sheet.cells(v_pos,h_pos)
    next_bottom_cell = sheet.cells(v_pos + v_size() - 1, h_pos + h_size() -1)
    next_range = sheet.range(next_top_cell, next_bottom_cell)
    @raw_object = next_range
  end
  
  self.activate
  self
end

#rangeObject Also known as: parent

return Excel::Range object



443
444
445
# File 'lib/excelgrip.rb', line 443

def range()
  @raw_object
end

#v_move(offset) ⇒ Object



425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
# File 'lib/excelgrip.rb', line 425

def v_move(offset)
  return(self) if offset == 0
  sheet = @raw_object.parent
  sign = (offset.abs / offset)  # +1 or -1
  offset.abs.times do
    v_pos, h_pos = position()
    v_pos += (v_size() * sign)
    v_pos = 1 if v_pos < 1
    next_top_cell = sheet.cells(v_pos, h_pos)
    next_bottom_cell = sheet.cells(v_pos + v_size() - 1, h_pos + h_size() -1)
    next_range = sheet.range(next_top_cell, next_bottom_cell)
    @raw_object = next_range
  end
  self.activate
  self
end