ronin-core 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +13 -150
  3. data/ChangeLog.md +9 -1
  4. data/Gemfile +3 -1
  5. data/Rakefile +1 -1
  6. data/examples/ruby_shell.rb +5 -0
  7. data/examples/test_shell.rb +41 -0
  8. data/lib/ronin/core/class_registry.rb +15 -10
  9. data/lib/ronin/core/cli/command.rb +11 -11
  10. data/lib/ronin/core/cli/command_shell/command.rb +8 -5
  11. data/lib/ronin/core/cli/command_shell.rb +9 -9
  12. data/lib/ronin/core/cli/generator/options/author.rb +4 -5
  13. data/lib/ronin/core/cli/generator/options/description.rb +2 -2
  14. data/lib/ronin/core/cli/generator/options/reference.rb +2 -2
  15. data/lib/ronin/core/cli/generator/options/summary.rb +2 -2
  16. data/lib/ronin/core/cli/generator.rb +10 -7
  17. data/lib/ronin/core/cli/logging.rb +5 -2
  18. data/lib/ronin/core/cli/options/param.rb +4 -4
  19. data/lib/ronin/core/cli/options/values/arches.rb +2 -2
  20. data/lib/ronin/core/cli/options/values/oses.rb +2 -2
  21. data/lib/ronin/core/cli/printing/arch.rb +2 -2
  22. data/lib/ronin/core/cli/printing/metadata.rb +2 -2
  23. data/lib/ronin/core/cli/printing/os.rb +5 -2
  24. data/lib/ronin/core/cli/printing/params.rb +6 -6
  25. data/lib/ronin/core/cli/ruby_shell.rb +3 -2
  26. data/lib/ronin/core/cli/shell.rb +14 -6
  27. data/lib/ronin/core/git.rb +2 -2
  28. data/lib/ronin/core/home.rb +2 -2
  29. data/lib/ronin/core/metadata/authors/author.rb +5 -2
  30. data/lib/ronin/core/metadata/authors.rb +8 -5
  31. data/lib/ronin/core/metadata/description.rb +8 -5
  32. data/lib/ronin/core/metadata/id.rb +7 -4
  33. data/lib/ronin/core/metadata/references.rb +13 -6
  34. data/lib/ronin/core/metadata/summary.rb +10 -7
  35. data/lib/ronin/core/metadata/version.rb +8 -5
  36. data/lib/ronin/core/params/exceptions.rb +2 -2
  37. data/lib/ronin/core/params/mixin.rb +15 -15
  38. data/lib/ronin/core/params/param.rb +2 -2
  39. data/lib/ronin/core/params/types/boolean.rb +2 -2
  40. data/lib/ronin/core/params/types/enum.rb +7 -3
  41. data/lib/ronin/core/params/types/float.rb +2 -2
  42. data/lib/ronin/core/params/types/integer.rb +2 -2
  43. data/lib/ronin/core/params/types/numeric.rb +3 -3
  44. data/lib/ronin/core/params/types/regexp.rb +2 -2
  45. data/lib/ronin/core/params/types/string.rb +2 -2
  46. data/lib/ronin/core/params/types/type.rb +2 -2
  47. data/lib/ronin/core/params/types/uri.rb +2 -2
  48. data/lib/ronin/core/params/types.rb +6 -3
  49. data/lib/ronin/core/params.rb +2 -2
  50. data/lib/ronin/core/version.rb +3 -3
  51. data/ronin-core.gemspec +5 -3
  52. metadata +3 -2
@@ -6,12 +6,12 @@
6
6
  # it under the terms of the GNU Lesser General Public License as published
7
7
  # by the Free Software Foundation, either version 3 of the License, or
8
8
  # (at your option) any later version.
9
- #
9
+ #
10
10
  # ronin-core is distributed in the hope that it will be useful,
11
11
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
13
  # GNU Lesser General Public License for more details.
