module EnvSetting::Classes

Attributes

default_class[W]

Public Class Methods

Array(value, options) click to toggle source
# File lib/env_setting/classes.rb, line 27
def self.Array(value, options)
  item_options = options.merge(class: options.fetch(:of, default_class))
  value.split(',').map { |v| cast(v.strip, item_options) }
end
Hash(value, options) click to toggle source
# File lib/env_setting/classes.rb, line 32
def self.Hash(value, options)
  key_options   = options.merge(class: options.fetch(:keys, Symbol))
  value_options = options.merge(class: options.fetch(:of, default_class))
  {}.tap do |h|
    value.split(',').each do |pair|
      key, value = pair.split(':')
      h[cast(key.strip, key_options)] = cast(value.strip, value_options)
    end
  end
end
StringUnlessFalsey(value, options) click to toggle source
# File lib/env_setting/classes.rb, line 47
def self.StringUnlessFalsey(value, options)
  boolean(value, options) && value
end
Symbol(value, options) click to toggle source
# File lib/env_setting/classes.rb, line 43
def self.Symbol(value, options)
  value.to_sym
end
boolean(value, options) click to toggle source
# File lib/env_setting/classes.rb, line 23
def self.boolean(value, options)
  !(value =~ default_falsey_regex)
end
cast(value, options = {}) click to toggle source
# File lib/env_setting/classes.rb, line 19
def self.cast(value, options = {})
  public_send(:"#{options.fetch(:class, default_class)}", value, options)
end
default_class() click to toggle source
# File lib/env_setting/classes.rb, line 7
def self.default_class
  @@default_class ||= :StringUnlessFalsey
end
default_falsey_regex() click to toggle source
# File lib/env_setting/classes.rb, line 11
def self.default_falsey_regex
  @@default_falsey_regex ||= /^(|0|disabled?|false|no|off)$/i
end
default_falsey_regex=(regex) click to toggle source
# File lib/env_setting/classes.rb, line 15
def self.default_falsey_regex=(regex)
  @@default_falsey_regex = regex
end
method_missing(klass, value, options = {}, &block) click to toggle source

Delegate methods like Integer(), Float(), String(), etc. to the Kernel module

# File lib/env_setting/classes.rb, line 56
def self.method_missing(klass, value, options = {}, &block)
  Kernel.send(klass, value)
end
respond_to?(method_sym) click to toggle source
Calls superclass method
# File lib/env_setting/classes.rb, line 51
def self.respond_to?(method_sym)
  Kernel.respond_to?(method_sym) || super
end