Class: AppEnv

Inherits:
Object
  • Object
show all
Defined in:
lib/app_env.rb,
lib/app_env/version.rb

Constant Summary collapse

VERSION =
"0.0.1"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(env_vars = ENV, accessors: %i[development test production]) ⇒ AppEnv

Returns a new instance of AppEnv.



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/app_env.rb', line 8

def initialize(env_vars = ENV, accessors: %i[development test production])
  @env = env_vars["APP_ENV"] ||
         env_vars["RACK_ENV"] ||
         env_vars["RAILS_ENV"] ||
         "development"

  accessors.each do |accessor|
    define_singleton_method("#{accessor}?") do
      self == accessor
    end
  end
end

Instance Attribute Details

#envObject (readonly)

Returns the value of attribute env.



6
7
8
# File 'lib/app_env.rb', line 6

def env
  @env
end

Instance Method Details

#==(other) ⇒ Object



21
22
23
# File 'lib/app_env.rb', line 21

def ==(other)
  env == other.to_s
end

#on(expected_env) ⇒ Object



29
30
31
# File 'lib/app_env.rb', line 29

def on(expected_env)
  yield if self == expected_env || expected_env == :any # rubocop:disable Style/MultipleComparison
end

#to_sObject



25
26
27
# File 'lib/app_env.rb', line 25

def to_s
  env
end