14
- #
14
+ #
15
15
  # You should have received a copy of the GNU Lesser General Public License
16
16
  # along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
@@ -21,6 +21,9 @@ require 'command_kit/colors'
21
21
  module Ronin
22
22
  module Core
23
23
  module CLI
24
+ #
25
+ # Helper methods for printing log messages.
26
+ #
24
27
  module Logging
25
28
  include CommandKit::Colors
26
29
 
@@ -8,12 +8,12 @@
8
8
  # it under the terms of the GNU Lesser General Public License as published
9
9
  # by the Free Software Foundation, either version 3 of the License, or
10
10
  # (at your option) any later version.
11
- #
11
+ #
12
12
  # ronin-core is distributed in the hope that it will be useful,
13
13
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
14
14
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
15
  # GNU Lesser General Public License for more details.
16
- #
16
+ #
17
17
  # You should have received a copy of the GNU Lesser General Public License
18
18
  # along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
19
19
  #
@@ -35,8 +35,8 @@ module Ronin
35
35
  def self.included(command)
36
36
  command.option :param, short: '-p',
37
37
  value: {
38
- type: /\A[^=]+=.+\z/,
39
- usage: 'NAME=VALUE',
38
+ type: /\A[^=]+=.+\z/,
39
+ usage: 'NAME=VALUE'
40
40
  },
41
41
  desc: 'Sets a param' do |str|
42
42
  name, value = str.split('=',2)
@@ -6,12 +6,12 @@
6
6
  # it under the terms of the GNU Lesser General Public License as published
7
7
  # by the Free Software Foundation, either version 3 of the License, or
8
8
  # (at your option) any later version.
9
- #
9
+ #
10
10
  # ronin-core is distributed in the hope that it will be useful,
11
11
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
13
  # GNU Lesser General Public License for more details.
14
- #
14
+ #
15
15
  # You should have received a copy of the GNU Lesser General Public License
16
16
  # along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
@@ -6,12 +6,12 @@
6
6
  # it under the terms of the GNU Lesser General Public License as published
7
7
  # by the Free Software Foundation, either version 3 of the License, or
8
8
  # (at your option) any later version.
9
- #
9
+ #
10
10
  # ronin-core is distributed in the hope that it will be useful,
11
11
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
13
  # GNU Lesser General Public License for more details.
14
- #
14
+ #
15
15
  # You should have received a copy of the GNU Lesser General Public License
16
16
  # along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
@@ -6,12 +6,12 @@
6
6
  # it under the terms of the GNU Lesser General Public License as published
7
7
  # by the Free Software Foundation, either version 3 of the License, or
8
8
  # (at your option) any later version.
9
- #
9
+ #
10
10
  # ronin-core is distributed in the hope that it will be useful,
11
11
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
13
  # GNU Lesser General Public License for more details.
14
- #
14
+ #
15
15
  # You should have received a copy of the GNU Lesser General Public License
16
16
  # along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
@@ -6,12 +6,12 @@
6
6
  # it under the terms of the GNU Lesser General Public License as published
7
7
  # by the Free Software Foundation, either version 3 of the License, or
8
8
  # (at your option) any later version.
9
- #
9
+ #
10
10
  # ronin-core is distributed in the hope that it will be useful,
11
11
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
13
  # GNU Lesser General Public License for more details.
14
- #
14
+ #
15
15
  # You should have received a copy of the GNU Lesser General Public License
16
16
  # along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
@@ -6,12 +6,12 @@
6
6
  # it under the terms of the GNU Lesser General Public License as published
7
7
  # by the Free Software Foundation, either version 3 of the License, or
8
8
  # (at your option) any later version.
9
- #
9
+ #
10
10
  # ronin-core is distributed in the hope that it will be useful,
11
11
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
13
  # GNU Lesser General Public License for more details.
14
- #
14
+ #
15
15
  # You should have received a copy of the GNU Lesser General Public License
