class OtpCli::OTP
Attributes
issuer[R]
name[R]
Public Class Methods
get(line)
click to toggle source
# File lib/otp-cli/otp.rb, line 11 def self.get(line) uri = URI line type = uri.host.to_sym name = uri.path.sub %r{^/}, '' query = CGI.parse uri.query secret = query['secret'].first issuer = query['issuer'].first algorithm = query['algorithm'].first || 'sha1' digits = numeric_value query, 'digits', 6 counter = numeric_value query, 'counter' period = numeric_value query, 'period', 30 case type when :hotp then HOTP.new line, name, secret, issuer, algorithm, digits, counter when :totp then TOTP.new line, name, secret, issuer, algorithm, digits, period end end
new(otp, line, name, secret, issuer=nil, algorithm='sha1', digits=6)
click to toggle source
# File lib/otp-cli/otp.rb, line 51 def initialize(otp, line, name, secret, issuer=nil, algorithm='sha1', digits=6) @otp = otp @line = line @name = name @secret = secret @issuer = issuer @algorithm = algorithm @digits = digits end
Private Class Methods
numeric_value(query, name, default_value = nil)
click to toggle source
# File lib/otp-cli/otp.rb, line 63 def self.numeric_value(query, name, default_value = nil) value = query[name].first return default_value if value.nil? value.to_i end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/otp-cli/otp.rb, line 45 def <=>(other) self.to_s.downcase <=> other.to_s.downcase end
qrcode() { |file| ... }
click to toggle source
# File lib/otp-cli/otp.rb, line 31 def qrcode ::Tempfile.open %w[qrcode .png] do |file| qrcode = RQRCode::QRCode.new @line IO.write file, qrcode.as_png yield file end end
to_s()
click to toggle source
# File lib/otp-cli/otp.rb, line 39 def to_s s = self.name.clone s << %{ (#{self.issuer})} unless self.issuer.nil? s end