Class: ObjectTable::MaskedColumn
- Defined in:
- lib/object_table/masked_column.rb
Instance Attribute Summary collapse
-
#indices ⇒ Object
Returns the value of attribute indices.
-
#padded_dims ⇒ Object
Returns the value of attribute padded_dims.
-
#parent ⇒ Object
Returns the value of attribute parent.
Class Method Summary collapse
-
.make(*args) ⇒ Object
let ObjectTable::Column do this, since we’ve overriden []=.
- .mask(parent, indices) ⇒ Object
Instance Method Summary collapse
Methods inherited from Column
#[], #_refer, #coerce_rev, #method_missing, #slice, #stack, #to_bool, #to_object, #uniq
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class ObjectTable::Column
Instance Attribute Details
#indices ⇒ Object
Returns the value of attribute indices.
4 5 6 |
# File 'lib/object_table/masked_column.rb', line 4 def indices @indices end |
#padded_dims ⇒ Object
Returns the value of attribute padded_dims.
4 5 6 |
# File 'lib/object_table/masked_column.rb', line 4 def padded_dims @padded_dims end |
#parent ⇒ Object
Returns the value of attribute parent.
4 5 6 |
# File 'lib/object_table/masked_column.rb', line 4 def parent @parent end |
Class Method Details
.make(*args) ⇒ Object
let ObjectTable::Column do this, since we’ve overriden []=
28 29 30 |
# File 'lib/object_table/masked_column.rb', line 28 def self.make(*args) ObjectTable::Column.make(*args) end |
.mask(parent, indices) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/object_table/masked_column.rb', line 6 def self.mask(parent, indices) if parent.rank > 1 padded_dims = [nil] * (parent.rank - 1) else padded_dims = [] end masked = parent.slice(*padded_dims, indices) if masked.rank <= 0 column = self.new(masked.typecode, 0) else column = self.new(masked.typecode, *masked.shape) column.super_slice_assign(masked) end column.parent = parent column.indices = indices column.padded_dims = padded_dims column end |
Instance Method Details
#[]=(*keys, value) ⇒ Object
34 35 36 37 38 39 |
# File 'lib/object_table/masked_column.rb', line 34 def []=(*keys, value) unless parent.nil? or ((value.is_a?(Array) or value.is_a?(NArray)) and value.empty?) parent[*padded_dims, indices[*keys]] = value end super end |
#clone ⇒ Object
50 51 52 |
# File 'lib/object_table/masked_column.rb', line 50 def clone ObjectTable::Column.cast(self).clone end |
#super_slice_assign ⇒ Object
32 |
# File 'lib/object_table/masked_column.rb', line 32 alias_method :super_slice_assign, :[]= |