Class: ROTP::CLI
- Inherits:
-
Object
- Object
- ROTP::CLI
- Defined in:
- lib/rotp/cli.rb
Instance Attribute Summary (collapse)
-
- (Object) argv
readonly
Returns the value of attribute argv.
-
- (Object) filename
readonly
Returns the value of attribute filename.
Instance Method Summary (collapse)
- - (Object) arguments
- - (Object) errors
-
- (CLI) initialize(filename, argv)
constructor
A new instance of CLI.
- - (Object) options
- - (Object) output
- - (Object) red(string)
- - (Object) run
Constructor Details
- (CLI) initialize(filename, argv)
Returns a new instance of CLI
7 8 9 10 |
# File 'lib/rotp/cli.rb', line 7 def initialize(filename, argv) @filename = filename @argv = argv end |
Instance Attribute Details
- (Object) argv (readonly)
Returns the value of attribute argv
5 6 7 |
# File 'lib/rotp/cli.rb', line 5 def argv @argv end |
- (Object) filename (readonly)
Returns the value of attribute filename
5 6 7 |
# File 'lib/rotp/cli.rb', line 5 def filename @filename end |
Instance Method Details
- (Object) arguments
43 44 45 |
# File 'lib/rotp/cli.rb', line 43 def arguments @arguments ||= ROTP::Arguments.new(filename, argv) end |
- (Object) errors
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/rotp/cli.rb', line 16 def errors if [:time, :hmac].include?(.mode) if .secret.to_s == '' red 'You must also specify a --secret. Try --help for help.' elsif .secret.to_s.chars.any? { |c| ROTP::Base32::CHARS.index(c.downcase) == nil } red 'Secret must be in RFC4648 Base32 format - http://en.wikipedia.org/wiki/Base32#RFC_4648_Base32_alphabet' end elsif .mode == :hmac && .counter.to_i < 0 red 'You must also specify a --counter. Try --help for help.' end end |
- (Object) options
47 48 49 |
# File 'lib/rotp/cli.rb', line 47 def arguments. end |
- (Object) output
28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/rotp/cli.rb', line 28 def output return .warnings if .warnings return errors if errors return arguments.to_s if .mode == :help if .mode == :time ROTP::TOTP.new(.secret).now elsif .mode == :hmac ROTP::HOTP.new(.secret).at .counter else fail NotImplementedError end end |
- (Object) red(string)
51 52 53 |
# File 'lib/rotp/cli.rb', line 51 def red(string) "\033[31m#{string}\033[0m" end |
- (Object) run
12 13 14 |
# File 'lib/rotp/cli.rb', line 12 def run puts output end |