class Oraora::Credentials
Attributes
database[RW]
password[RW]
user[RW]
Public Class Methods
new(user = nil, password = nil, database = nil)
click to toggle source
# File lib/oraora/credentials.rb, line 8 def initialize(user = nil, password = nil, database = nil) @user = user @password = password @database = database end
parse(str)
click to toggle source
# File lib/oraora/credentials.rb, line 29 def self.parse(str) if str match = str.match /^([^\/@]+)?\/?([^\/@]+)?@?([^\/@]+)?$/ raise ParseError, "invalid format (use login/pass@DB)" if !match user, password, database = match[1..3] raise ParseError, "user can only contain alphanumeric characters" if user && !user.match(/^\w+$/) raise ParseError, "database name can only contain alphanumeric characters" if database && !database.match(/^\w+$/) return new(user, password, database) else return new end end
read_passfile(filename)
click to toggle source
# File lib/oraora/credentials.rb, line 14 def self.read_passfile(filename) @@vault = [] ok = true File.open(filename, "r") do |infile| while (line = infile.gets) begin @@vault << parse(line.chomp) rescue ParseError ok = false end end end ok end
Public Instance Methods
eql?(c)
click to toggle source
# File lib/oraora/credentials.rb, line 56 def eql?(c) user == c.user && password == c.password && database == c.database end
fill_password_from_vault()
click to toggle source
# File lib/oraora/credentials.rb, line 42 def fill_password_from_vault entry = @@vault.detect { |e| match?(e) } @password = entry.password if entry && !@password self end
match?(c)
click to toggle source
# File lib/oraora/credentials.rb, line 60 def match?(c) user == c.user && database == c.database end
to_s()
click to toggle source
# File lib/oraora/credentials.rb, line 48 def to_s s = @user || '' s += '/' + @password if @password s = '/' if s == '' s += '@' + @database if @database s end