Sha256: 86abf9fd268a16f4e27b2e5de828b6d75b86e8f74feb8ce5df283f81d7521e0c

Contents?: true

Size: 1.09 KB

Versions: 21

Compression:

Stored size: 1.09 KB

Contents

# typed: ignore
# frozen_string_literal: true

# Usually this class wouldn't be called directly, the environment can be managed
# via the DearInventory::Config class or one of it's sub-classes
module DearInventory
  class Environment
    class << self
      def production?
        to_sym == :production
      end

      def test?
        to_sym == :test
      end

      def to_sym
        @to_sym ||= set(default)
      end

      ENVIRONMENTS = %i[production test].freeze

      def set(value)
        return @to_sym = value if ENVIRONMENTS.include?(value)

        error_value = value.is_a?(Symbol) ? ":#{value}" : value.to_s
        raise(
          ArgumentError,
          "#{error_value} is not an acceptable environment; " \
            "please use either :production or :test"
        )
      end

      private

      def default
        return :test if ENV["ENV"] == "test"
        return rails if rails?

        :production
      end

      def rails?
        defined?(Rails)
      end

      def rails
        return :production if Rails.env.production?

        :test
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
dear_inventory-1.4.0 lib/dear_inventory/environment.rb
dear_inventory-1.3.0 lib/dear_inventory/environment.rb
dear_inventory-1.2.0 lib/dear_inventory/environment.rb
dear_inventory-1.1.1 lib/dear_inventory/environment.rb
dear_inventory-1.1.0 lib/dear_inventory/environment.rb
dear_inventory-1.0.0 lib/dear_inventory/environment.rb
dear_inventory-0.7.5 lib/dear_inventory/environment.rb
dear_inventory-0.7.4 lib/dear_inventory/environment.rb
dear_inventory-0.7.3 lib/dear_inventory/environment.rb
dear_inventory-0.7.2 lib/dear_inventory/environment.rb
dear_inventory-0.7.1 lib/dear_inventory/environment.rb
dear_inventory-0.7.0 lib/dear_inventory/environment.rb
dear_inventory-0.6.3 lib/dear_inventory/environment.rb
dear_inventory-0.6.2 lib/dear_inventory/environment.rb
dear_inventory-0.6.1 lib/dear_inventory/environment.rb
dear_inventory-0.6.0 lib/dear_inventory/environment.rb
dear_inventory-0.5.0 lib/dear_inventory/environment.rb
dear_inventory-0.4.1 lib/dear_inventory/environment.rb
dear_inventory-0.4.0 lib/dear_inventory/environment.rb
dear_inventory-0.3.0 lib/dear_inventory/environment.rb