CartoDB/cartodb20

View on GitHub
lib/carto/connector/providers.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Carto
  class Connector
    PROVIDERS = []

    DEFAULT_PROVIDER = nil # No default provider

    class << self
      def provider_class(provider_id)
        provider_data provider_id
      end

      def provider_public?(provider_id)
        provider_item provider_id, :public?
      end

      def provider_name(provider_id)
        provider_item provider_id, :friendly_name
      end

      def provider_ids
        PROVIDERS.map &:provider_id
      end

      private

      def provider_data(provider_id)
        provider_id ||= DEFAULT_PROVIDER
        PROVIDERS.find{|p| p.provider_id == provider_id}
      end

      def provider_item(provider_id, item)
        data = provider_data(provider_id)
        data&.send item.to_sym
      end
    end

  end
end