16
16
  # along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
@@ -20,6 +20,9 @@ module Ronin
20
20
  module Core
21
21
  module CLI
22
22
  module Printing
23
+ #
24
+ # Helper methods for printing Operating System (OS) names.
25
+ #
23
26
  module OS
24
27
  # Mapping of Operating System (OS) IDs to printable names.
25
28
  OS_NAMES = {
@@ -6,12 +6,12 @@
6
6
  # it under the terms of the GNU Lesser General Public License as published
7
7
  # by the Free Software Foundation, either version 3 of the License, or
8
8
  # (at your option) any later version.
9
- #
9
+ #
10
10
  # ronin-core is distributed in the hope that it will be useful,
11
11
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
13
  # GNU Lesser General Public License for more details.
14
- #
14
+ #
15
15
  # You should have received a copy of the GNU Lesser General Public License
16
16
  # along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
@@ -45,10 +45,10 @@ module Ronin
45
45
  rows = []
46
46
 
47
47
  klass.params.each do |name,param|
48
- param_type = param.type.class.name.split('::').last
49
- required = if param.required? then 'Yes'
50
- else 'No'
51
- end
48
+ param_type = param.type.class.name.split('::').last
49
+ required = if param.required? then 'Yes'
50
+ else 'No'
51
+ end
52
52
  default = param.default_value
53
53
  description = param.desc
54
54
 
@@ -6,12 +6,12 @@
6
6
  # it under the terms of the GNU Lesser General Public License as published
7
7
  # by the Free Software Foundation, either version 3 of the License, or
8
8
  # (at your option) any later version.
9
- #
9
+ #
10
10
  # ronin-core is distributed in the hope that it will be useful,
11
11
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
13
  # GNU Lesser General Public License for more details.
14
- #
14
+ #
15
15
  # You should have received a copy of the GNU Lesser General Public License
16
16
  # along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
@@ -121,6 +121,7 @@ module Ronin
121
121
  PROMPT_C: "#{prompt_prefix}* ",
122
122
  RETURN: "=> %s#{$/}"
123
123
  }
124
+
124
125
  IRB.conf[:PROMPT_MODE] = :RONIN
125
126
  end
126
127
  end
@@ -6,12 +6,12 @@
6
6
  # it under the terms of the GNU Lesser General Public License as published
7
7
  # by the Free Software Foundation, either version 3 of the License, or
8
8
  # (at your option) any later version.
9
- #
9
+ #
10
10
  # ronin-core is distributed in the hope that it will be useful,
11
11
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
13
  # GNU Lesser General Public License for more details.
14
- #
14
+ #
15
15
  # You should have received a copy of the GNU Lesser General Public License
16
16
  # along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
@@ -23,6 +23,9 @@ require 'reline'
23
23
  module Ronin
24
24
  module Core
25
25
  module CLI
26
+ #
27
+ # Base class for all interactive CLI shells.
28
+ #
26
29
  class Shell
27
30
 
28
31
  include CommandKit::Printing
@@ -61,7 +64,7 @@ module Ronin
61
64
  @prompt_sigil = new_sigil
62
65
  else
63
66
  @prompt_sigil ||= if superclass <= Shell
64
- superclass.prompt_sigil
67
+ superclass.prompt_sigil
65
68
  end
66
69
  end
67
70
  end
@@ -83,12 +86,12 @@ module Ronin
83
86
  def self.start(*arguments,**kwargs)
84
87
  shell = new(*arguments,**kwargs)
85
88
 
89
+ prev_completion_proc = Reline.completion_proc
86
90
  Reline.completion_proc = shell.method(:complete)
87
- use_history = true
88
91
 
89
92
  begin
90
93
  loop do
91
- line = Reline.readline("#{shell.prompt} ", use_history)
94
+ line = Reline.readline("#{shell.prompt} ", true)
92
95
 
