Class: Decidim::Env
- Inherits:
-
Object
- Object
- Decidim::Env
- Defined in:
- lib/decidim/env.rb
Overview
This class can be used to parse ENV variables to a set of predefined values For instance, “”, nil, “false” or 0 will all translate into false using valid?
Constant Summary collapse
- FALSE_VALUES =
%w(0 false no).freeze
Instance Method Summary collapse
- #blank? ⇒ Boolean
- #default_or_present_if_exists ⇒ Object
-
#initialize(name, default = nil) ⇒ Env
constructor
A new instance of Env.
-
#present? ⇒ Boolean
rubocop:disable Rails/Present.
- #to_array(separator: ",") ⇒ Object
-
#to_boolean_string ⇒ Object
rubocop:enable Rails/Present.
- #to_f ⇒ Object
- #to_i ⇒ Object
- #value ⇒ Object
Constructor Details
#initialize(name, default = nil) ⇒ Env
Returns a new instance of Env.
9 10 11 12 13 |
# File 'lib/decidim/env.rb', line 9 def initialize(name, default = nil) @name = name @value = ENV.fetch(name, nil) @default = default end |
Instance Method Details
#blank? ⇒ Boolean
21 22 23 |
# File 'lib/decidim/env.rb', line 21 def blank? value.blank? || FALSE_VALUES.include?(value.to_s.downcase) end |
#default_or_present_if_exists ⇒ Object
45 46 47 48 49 |
# File 'lib/decidim/env.rb', line 45 def default_or_present_if_exists return @default unless ENV.has_key?(@name) @value.present? && FALSE_VALUES.exclude?(@value.to_s.downcase) end |
#present? ⇒ Boolean
rubocop:disable Rails/Present
26 27 28 |
# File 'lib/decidim/env.rb', line 26 def present? !blank? end |
#to_array(separator: ",") ⇒ Object
51 52 53 54 |
# File 'lib/decidim/env.rb', line 51 def to_array(separator: ",") str = blank? ? @default : value str.to_s.split(separator).map(&:strip) end |
#to_boolean_string ⇒ Object
rubocop:enable Rails/Present
31 32 33 |
# File 'lib/decidim/env.rb', line 31 def to_boolean_string present?.to_s end |
#to_f ⇒ Object
40 41 42 43 |
# File 'lib/decidim/env.rb', line 40 def to_f str = blank? ? @default : value str.to_s.to_f end |
#to_i ⇒ Object
35 36 37 38 |
# File 'lib/decidim/env.rb', line 35 def to_i str = blank? ? @default : value str.to_s.to_i end |
#value ⇒ Object
15 16 17 |
# File 'lib/decidim/env.rb', line 15 def value @value.presence || @default end |