Class: Eco::API::UseCases::OozeSamples::Helpers::ExportableRegister
- Inherits:
-
Object
- Object
- 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.
14 15 16 17 18 19 20 21 |
# File 'lib/eco/api/usecases/ooze_samples/helpers/exportable_register.rb', line 14 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.
9 10 11 |
# File 'lib/eco/api/usecases/ooze_samples/helpers/exportable_register.rb', line 9 def @options end |
Instance Method Details
#add_ooze(ooze) ⇒ Object
23 24 25 26 27 28 |
# File 'lib/eco/api/usecases/ooze_samples/helpers/exportable_register.rb', line 23 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
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/eco/api/usecases/ooze_samples/helpers/exportable_register.rb', line 34 def each(as_values: true, as_row: false, &block) return to_enum(:each, as_row: as_row) unless block key_typed_data.each do |ooze_data| values = ooze_data.values_at(*typed_header) case when as_values values when as_row ::CSV::Row.new(values, header) else header.zip(values) end.tap do |out| yield(out) end end end |
#empty? ⇒ Boolean
30 31 32 |
# File 'lib/eco/api/usecases/ooze_samples/helpers/exportable_register.rb', line 30 def empty? count < 1 end |
#header(refresh: false) ⇒ Object
51 52 53 54 55 56 |
# File 'lib/eco/api/usecases/ooze_samples/helpers/exportable_register.rb', line 51 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 |