Class: ROTP::CLI
- Inherits:
-
Object
- Object
- ROTP::CLI
- Defined in:
- lib/rotp/cli.rb
Instance Attribute Summary collapse
-
#argv ⇒ Object
readonly
Returns the value of attribute argv.
-
#filename ⇒ Object
readonly
Returns the value of attribute filename.
Instance Method Summary collapse
- #arguments ⇒ Object
- #errors ⇒ Object
-
#initialize(filename, argv) ⇒ CLI
constructor
A new instance of CLI.
- #options ⇒ Object
- #output ⇒ Object
- #red(string) ⇒ Object
- #run ⇒ Object
Constructor Details
#initialize(filename, argv) ⇒ CLI
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
#argv ⇒ Object (readonly)
Returns the value of attribute argv.
5 6 7 |
# File 'lib/rotp/cli.rb', line 5 def argv @argv end |
#filename ⇒ Object (readonly)
Returns the value of attribute filename.
5 6 7 |
# File 'lib/rotp/cli.rb', line 5 def filename @filename end |
Instance Method Details
#arguments ⇒ Object
43 44 45 |
# File 'lib/rotp/cli.rb', line 43 def arguments @arguments ||= ROTP::Arguments.new(filename, argv) end |
#errors ⇒ Object
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 |
#options ⇒ Object
47 48 49 |
# File 'lib/rotp/cli.rb', line 47 def arguments. end |
#output ⇒ Object
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 |
#red(string) ⇒ Object
51 52 53 |
# File 'lib/rotp/cli.rb', line 51 def red(string) "\033[31m#{string}\033[0m" end |
#run ⇒ Object
12 13 14 |
# File 'lib/rotp/cli.rb', line 12 def run puts output end |