Class: Eco::API::UseCases::OozeSamples::Helpers::ExportableRegister
- Includes:
- OozeHandlers, Enumerable
- Defined in:
- lib/eco/api/usecases/ooze_samples/helpers/exportable_register.rb
Overview
Class to ease the export process
Instance Attribute Summary collapse
-
#options ⇒ Object
readonly
Returns the value of attribute options.
Instance Method Summary collapse
- #add_ooze(ooze) ⇒ Object
- #each(as_values: true, as_row: false, &block) ⇒ Object
- #empty? ⇒ Boolean
- #header(refresh: false) ⇒ Object
-
#initialize(**options) ⇒ ExportableRegister
constructor
A new instance of ExportableRegister.
Methods included from OozeHandlers
#array_indexes, #merge_arrays, #merge_values
Constructor Details
#initialize(**options) ⇒ ExportableRegister
Returns a new instance of ExportableRegister.
13 14 15 16 17 18 19 20 |
# File 'lib/eco/api/usecases/ooze_samples/helpers/exportable_register.rb', line 13 def initialize(**) @options = .merge({ delimiter: "\n", only_indexed: true, only_labeled: true, only_with_ref: true }) end |
Instance Attribute Details
#options ⇒ Object (readonly)
Returns the value of attribute options.
8 9 10 |
# File 'lib/eco/api/usecases/ooze_samples/helpers/exportable_register.rb', line 8 def @options end |
Instance Method Details
#add_ooze(ooze) ⇒ Object
22 23 24 25 26 27 |
# File 'lib/eco/api/usecases/ooze_samples/helpers/exportable_register.rb', line 22 def add_ooze(ooze) ooz = ExportableOoze.new(ooze, **) data = ooz.key_typed_data @typed_header = merge_arrays(data.keys, typed_header) key_typed_data << data end |
#each(as_values: true, as_row: false, &block) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/eco/api/usecases/ooze_samples/helpers/exportable_register.rb', line 33 def each(as_values: true, as_row: false, &block) return to_enum(:each, as_values: as_values, as_row: as_row) unless block key_typed_data.each do |ooze_data| values = ooze_data.values_at(*typed_header) if as_values values elsif as_row ::CSV::Row.new(values, header) else header.zip(values) end.tap(&block) end end |
#empty? ⇒ Boolean
29 30 31 |
# File 'lib/eco/api/usecases/ooze_samples/helpers/exportable_register.rb', line 29 def empty? count < 1 end |
#header(refresh: false) ⇒ Object
49 50 51 52 53 54 |
# File 'lib/eco/api/usecases/ooze_samples/helpers/exportable_register.rb', line 49 def header(refresh: false) return @header if instance_variable_defined?(:@header) && !refresh @header = typed_header.map do |name| ExportableOoze.key_to_label(name) end end |