class NetrcReader

Constants

Error
VERSION

Public Class Methods

new(path = nil) click to toggle source
# File lib/netrc_reader.rb, line 4
def initialize(path = nil)
  @path = netrc_file(path)
  @data = IO.readlines(@path)
end
read(path = nil) click to toggle source
# File lib/netrc_reader.rb, line 9
def self.read(path = nil)
  new(path)
end

Public Instance Methods

[](name) click to toggle source
# File lib/netrc_reader.rb, line 17
def [](name)
  Machine.new(name, config(name)) if machine_names.include?(name)
end
config(name) click to toggle source
# File lib/netrc_reader.rb, line 33
def config(name)
  @data.find { |l| l.match(/machine #{name} login.*/) }
end
config!(name) click to toggle source
# File lib/netrc_reader.rb, line 37
def config!(name)
  config(name) || fail(NetrcReader::Error, "#{name} was not found: #{@path}")
end
find!(name) click to toggle source
# File lib/netrc_reader.rb, line 21
def find!(name)
  Machine.new(name, config!(name))
end
home_path() click to toggle source
# File lib/netrc_reader.rb, line 29
def home_path
  Dir.respond_to?(:home) ? Dir.home : ENV['HOME']
end
machine_names() click to toggle source
# File lib/netrc_reader.rb, line 13
def machine_names
  @data.map { |l| l.match(/machine (.*) login.*/)[1] }
end
netrc_file(path = nil) click to toggle source
# File lib/netrc_reader.rb, line 25
def netrc_file(path = nil)
  File.expand_path(path || File.join(ENV['NETRC'] || home_path, '.netrc'))
end