Sha256: 069d6d58f73055a115a4a46d1428acb97a3f6aa58306467532623d6e728c73dc

Contents?: true

Size: 1.46 KB

Versions: 15

Compression:

Stored size: 1.46 KB

Contents

# frozen_string_literal: true

require "metanorma/cli/ui"

module Metanorma
  class Flavor
    SUPPORTED_GEMS = [
      "metanorma-iso",
      "metanorma-iec",
      "metanorma-ieee",
      "metanorma-ietf",
      "metanorma-bipm",
      "metanorma-cc",
      "metanorma-csa",
      "metanorma-iho",
      "metanorma-jis",
      # "metanorma-m3aawg", 
      "metanorma-generic",
      "metanorma-standoc",
      "metanorma-un",
      "metanorma-ogc",
      "metanorma-itu",
    ].freeze

    PRIVATE_SUPPORTED_GEMS = [
      "metanorma-ribose",
      # "metanorma-mpfa",
      "metanorma-nist",
    ].freeze

    def self.activate
      new.activate
    end

    def self.load_flavors
      new.load_flavors
    end

    def activate
      flavors.each do |flavor_name|
        gem(flavor_name)
      rescue LoadError, MissingSpecError => _e
        Metanorma::Cli::UI.debug("#{flavor_name} is not present!")
      end
    end

    def load_flavors
      flavors.each do |flavor_name|
        require(flavor_name)
      rescue LoadError => _e
        gem_loading_error(flavor_name)
      end
    end

    private

    def flavors
      @flavors ||= [SUPPORTED_GEMS + PRIVATE_SUPPORTED_GEMS].flatten.uniq
    end

    def gem_loading_error(flavor_name)
      unless PRIVATE_SUPPORTED_GEMS.include?(flavor_name)
        Metanorma::Cli::UI.error(
          "[metanorma] Error: flavor gem #{flavor_name} not present",
        )
      end
    end
  end
end

# Activate flavors
Metanorma::Flavor.activate

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
metanorma-cli-1.10.5 lib/metanorma/flavor.rb
metanorma-cli-1.10.3 lib/metanorma/flavor.rb
metanorma-cli-1.10.2 lib/metanorma/flavor.rb
metanorma-cli-1.10.1 lib/metanorma/flavor.rb
metanorma-cli-1.10.0 lib/metanorma/flavor.rb
metanorma-cli-1.9.7 lib/metanorma/flavor.rb
metanorma-cli-1.9.6 lib/metanorma/flavor.rb
metanorma-cli-1.9.5 lib/metanorma/flavor.rb
metanorma-cli-1.9.4 lib/metanorma/flavor.rb
metanorma-cli-1.9.3 lib/metanorma/flavor.rb
metanorma-cli-1.9.2 lib/metanorma/flavor.rb
metanorma-cli-1.9.1 lib/metanorma/flavor.rb
metanorma-cli-1.9.0 lib/metanorma/flavor.rb
metanorma-cli-1.8.11 lib/metanorma/flavor.rb
metanorma-cli-1.8.10 lib/metanorma/flavor.rb