Sha256: ac48b85f822715420a705aa678e7b50c701a6e8cbbf75a339ad12bb50c2dba7e

Contents?: true

Size: 1.13 KB

Versions: 12

Compression:

Stored size: 1.13 KB

Contents

# frozen-string-literal: true

module Rodbot

  # Environment the bot is currently living in
  #
  # @note Use the +Rodbot.env+ shortcut to access these methods!
  class Env

    # Supported environments
    ENVS = %w(production development test).freeze

    # @return [Pathname] root directory
    attr_reader :root

    # @return [Pathname] root directory
    attr_reader :tmp

    # @return [Pathname] gem root directory
    attr_reader :gem

    # @return [String] current environment - any of {ENVS}
    attr_reader :current

    # @param root [Pathname, String] root path (default: current directory)
    def initialize(root: nil)
      @root = root ? Pathname(root).realpath : Pathname.pwd
      @tmp = @root.join('tmp')
      @gem = Pathname(__dir__).join('..', '..').realpath
      @current = ENV['RODBOT_ENV']
      @current = 'development' unless ENVS.include? @current
    end

    # @!method production?
    # @!method development?
    # @!method test?
    #
    # Inquire the env based on RODBOT_ENV
    #
    # @return [Boolean]
    ENVS.each do |env|
      define_method "#{env}?" do
        env == current
      end
    end

  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
rodbot-0.4.3 lib/rodbot/env.rb
rodbot-0.4.2 lib/rodbot/env.rb
rodbot-0.4.1 lib/rodbot/env.rb
rodbot-0.4.0 lib/rodbot/env.rb
rodbot-0.3.4 lib/rodbot/env.rb
rodbot-0.3.3 lib/rodbot/env.rb
rodbot-0.3.2 lib/rodbot/env.rb
rodbot-0.3.1 lib/rodbot/env.rb
rodbot-0.3.0 lib/rodbot/env.rb
rodbot-0.2.0 lib/rodbot/env.rb
rodbot-0.1.1 lib/rodbot/env.rb
rodbot-0.1.0 lib/rodbot/env.rb