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