ronin 1.4.0.rc1 → 1.4.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. data/ChangeLog.md +21 -0
  2. data/Gemfile +4 -0
  3. data/README.md +1 -1
  4. data/bin/ronin-ips +1 -1
  5. data/bin/ronin-urls +1 -1
  6. data/bin/ronin-wordlist +25 -0
  7. data/gemspec.yml +2 -2
  8. data/lib/bond/completions/ronin.rb +1 -1
  9. data/lib/ronin.rb +1 -1
  10. data/lib/ronin/address.rb +1 -1
  11. data/lib/ronin/arch.rb +1 -1
  12. data/lib/ronin/author.rb +1 -1
  13. data/lib/ronin/auto_load.rb +1 -1
  14. data/lib/ronin/bootstrap.rb +1 -1
  15. data/lib/ronin/campaign.rb +1 -1
  16. data/lib/ronin/config.rb +1 -1
  17. data/lib/ronin/credential.rb +1 -1
  18. data/lib/ronin/database.rb +1 -1
  19. data/lib/ronin/database/database.rb +1 -1
  20. data/lib/ronin/database/exceptions.rb +1 -1
  21. data/lib/ronin/database/exceptions/invalid_config.rb +1 -1
  22. data/lib/ronin/database/exceptions/unknown_repository.rb +1 -1
  23. data/lib/ronin/database/migrations.rb +1 -1
  24. data/lib/ronin/database/migrations/1.0.0.rb +1 -1
  25. data/lib/ronin/database/migrations/1.1.0.rb +1 -1
  26. data/lib/ronin/database/migrations/exceptions.rb +1 -1
  27. data/lib/ronin/database/migrations/exceptions/duplicate_migration.rb +1 -1
  28. data/lib/ronin/database/migrations/exceptions/unknown_migration.rb +1 -1
  29. data/lib/ronin/database/migrations/graph.rb +1 -1
  30. data/lib/ronin/database/migrations/migration.rb +1 -1
  31. data/lib/ronin/database/migrations/migrations.rb +1 -1
  32. data/lib/ronin/email_address.rb +1 -1
  33. data/lib/ronin/environment.rb +1 -1
  34. data/lib/ronin/exceptions.rb +1 -1
  35. data/lib/ronin/exceptions/duplicate_repository.rb +1 -1
  36. data/lib/ronin/exceptions/repository_not_found.rb +1 -1
  37. data/lib/ronin/host_name.rb +1 -1
  38. data/lib/ronin/host_name_ip_address.rb +1 -1
  39. data/lib/ronin/installation.rb +1 -1
  40. data/lib/ronin/ip_address.rb +1 -1
  41. data/lib/ronin/ip_address_mac_address.rb +1 -1
  42. data/lib/ronin/license.rb +1 -1
  43. data/lib/ronin/mac_address.rb +1 -1
  44. data/lib/ronin/model.rb +1 -1
  45. data/lib/ronin/model/has_authors.rb +1 -1
  46. data/lib/ronin/model/has_description.rb +1 -1
  47. data/lib/ronin/model/has_license.rb +1 -1
  48. data/lib/ronin/model/has_name.rb +1 -1
  49. data/lib/ronin/model/has_title.rb +1 -1
  50. data/lib/ronin/model/has_unique_name.rb +1 -1
  51. data/lib/ronin/model/has_version.rb +1 -1
  52. data/lib/ronin/model/importable.rb +1 -1
  53. data/lib/ronin/model/model.rb +1 -1
  54. data/lib/ronin/model/types.rb +1 -1
  55. data/lib/ronin/model/types/description.rb +1 -1
  56. data/lib/ronin/open_port.rb +1 -1
  57. data/lib/ronin/organization.rb +1 -1
  58. data/lib/ronin/os.rb +1 -1
  59. data/lib/ronin/os_guess.rb +1 -1
  60. data/lib/ronin/password.rb +1 -1
  61. data/lib/ronin/port.rb +1 -1
  62. data/lib/ronin/repositories.rb +1 -1
  63. data/lib/ronin/repository.rb +3 -3
  64. data/lib/ronin/ronin.rb +1 -1
  65. data/lib/ronin/script.rb +1 -1
  66. data/lib/ronin/script/buildable.rb +1 -1
  67. data/lib/ronin/script/deployable.rb +1 -1
  68. data/lib/ronin/script/exceptions.rb +1 -1
  69. data/lib/ronin/script/exceptions/build_failed.rb +1 -1
  70. data/lib/ronin/script/exceptions/deploy_failed.rb +1 -1
  71. data/lib/ronin/script/exceptions/exception.rb +1 -1
  72. data/lib/ronin/script/exceptions/not_built.rb +1 -1
  73. data/lib/ronin/script/exceptions/test_failed.rb +1 -1
  74. data/lib/ronin/script/path.rb +1 -1
  75. data/lib/ronin/script/script.rb +1 -1
  76. data/lib/ronin/script/testable.rb +1 -1
  77. data/lib/ronin/service.rb +1 -1
  78. data/lib/ronin/service_credential.rb +1 -1
  79. data/lib/ronin/software.rb +1 -1
  80. data/lib/ronin/spec/database.rb +1 -1
  81. data/lib/ronin/target.rb +1 -1
  82. data/lib/ronin/tcp_port.rb +1 -1
  83. data/lib/ronin/udp_port.rb +1 -1
  84. data/lib/ronin/ui.rb +1 -1
  85. data/lib/ronin/ui/cli.rb +1 -1
  86. data/lib/ronin/ui/cli/class_command.rb +1 -1
  87. data/lib/ronin/ui/cli/cli.rb +1 -1
  88. data/lib/ronin/ui/cli/command.rb +47 -7
  89. data/lib/ronin/ui/cli/commands.rb +1 -1
  90. data/lib/ronin/ui/cli/commands/campaigns.rb +30 -3
  91. data/lib/ronin/ui/cli/commands/console.rb +18 -2
  92. data/lib/ronin/ui/cli/commands/creds.rb +24 -2
  93. data/lib/ronin/ui/cli/commands/database.rb +26 -3
  94. data/lib/ronin/ui/cli/commands/emails.rb +25 -2
  95. data/lib/ronin/ui/cli/commands/exec.rb +6 -2
  96. data/lib/ronin/ui/cli/commands/help.rb +20 -3
  97. data/lib/ronin/ui/cli/commands/hosts.rb +27 -2
  98. data/lib/ronin/ui/cli/commands/install.rb +23 -4
  99. data/lib/ronin/ui/cli/commands/ips.rb +29 -3
  100. data/lib/ronin/ui/cli/commands/repos.rb +23 -2
  101. data/lib/ronin/ui/cli/commands/uninstall.rb +17 -2
  102. data/lib/ronin/ui/cli/commands/update.rb +17 -2
  103. data/lib/ronin/ui/cli/commands/urls.rb +32 -3
  104. data/lib/ronin/ui/cli/commands/wordlist.rb +168 -0
  105. data/lib/ronin/ui/cli/exceptions.rb +1 -1
  106. data/lib/ronin/ui/cli/exceptions/unknown_command.rb +1 -1
  107. data/lib/ronin/ui/cli/model_command.rb +1 -1
  108. data/lib/ronin/ui/cli/printing.rb +1 -1
  109. data/lib/ronin/ui/cli/resources_command.rb +1 -1
  110. data/lib/ronin/ui/cli/script_command.rb +1 -1
  111. data/lib/ronin/ui/console.rb +1 -1
  112. data/lib/ronin/ui/console/commands.rb +1 -1
  113. data/lib/ronin/ui/console/console.rb +1 -1
  114. data/lib/ronin/ui/console/context.rb +17 -6
  115. data/lib/ronin/url.rb +15 -1
  116. data/lib/ronin/url_query_param.rb +1 -1
  117. data/lib/ronin/url_query_param_name.rb +1 -1
  118. data/lib/ronin/url_scheme.rb +1 -1
  119. data/lib/ronin/user_name.rb +1 -1
  120. data/lib/ronin/vendor.rb +1 -1
  121. data/lib/ronin/version.rb +2 -2
  122. data/lib/ronin/web_credential.rb +1 -1
  123. data/spec/installation_spec.rb +1 -0
  124. data/spec/repository_spec.rb +1 -1
  125. data/spec/url_spec.rb +16 -0
  126. metadata +61 -58
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
data/lib/ronin/os.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
data/lib/ronin/port.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -180,14 +180,14 @@ module Ronin
180
180
  # Repository.find('postmodern-repo')
