Class: Qi::Store

Inherits:
Object
  • Object
show all
Defined in:
lib/qi/store.rb

Overview

Main class.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(size, options = {}) ⇒ Store

Returns a new instance of Store.

Parameters:

  • size (Fixnum)

    The number of cell.

  • options (Hash) (defaults to: {})

    A content per cell.



6
7
8
9
10
11
12
# File 'lib/qi/store.rb', line 6

def initialize(size, options = {})
  @cells = Array.new(size)

  options.each do |cell, piece|
    @cells[cell] = piece
  end
end

Instance Attribute Details

#cellsArray (readonly)

Returns The cells in the store.

Returns:

  • (Array)

    The cells in the store.



17
18
19
# File 'lib/qi/store.rb', line 17

def cells
  @cells
end

Instance Method Details

#call(src_cell, dst_cell, content) ⇒ Store

Returns The new store.

Parameters:

  • src_cell (Fixnum)

    Source cell.

  • dst_cell (Fixnum)

    Destination cell.

  • content (Symbol)

    Content.

Returns:

  • (Store)

    The new store.



24
25
26
27
28
29
30
31
32
33
# File 'lib/qi/store.rb', line 24

def call(src_cell, dst_cell, content)
  h = contents
  h.delete(src_cell)
  deleted_content = h.delete(dst_cell)
  h[dst_cell] = content

  new_store = self.class.new(cells.length, h)

  Result.new(new_store, deleted_content)
end