93
96
  if line.nil? # Ctrl^D
94
97
  puts
@@ -100,6 +103,8 @@ module Ronin
100
103
  unless line.empty?
101
104
  begin
102
105
  shell.exec(line)
106
+ rescue Interrupt
107
+ # catch Ctrl^C but keep reading input
103
108
  rescue SystemExit
104
109
  break
105
110
  rescue => error
@@ -107,7 +112,10 @@ module Ronin
107
112
  end
108
113
  end
109
114
  end
110
- rescue Interrupt # catch Ctrl^C
115
+ rescue Interrupt
116
+ # catch Ctrl^C and return
117
+ ensure
118
+ Reline.completion_proc = prev_completion_proc
111
119
  end
112
120
  end
113
121
 
@@ -6,12 +6,12 @@
6
6
  # it under the terms of the GNU Lesser General Public License as published
7
7
  # by the Free Software Foundation, either version 3 of the License, or
8
8
  # (at your option) any later version.
9
- #
9
+ #
10
10
  # ronin-core is distributed in the hope that it will be useful,
11
11
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
13
  # GNU Lesser General Public License for more details.
14
- #
14
+ #
15
15
  # You should have received a copy of the GNU Lesser General Public License
16
16
  # along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
@@ -6,12 +6,12 @@
6
6
  # it under the terms of the GNU Lesser General Public License as published
7
7
  # by the Free Software Foundation, either version 3 of the License, or
8
8
  # (at your option) any later version.
9
- #
9
+ #
10
10
  # ronin-core is distributed in the hope that it will be useful,
11
11
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
13
  # GNU Lesser General Public License for more details.
14
- #
14
+ #
15
15
  # You should have received a copy of the GNU Lesser General Public License
16
16
  # along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
@@ -6,12 +6,12 @@
6
6
  # it under the terms of the GNU Lesser General Public License as published
7
7
  # by the Free Software Foundation, either version 3 of the License, or
8
8
  # (at your option) any later version.
9
- #
9
+ #
10
10
  # ronin-core is distributed in the hope that it will be useful,
11
11
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
13
  # GNU Lesser General Public License for more details.
14
- #
14
+ #
15
15
  # You should have received a copy of the GNU Lesser General Public License
16
16
  # along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
@@ -20,6 +20,9 @@ module Ronin
20
20
  module Core
21
21
  module Metadata
22
22
  module Authors
23
+ #
24
+ # Represents author metadata.
25
+ #
23
26
  class Author
24
27
 
25
28
  # The author's name.
@@ -6,12 +6,12 @@
6
6
  # it under the terms of the GNU Lesser General Public License as published
7
7
  # by the Free Software Foundation, either version 3 of the License, or
8
8
  # (at your option) any later version.
9
- #
9
+ #
10
10
  # ronin-core is distributed in the hope that it will be useful,
11
11
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
13
  # GNU Lesser General Public License for more details.
14
- #
14
+ #
15
15
  # You should have received a copy of the GNU Lesser General Public License
16
16
  # along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
@@ -28,12 +28,12 @@ module Ronin
28
28
  # ### Example
29
29
  #
30
30
  # class MyModule
31
- #
31
+ #
32
32
  # include Ronin::Core::Metadata::Authors
33
- #
33
+ #
34
34
  # author 'John Doe'
35
35
  # author 'John Smith', email: 'john.smith@example.com'
36
- #
36
+ #
37
37
  # end
38
38
  #
39
39
  # puts MyModule.authors
@@ -53,6 +53,9 @@ module Ronin
53
53
  base.extend ClassMethods
54
54
  end
55
55
 
56
+ #
57
+ # Class-methods.
58
+ #
56
59
  module ClassMethods
57
60
  #
58
61
  # The authors associated with the class.
@@ -6,12 +6,12 @@
6
6
  # it under the terms of the GNU Lesser General Public License as published
