Module: Eco::Data::Locations::NodeBase::Builder
- Includes:
- CsvConvert, Parsing, Serial, Treeify
- Included in:
- Eco::Data::Locations::NodeBase
- Defined in:
- lib/eco/data/locations/node_base/builder.rb
Instance Attribute Summary
Attributes included from Language::AuxiliarLogger
Instance Method Summary collapse
-
#node_class(data) ⇒ NodeBase::Class
The Node class we can use.
Methods included from Treeify
Methods included from Language::AuxiliarLogger
Methods included from CsvConvert
#csv_list, #csv_tree, #hash_list, #hash_tree, #org_tree, #tree_class
Methods included from Parsing
#csv_nodes_from, #hash_tree_from_csv, #nodes_from_csv
Methods included from Convert
#csv_from, #empty_array, #empty_level_tracker_hash, #hash_tree_to_tree_csv, #log_pretty_inspect, #normalize_arrays, #report_repeated_node_ids
Methods included from Serial
#nodes_to_csv_list, #nodes_to_csv_tree, #serializer
Instance Method Details
#node_class(data) ⇒ NodeBase::Class
Returns the Node class we can use.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/eco/data/locations/node_base/builder.rb', line 10 def node_class(data) case data when ::CSV::Table return Eco::Data::Locations::NodePlain if Eco::Data::Locations::NodePlain.csv_matches_format?(csv) return Eco::Data::Locations::NodeLevel if Eco::Data::Locations::NodeLevel.csv_matches_format?(csv) when Array return nil unless sample = data.first node_class(sample) when Eco::Data::Locations::NodeBase return nil unless data.class < Eco::Data::Locations::NodeBase data.class else raise ArgumentError, "Expecting CSV::Table. Given: #{csv.class}" unless csv.is_a?(::CSV::Table) end end |