Sha256: 72e5aa847904c0455e1bdfd4eb7a23c3427bec8f07b44b398cfdf239e94b5189

Contents?: true

Size: 1.09 KB

Versions: 15

Compression:

Stored size: 1.09 KB

Contents

require_relative 'convertible/heading'
require_relative 'convertible/parsing'
require_relative 'convertible/inputable'
module Eco::API::UseCases::GraphQL::Samples::Location::Service
  module TreeDiff
    # Offers a way to convert the values and keys/headers
    # of the input csv file/rows
    module Convertible
      class << self
        def included(base)
          super
          base.send :include, Inputable
        end
      end

      include Parsing
      include Heading

      private

      def input_csv
        @input_csv ||= Eco::CSV.read(input_file, encoding: input_encoding).then do |csv|
          next csv unless header_maps&.any?

          csv.transform_headers do |name|
            next name unless header_maps.key?(name)

            header_maps[name]
          end
        end.then do |csv|
          transform_input_csv(csv).tap do |res|
            next if res.is_a?(Eco::CSV::Table)

            msg = "Expecting and Eco::CSV::Table. Given: #{res.class}"
            raise ArgumentError, msg
          end
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
eco-helpers-3.0.21 lib/eco/api/usecases/graphql/samples/location/service/tree_diff/convertible.rb
eco-helpers-3.0.20 lib/eco/api/usecases/graphql/samples/location/service/tree_diff/convertible.rb
eco-helpers-3.0.19 lib/eco/api/usecases/graphql/samples/location/service/tree_diff/convertible.rb
eco-helpers-3.0.18 lib/eco/api/usecases/graphql/samples/location/service/tree_diff/convertible.rb
eco-helpers-3.0.17 lib/eco/api/usecases/graphql/samples/location/service/tree_diff/convertible.rb
eco-helpers-3.0.16 lib/eco/api/usecases/graphql/samples/location/service/tree_diff/convertible.rb
eco-helpers-3.0.15 lib/eco/api/usecases/graphql/samples/location/service/tree_diff/convertible.rb
eco-helpers-3.0.14 lib/eco/api/usecases/graphql/samples/location/service/tree_diff/convertible.rb
eco-helpers-3.0.13 lib/eco/api/usecases/graphql/samples/location/service/tree_diff/convertible.rb
eco-helpers-3.0.12 lib/eco/api/usecases/graphql/samples/location/service/tree_diff/convertible.rb
eco-helpers-3.0.11 lib/eco/api/usecases/graphql/samples/location/service/tree_diff/convertible.rb
eco-helpers-3.0.10 lib/eco/api/usecases/graphql/samples/location/service/tree_diff/convertible.rb
eco-helpers-3.0.9 lib/eco/api/usecases/graphql/samples/location/service/tree_diff/convertible.rb
eco-helpers-3.0.8 lib/eco/api/usecases/graphql/samples/location/service/tree_diff/convertible.rb
eco-helpers-3.0.7 lib/eco/api/usecases/graphql/samples/location/service/tree_diff/convertible.rb