7
7
  # by the Free Software Foundation, either version 3 of the License, or
8
8
  # (at your option) any later version.
9
- #
9
+ #
10
10
  # ronin-core is distributed in the hope that it will be useful,
11
11
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
13
  # GNU Lesser General Public License for more details.
14
- #
14
+ #
15
15
  # You should have received a copy of the GNU Lesser General Public License
16
16
  # along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
@@ -26,9 +26,9 @@ module Ronin
26
26
  # ### Example
27
27
  #
28
28
  # class MyModule
29
- #
29
+ #
30
30
  # include Ronin::Core::Metadata::Description
31
- #
31
+ #
32
32
  # description <<~DESC
33
33
  # Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
34
34
  # eiusmod tempor incididunt ut labore et dolore magna aliqua.
@@ -41,7 +41,7 @@ module Ronin
41
41
  # proident, sunt in culpa qui officia deserunt mollit anim id est
42
42
  # laborum.
43
43
  # DESC
44
- #
44
+ #
45
45
  # end
46
46
  #
47
47
  module Description
@@ -57,6 +57,9 @@ module Ronin
57
57
  base.extend ClassMethods
58
58
  end
59
59
 
60
+ #
61
+ # Class-methods.
62
+ #
60
63
  module ClassMethods
61
64
  #
62
65
  # Gets or sets the description.
@@ -6,12 +6,12 @@
6
6
  # it under the terms of the GNU Lesser General Public License as published
7
7
  # by the Free Software Foundation, either version 3 of the License, or
8
8
  # (at your option) any later version.
9
- #
9
+ #
10
10
  # ronin-core is distributed in the hope that it will be useful,
11
11
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
13
  # GNU Lesser General Public License for more details.
14
- #
14
+ #
15
15
  # You should have received a copy of the GNU Lesser General Public License
16
16
  # along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
@@ -25,13 +25,13 @@ module Ronin
25
25
  # ### Example
26
26
  #
27
27
  # class MyClass
28
- #
28
+ #
29
29
  # include Ronin::Core::Metadata::ID
30
30
  #
31
31
  # id 'my_class'
32
32
  #
33
33
  # end
34
- #
34
+ #
35
35
  module ID
36
36
  #
37
37
  # Adds {ClassMethods} to the class.
@@ -45,6 +45,9 @@ module Ronin
45
45
  base.extend ClassMethods
46
46
  end
47
47
 
48
+ #
49
+ # Class-methods.
50
+ #
48
51
  module ClassMethods
49
52
  #
50
53
  # Gets or sets the class `id`.
@@ -6,12 +6,12 @@
6
6
  # it under the terms of the GNU Lesser General Public License as published
7
7
  # by the Free Software Foundation, either version 3 of the License, or
8
8
  # (at your option) any later version.
9
- #
9
+ #
10
10
  # ronin-core is distributed in the hope that it will be useful,
11
11
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
13
  # GNU Lesser General Public License for more details.
14
- #
14
+ #
15
15
  # You should have received a copy of the GNU Lesser General Public License
16
16
  # along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
@@ -26,14 +26,14 @@ module Ronin
26
26
  # ### Example
27
27
  #
28
28
  # class MyModule
29
- #
29
+ #
30
30
  # include Ronin::Core::Metadata::References
31
- #
31
+ #
32
32
  # references [
33
33
  # "https://...",
34
34
  # ...
35
35
  # ]
36
- #
36
+ #
37
37
  # end
38
38
  #
39
39
  module References
@@ -49,6 +49,9 @@ module Ronin
49
49
  base.extend ClassMethods
50
50
  end
51
51
 
52
+ #
53
+ # Class-methods.
54
+ #
52
55
  module ClassMethods
53
56
  #
54
57
  # Gets or sets the reference links.
@@ -71,7 +74,11 @@ module Ronin
71
74
  #
72
75
  def references(new_references=nil)
73
76
  if new_references
