11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/inquisitive/environment.rb', line 11
def inquires_about(env_var, opts={})
env_accessor = opts.fetch(:with, env_var.downcase[/(.*?)(?=(?:_$|$))/]).to_sym
env_presence = :"#{env_accessor}?"
env_default = opts[:default]
present_if = opts[:present_if]
define_singleton_method env_presence do |opts={with_default: true}|
!!(opts[:with_default] and env_default) || if present_if
present_if === Inquisitive[Parser[env_var]]
else
Inquisitive.present? Inquisitive[Parser[env_var]]
end
end
define_singleton_method env_accessor do
Inquisitive[
if send env_presence, with_default: false
Parser[env_var]
else
env_default
end
]
end
end
|