Class: MetadataPresenter::Grid

Inherits:
Object
  • Object
show all
Defined in:
app/models/metadata_presenter/grid.rb

Constant Summary collapse

ROW_ZERO =
0

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(service, start_from: nil, main_flow: []) ⇒ Grid

Returns a new instance of Grid.



17
18
19
20
21
22
23
24
25
# File 'app/models/metadata_presenter/grid.rb', line 17

def initialize(service, start_from: nil, main_flow: [])
  @service = service
  @start_from = start_from
  @main_flow = main_flow
  @ordered = []
  @routes = []
  @traversed = []
  @coordinates = setup_coordinates
end

Instance Attribute Details

#start_fromObject (readonly)

Returns the value of attribute start_from.



15
16
17
# File 'app/models/metadata_presenter/grid.rb', line 15

def start_from
  @start_from
end

Instance Method Details

#buildObject



29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'app/models/metadata_presenter/grid.rb', line 29

def build
  return @ordered unless @ordered.empty?

  @ordered = make_grid
  add_columns
  add_rows
  add_by_coordinates
  insert_expression_spacers
  trim_pointers unless main_flow.empty?
  trim_spacers

  @ordered = @ordered.reject(&:empty?)
end

#flow_uuidsObject



52
53
54
# File 'app/models/metadata_presenter/grid.rb', line 52

def flow_uuids
  ordered_flow.map(&:uuid)
end

#ordered_flowObject



43
44
45
46
# File 'app/models/metadata_presenter/grid.rb', line 43

def ordered_flow
  @ordered_flow ||=
    build.flatten.reject { |obj| obj.is_a?(MetadataPresenter::Spacer) }
end

#ordered_pagesObject



48
49
50
# File 'app/models/metadata_presenter/grid.rb', line 48

def ordered_pages
  @ordered_pages ||= ordered_flow.reject(&:branch?)
end

#page_uuidsObject



56
57
58
# File 'app/models/metadata_presenter/grid.rb', line 56

def page_uuids
  ordered_pages.map(&:uuid)
end