Module: Inquisitive::Environment

Includes:
Utils
Defined in:
lib/inquisitive/environment.rb

Defined Under Namespace

Modules: Parser

Instance Method Summary collapse

Instance Method Details

#inquires_about(env_var, opts = {}) ⇒ Object



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

#truthyObject



7
8
9
# File 'lib/inquisitive/environment.rb', line 7

def truthy
  /true|yes|1/i
end