Sha256: 9841575c62385c26bf87e7db2f3d64afdb53224b8b5dc847a08129b71a1bdba3

Contents?: true

Size: 1.46 KB

Versions: 24

Compression:

Stored size: 1.46 KB

Contents

# require "eitil_integrate/application_exporter/lookups"

require "eitil_integrate/application_exporter/initialize"
require "eitil_support/directory"

module EitilIntegrate::RubyXL
  class ApplicationExporter

    class << self

      def exporter_paths
        EitilSupport::Directory.files('app/exporters/exporters').select { |path| path.end_with? '_exporter.rb' }
      end

      def exporter_names
        exporter_paths.map { |path| path.split('/').last.remove('.rb').camelcase }
      end

      def exporter_constants
        exporter_names.map &:constantize
      end

      def exporter_infos
        exporter_constants.map { |_c| { "#{_c.to_s.remove("Exporter")}": _c.info || {} } }.inject &:merge
      end
      
      def exporter_info(exporter, info)
        exporter_infos[exporter]&.dig(info)
      end

      # returns the exporter_infos, without the datatypes – for taxonomy purpuses, the field
      # names are often sufficient
      def exporter_taxonomy        
        parameter_fields = exporter_infos.transform_values { |v| v.select { |k,v| k == :required || k == :optional } }

        parameter_fields.transform_values do |setting_collection|        
          setting_collection.transform_values do |setting|
            setting.map { |key| key.is_a?(Hash) ? key.keys : key }.flatten
          end
        end
      end

      def exporter_params
        exporter_infos.transform_values { |v| [v[:required], v[:optional]].flatten.compact }
      end

    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
eitil-2.0.0 eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb
eitil-1.4.1 eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb
eitil-1.4.0 eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb
eitil-1.3.12 eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb
eitil-1.3.11 eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb
eitil-1.3.10 eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb
eitil-1.3.9 eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb
eitil-1.3.8 eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb
eitil-1.3.7 eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb
eitil-1.3.6 eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb
eitil-1.3.5 eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb
eitil-1.3.4 eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb
eitil-1.3.3 eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb
eitil-1.3.2 eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb
eitil-1.3.1 eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb
eitil-1.3.0 eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb
eitil-1.2.4 eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb
eitil-1.2.3 eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb
eitil-1.2.2 eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb
eitil-1.2.1 eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb