Class: Lux::Environment

Inherits:
Object show all
Defined in:
lib/lux/environment/environment.rb

Instance Method Summary collapse

Constructor Details

#initialize(env_name) ⇒ Environment

Returns a new instance of Environment.



5
6
7
8
9
10
11
12
13
# File 'lib/lux/environment/environment.rb', line 5

def initialize env_name
  if env_name.empty?
    raise ArgumentError.new('RACK_ENV is not defined') # never default to "development", because it could be loaded as default in production
  elsif !ENVS.include?(env_name)
    raise ArgumentError.new('Unsupported environemt: %s (supported are %s)' % [env_name, ENVS])
  end

  @env_name = env_name
end

Instance Method Details

#==(what) ⇒ Object

Lux.env == :dev



82
83
84
85
# File 'lib/lux/environment/environment.rb', line 82

def == what
  return true if what.to_s == @env_name
  send '%s?' % what
end

#cache?Boolean

Returns:



55
56
57
# File 'lib/lux/environment/environment.rb', line 55

def cache?
  !no_cache?
end

#cli?Boolean

Returns:



51
52
53
# File 'lib/lux/environment/environment.rb', line 51

def cli?
  !web?
end

#development?Boolean Also known as: dev?

Returns:



15
16
17
# File 'lib/lux/environment/environment.rb', line 15

def development?
  @env_name != 'production'
end

#live?Boolean

Returns:



33
34
35
36
# File 'lib/lux/environment/environment.rb', line 33

def live?
  value = ENV['LUX_LIVE'] || Lux.die('ENV LUX_LIVE not defined')
  value == 'true'
end

#local?Boolean

Returns:



38
39
40
# File 'lib/lux/environment/environment.rb', line 38

def local?
  !live?
end

#no_cache?Boolean

Returns:



59
60
61
62
# File 'lib/lux/environment/environment.rb', line 59

def no_cache?
  @no_cache = ENV['LUX_ENV'].include?('c') if @no_cache.nil?
  @no_cache
end

#production?Boolean Also known as: prod?

Returns:



20
21
22
# File 'lib/lux/environment/environment.rb', line 20

def production?
  @env_name == 'production'
end

#rake?Boolean

Returns:



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

def rake?
  $0.end_with?('/rake')
end

#reload_code?Boolean

Returns:



69
70
71
72
# File 'lib/lux/environment/environment.rb', line 69

def reload_code?
  @reload_code = ENV['LUX_ENV'].include?('r') if @reload_code.nil?
  @reload_code
end

#screen_log?Boolean

Returns:



74
75
76
77
# File 'lib/lux/environment/environment.rb', line 74

def screen_log?
  @screen_log = ENV['LUX_ENV'].include?('l') if @screen_log.nil?
  @screen_log
end

#show_errors?Boolean

Returns:



64
65
66
67
# File 'lib/lux/environment/environment.rb', line 64

def show_errors?
  @show_errors = ENV['LUX_ENV'].include?('e') if @show_errors.nil?
  @show_errors
end

#test?Boolean

Returns:



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

def test?
  $0.end_with?('/rspec') || @env_name == 'test'
end

#to_sObject



87
88
89
# File 'lib/lux/environment/environment.rb', line 87

def to_s
  production? ? 'production' : 'development'
end

#web?Boolean

Returns:



42
43
44
45
46
47
48
49
# File 'lib/lux/environment/environment.rb', line 42

def web?
  if @env_web.nil?
    list = ObjectSpace.each_object(Class).map(&:to_s)
    @env_web = list.include?('#<Class:Rack::Server>') || list.include?('Puma::Launcher')
  end

  @env_web
end