class HomeDotenv
USAGE: HomeDotenv.parse
Public Class Methods
parse(filename = nil)
click to toggle source
With a ~/.env
SECRET_KEY=so-secret-really
HOME_ENV = HomeDotenv.parse
puts HOME_ENV
# File lib/home-dotenv.rb, line 10 def self.parse(filename = nil) parsed_from_file(filename).merge(parsed_from_env) end
Private Class Methods
parse_line(line)
click to toggle source
# File lib/home-dotenv.rb, line 34 def parse_line(line) key = line.split('=').first.to_sym value = line.split('=')[1..-1].join('=') [key, value] end
parsed_from_env()
click to toggle source
# File lib/home-dotenv.rb, line 17 def parsed_from_env Hash[*ENV.map { |k, v| [k.to_sym, v]}.flatten] end
parsed_from_file(filename)
click to toggle source
# File lib/home-dotenv.rb, line 21 def parsed_from_file(filename) Hash[*read_lines(filename).map { |l| parse_line(l) }.flatten] end
read_lines(filename = nil)
click to toggle source
# File lib/home-dotenv.rb, line 25 def read_lines(filename = nil) filename ||= Dir.home + '/.env' lines = File.read(filename).split("\n") lines.reject!(&:empty?) lines.reject! { |l| l[0] == '#' } lines.reject! { |l| !l.include?('=') || l.split('=').first.to_s == '' } lines end