181
181
  #
182
182
  # @example Load the repository with the given name and domain.
183
- # Repository.find('postmodern-repo/github.com')
183
+ # Repository.find('postmodern-repo@github.com')
184
184
  #
185
185
  # @since 1.0.0
186
186
  #
187
187
  # @api private
188
188
  #
189
189
  def Repository.find(name)
190
- name, domain = name.to_s.split('/',2)
190
+ name, domain = name.to_s.split('@',2)
191
191
 
192
192
  query = {:name => name}
193
193
  query[:domain] = domain if domain
data/lib/ronin/ronin.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
data/lib/ronin/script.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
data/lib/ronin/service.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
data/lib/ronin/target.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
data/lib/ronin/ui.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
data/lib/ronin/ui/cli.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
2
+ # Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
3
3
  #
4
4
  # This file is part of Ronin.
5
5
  #
@@ -212,6 +212,9 @@ module Ronin
212
212
 
213
213
  # set additional arguments
214
214
  self.class.each_argument do |name|
215
+ # no more arguments left
216
+ break if arguments.empty?
217
+
215
218
  param = get_param(name)
216
219
 
217
220
  if param.type <= Parameters::Types::Array
@@ -222,6 +225,11 @@ module Ronin
222
225
  end
223
226
  end
224
227
 
