class Spokes::Config::Env
Public Class Methods
load(&blk)
click to toggle source
# File lib/spokes/config/env.rb, line 4 def self.load(&blk) new(&blk) end
new(&blk)
click to toggle source
# File lib/spokes/config/env.rb, line 8 def initialize(&blk) instance_eval(&blk) end
Public Instance Methods
array()
click to toggle source
# File lib/spokes/config/env.rb, line 27 def array ->(v) { v.nil? ? [] : v.split(',') } end
bool()
click to toggle source
# File lib/spokes/config/env.rb, line 39 def bool ->(v) { v.to_s == 'true' } end
default(name, default, method = nil)
click to toggle source
# File lib/spokes/config/env.rb, line 22 def default(name, default, method = nil) value = cast(ENV.fetch(name.to_s.upcase, default), method) create(name, value) end
float()
click to toggle source
# File lib/spokes/config/env.rb, line 35 def float ->(v) { v.to_f } end
int()
click to toggle source
# File lib/spokes/config/env.rb, line 31 def int ->(v) { v.to_i } end
mandatory(name, method = nil)
click to toggle source
# File lib/spokes/config/env.rb, line 12 def mandatory(name, method = nil) value = cast(ENV.fetch(name.to_s.upcase), method) create(name, value) end
optional(name, method = nil)
click to toggle source
# File lib/spokes/config/env.rb, line 17 def optional(name, method = nil) value = cast(ENV[name.to_s.upcase], method) create(name, value) end
string()
click to toggle source
# File lib/spokes/config/env.rb, line 43 def string nil end
symbol()
click to toggle source
# File lib/spokes/config/env.rb, line 47 def symbol ->(v) { v.nil? ? nil : v.to_sym } end
Private Instance Methods
cast(value, method)
click to toggle source
# File lib/spokes/config/env.rb, line 53 def cast(value, method) method ? method.call(value) : value end
create(name, value)
click to toggle source
# File lib/spokes/config/env.rb, line 57 def create(name, value) instance_variable_set(:"@#{name}", value) instance_eval "def #{name}; @#{name} end", __FILE__, __LINE__ return unless value.is_a?(TrueClass) || value.is_a?(FalseClass) || value.is_a?(NilClass) instance_eval "def #{name}?; !!@#{name} end", __FILE__, __LINE__ end