Module: Envee

Defined in:
lib/envee.rb,
lib/envee/version.rb

Overview

Version

Defined Under Namespace

Classes: MissingValueError, MissingValuesError, UncoercibleError

Constant Summary collapse

VERSION =
'0.0.4'

Instance Method Summary collapse

Instance Method Details

#bool(*args, &block) ⇒ Object



60
61
62
63
64
65
66
# File 'lib/envee.rb', line 60

def bool(*args, &block)
  value = fetch(*args, &block)

  value && value !~ /\A(0|no|false|off|nil|null|)\z/i
rescue KeyError
  raise MissingValueError.new(args.first)
end

#fl(*args, &block) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/envee.rb', line 36

def fl(*args, &block)
  Float(fetch(*args, &block))
rescue ArgumentError
  raise UncoercibleError.new(args.first, 'Float')
rescue KeyError
  raise MissingValueError.new(args.first)
end

#int(*args, &block) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/envee.rb', line 28

def int(*args, &block)
  Integer(fetch(*args, &block))
rescue ArgumentError
  raise UncoercibleError.new(args.first, 'Integer')
rescue KeyError
  raise MissingValueError.new(args.first)
end

#int_time(*args, &block) ⇒ Object



78
79
80
81
82
83
84
85
86
# File 'lib/envee.rb', line 78

def int_time(*args, &block)
  value = Integer(fetch(*args, &block))
  return value if value.is_a?(Time)
  Time.at(value).utc
rescue ArgumentError
  raise UncoercibleError.new(args.first, 'Integer')
rescue KeyError
  raise MissingValueError.new(args.first)
end

#str(*args, &block) ⇒ Object



44
45
46
47
48
49
50
# File 'lib/envee.rb', line 44

def str(*args, &block)
  String(fetch(*args, &block))
rescue ArgumentError
  raise UncoercibleError.new(args.first, 'String')
rescue KeyError
  raise MissingValueError.new(args.first)
end

#sym(*args, &block) ⇒ Object



52
53
54
55
56
57
58
# File 'lib/envee.rb', line 52

def sym(*args, &block)
  String(fetch(*args, &block)).to_sym
rescue ArgumentError
  raise UncoercibleError.new(args.first, 'Symbol')
rescue KeyError
  raise MissingValueError.new(args.first)
end

#time(*args, &block) ⇒ Object



68
69
70
71
72
73
74
75
76
# File 'lib/envee.rb', line 68

def time(*args, &block)
  value = fetch(*args, &block)
  return value if value.is_a?(Time)
  Time.parse(value).utc
rescue ArgumentError
  raise UncoercibleError.new(args.first, 'Time')
rescue KeyError
  raise MissingValueError.new(args.first)
end

#validate!(options = {}) ⇒ Object

Raises:



88
89
90
91
92
# File 'lib/envee.rb', line 88

def validate!(options = {})
  missing = options[:placeholder] || 'CHANGEME'
  missing_keys = select{|_k, v| v.include?(missing)}.map(&:first)
  raise MissingValuesError, missing_keys unless missing_keys.empty?
end