74
- @references = references() + new_references
77
+ @references = if superclass.kind_of?(ClassMethods)
78
+ superclass.references + new_references
79
+ else
80
+ new_references
81
+ end
75
82
  else
76
83
  @references || if superclass.kind_of?(ClassMethods)
77
84
  superclass.references
@@ -6,12 +6,12 @@
6
6
  # it under the terms of the GNU Lesser General Public License as published
7
7
  # by the Free Software Foundation, either version 3 of the License, or
8
8
  # (at your option) any later version.
9
- #
9
+ #
10
10
  # ronin-core is distributed in the hope that it will be useful,
11
11
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
13
  # GNU Lesser General Public License for more details.
14
- #
14
+ #
15
15
  # You should have received a copy of the GNU Lesser General Public License
16
16
  # along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
@@ -26,11 +26,11 @@ module Ronin
26
26
  # ### Example
27
27
  #
28
28
  # class MyModule
29
- #
29
+ #
30
30
  # include Ronin::Core::Metadata::Summary
31
- #
31
+ #
32
32
  # summary "Lorem ipsum dolor sit amet, consectetur adipiscing elit"
33
- #
33
+ #
34
34
  # end
35
35
  #
36
36
  module Summary
@@ -46,6 +46,9 @@ module Ronin
46
46
  base.extend ClassMethods
47
47
  end
48
48
 
49
+ #
50
+ # Class-methods.
51
+ #
49
52
  module ClassMethods
50
53
  #
51
54
  # Gets or sets the summary.
@@ -57,7 +60,7 @@ module Ronin
57
60
  # The previously set summary text.
58
61
  #
59
62
  # @example Setting the summary:
60
- # summary "Lorem ipsum dolor sit amet, consectetur adipiscing elit"
63
+ # summary "Lorem ipsum dolor sit amet, consectetur adipiscing elit"
61
64
  #
62
65
  # @example Getting the summary:
63
66
  # MyModule.summary
@@ -67,7 +70,7 @@ module Ronin
67
70
  @summary = new_summary
68
71
  else
69
72
  @summary || if superclass.kind_of?(ClassMethods)
70
- superclass.summary
73
+ superclass.summary
71
74
  end
72
75
  end
73
76
  end
@@ -6,12 +6,12 @@
6
6
  # it under the terms of the GNU Lesser General Public License as published
7
7
  # by the Free Software Foundation, either version 3 of the License, or
8
8
  # (at your option) any later version.
9
- #
9
+ #
10
10
  # ronin-core is distributed in the hope that it will be useful,
11
11
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
13
  # GNU Lesser General Public License for more details.
14
- #
14
+ #
15
15
  # You should have received a copy of the GNU Lesser General Public License
16
16
  # along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
@@ -26,11 +26,11 @@ module Ronin
26
26
  # ### Example
27
27
  #
28
28
  # class MyModule
29
- #
29
+ #
30
30
  # include Ronin::Core::Metadata::Version
31
- #
31
+ #
32
32
  # version '0.2'
33
- #
33
+ #
34
34
  # end
35
35
  #
36
36
  module Version
@@ -46,6 +46,9 @@ module Ronin
46
46
  base.extend ClassMethods
47
47
  end
48
48
 
49
+ #
50
+ # Class methods.
51
+ #
49
52
  module ClassMethods
50
53
  #
51
54
  # Gets or sets the version number.
@@ -6,12 +6,12 @@
6
6
  # it under the terms of the GNU Lesser General Public License as published
7
7
  # by the Free Software Foundation, either version 3 of the License, or
8
8
  # (at your option) any later version.
9
- #
9
+ #
10
10
  # ronin-core is distributed in the hope that it will be useful,
11
11
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
13
  # GNU Lesser General Public License for more details.
14
- #
14
+ #
15
15
  # You should have received a copy of the GNU Lesser General Public License
16
16
  # along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
17
17
  #