228
+ unless arguments.empty?
229
+ print_error "Too many arguments. Please consult --help"
230
+ exit -1
231
+ end
232
+
225
233
  begin
226
234
  run
227
235
  rescue => error
@@ -439,6 +447,20 @@ module Ronin
439
447
  end
440
448
  end
441
449
 
450
+ #
451
+ # Determines if there are any options defined by the command.
452
+ #
453
+ # @return [Boolean]
454
+ # Specifies if there are any options defined by the command.
455
+ #
456
+ # @since 1.4.0
457
+ #
458
+ # @api semipublic
459
+ #
460
+ def self.options?
461
+ each_option.any?
462
+ end
463
+
442
464
  #
443
465
  # The additional arguments of the command.
444
466
  #
@@ -499,7 +521,7 @@ module Ronin
499
521
  #
500
522
  # @since 1.4.0
501
523
  #
502
- # @api private
524
+ # @api semipublic
503
525
  #
504
526
  def self.each_argument(&block)
505
527
  return enum_for(:each_argument) unless block
@@ -511,6 +533,20 @@ module Ronin
511
533
  end
512
534
  end
513
535
 
536
+ #
537
+ # Determines if there are any arguments defined by the command.
538
+ #
539
+ # @return [Boolean]
540
+ # Specifies if there are any arguments defined by the command.
541
+ #
542
+ # @since 1.4.0
543
+ #
544
+ # @api semipublic
545
+ #
546
+ def self.arguments?
547
+ each_argument.any?
548
+ end
549
+
514
550
  #
515
551
  # Creates an OptionParser for the command.
516
552
  #
@@ -547,13 +583,17 @@ module Ronin
547
583
 
548
584
  yield opts if block_given?
549
585
 
550
- opts.separator ''
551
- opts.separator 'Arguments:'
586
+ if self.class.arguments?
587
+ opts.separator ''
588
+ opts.separator 'Arguments:'
552
589
 
553
- self.class.each_argument do |name|
554
- param = get_param(name)
590
+ self.class.each_argument do |name|
591
+ param = get_param(name)
592
+ name = name.to_s.upcase
593
+ desc = param.description
555
594
 
556
- opts.separator "\t#{name.to_s.upcase}\t#{param.description}"
595
+ opts.separator " #{name.ljust(33)}#{desc}"
596
+ end
557
597
  end
558
598
 
559
599
  if self.class.summary