Class: NTable::IndexedAxis

Inherits:
Object
  • Object
show all
Defined in:
lib/ntable/axis.rb

Overview

An axis in which the rows are numerically identified by a range of consecutive integers.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(size_, start_ = 0) ⇒ IndexedAxis

Create an IndexedAxis with the given number of rows. The optional start parameter indicates the number of the first row (default 0).



190
191
192
193
# File 'lib/ntable/axis.rb', line 190

def initialize(size_, start_=0)
  @size = size_
  @start = start_
end

Instance Attribute Details

#sizeObject (readonly)

See EmptyAxis#size



215
216
217
# File 'lib/ntable/axis.rb', line 215

def size
  @size
end

#startObject (readonly)

Retrieve the number of the first row



218
219
220
# File 'lib/ntable/axis.rb', line 218

def start
  @start
end

Instance Method Details

#eql?(obj_) ⇒ Boolean Also known as: ==

See EmptyAxis#eql?

Returns:

  • (Boolean)


197
198
199
# File 'lib/ntable/axis.rb', line 197

def eql?(obj_)
  obj_.is_a?(IndexedAxis) && obj_.size.eql?(@size) && obj_.start.eql?(@start)
end

#from_json_object(json_obj_) ⇒ Object

See EmptyAxis#from_json_object



239
240
241
# File 'lib/ntable/axis.rb', line 239

def from_json_object(json_obj_)
  initialize(json_obj_['size'], json_obj_['start'].to_i)
end

#hashObject

See EmptyAxis#hash



203
204
205
# File 'lib/ntable/axis.rb', line 203

def hash
  @size.hash ^ @start.hash
end

#index(label_) ⇒ Object

See EmptyAxis#index



222
223
224
# File 'lib/ntable/axis.rb', line 222

def index(label_)
  label_ >= @start && label_ < @size + @start ? label_ - @start : nil
end

#inspectObject Also known as: to_s

See EmptyAxis#inspect



208
209
210
# File 'lib/ntable/axis.rb', line 208

def inspect
  "#<#{self.class}:0x#{object_id.to_s(16)} size=#{@size} start=#{@start}>"
end

#label(index_) ⇒ Object

See EmptyAxis#label



227
228
229
# File 'lib/ntable/axis.rb', line 227

def label(index_)
  index_ >= 0 && index_ < @size ? index_ + @start : nil
end

#to_json_object(json_obj_) ⇒ Object

See EmptyAxis#to_json_object



233
234
235
236
# File 'lib/ntable/axis.rb', line 233

def to_json_object(json_obj_)
  json_obj_['size'] = @size
  json_obj_['start'] = @start unless @start == 0
end