ronin-core 0.1.0.beta1

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 (109) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.github/workflows/ruby.yml +41 -0
  4. data/.gitignore +12 -0
  5. data/.rspec +1 -0
  6. data/.rubocop.yml +160 -0
  7. data/.ruby-version +1 -0
  8. data/.yardopts +1 -0
  9. data/COPYING.txt +165 -0
  10. data/ChangeLog.md +11 -0
  11. data/Gemfile +30 -0
  12. data/README.md +299 -0
  13. data/Rakefile +34 -0
  14. data/examples/ruby_shell.rb +11 -0
  15. data/gemspec.yml +28 -0
  16. data/lib/ronin/core/class_registry.rb +246 -0
  17. data/lib/ronin/core/cli/command.rb +87 -0
  18. data/lib/ronin/core/cli/command_shell/command.rb +110 -0
  19. data/lib/ronin/core/cli/command_shell.rb +345 -0
  20. data/lib/ronin/core/cli/generator/options/author.rb +106 -0
  21. data/lib/ronin/core/cli/generator/options/description.rb +54 -0
  22. data/lib/ronin/core/cli/generator/options/reference.rb +60 -0
  23. data/lib/ronin/core/cli/generator/options/summary.rb +54 -0
  24. data/lib/ronin/core/cli/generator.rb +238 -0
  25. data/lib/ronin/core/cli/logging.rb +59 -0
  26. data/lib/ronin/core/cli/options/param.rb +68 -0
  27. data/lib/ronin/core/cli/options/values/arches.rb +45 -0
  28. data/lib/ronin/core/cli/options/values/oses.rb +32 -0
  29. data/lib/ronin/core/cli/printing/arch.rb +71 -0
  30. data/lib/ronin/core/cli/printing/metadata.rb +113 -0
  31. data/lib/ronin/core/cli/printing/os.rb +54 -0
  32. data/lib/ronin/core/cli/printing/params.rb +69 -0
  33. data/lib/ronin/core/cli/ruby_shell.rb +131 -0
  34. data/lib/ronin/core/cli/shell.rb +186 -0
  35. data/lib/ronin/core/git.rb +73 -0
  36. data/lib/ronin/core/home.rb +86 -0
  37. data/lib/ronin/core/metadata/authors/author.rb +241 -0
  38. data/lib/ronin/core/metadata/authors.rb +120 -0
  39. data/lib/ronin/core/metadata/description.rb +100 -0
  40. data/lib/ronin/core/metadata/id.rb +88 -0
  41. data/lib/ronin/core/metadata/references.rb +87 -0
  42. data/lib/ronin/core/metadata/summary.rb +78 -0
  43. data/lib/ronin/core/metadata/version.rb +74 -0
  44. data/lib/ronin/core/params/exceptions.rb +38 -0
  45. data/lib/ronin/core/params/mixin.rb +317 -0
  46. data/lib/ronin/core/params/param.rb +137 -0
  47. data/lib/ronin/core/params/types/boolean.rb +64 -0
  48. data/lib/ronin/core/params/types/enum.rb +107 -0
  49. data/lib/ronin/core/params/types/float.rb +68 -0
  50. data/lib/ronin/core/params/types/integer.rb +100 -0
  51. data/lib/ronin/core/params/types/numeric.rb +106 -0
  52. data/lib/ronin/core/params/types/regexp.rb +67 -0
  53. data/lib/ronin/core/params/types/string.rb +118 -0
  54. data/lib/ronin/core/params/types/type.rb +54 -0
  55. data/lib/ronin/core/params/types/uri.rb +72 -0
  56. data/lib/ronin/core/params/types.rb +62 -0
  57. data/lib/ronin/core/params.rb +19 -0
  58. data/lib/ronin/core/version.rb +24 -0
  59. data/ronin-core.gemspec +59 -0
  60. data/spec/class_registry_spec.rb +224 -0
  61. data/spec/cli/command_shell/command_spec.rb +113 -0
  62. data/spec/cli/command_shell_spec.rb +1114 -0
  63. data/spec/cli/command_spec.rb +16 -0
  64. data/spec/cli/fixtures/irb_command +8 -0
  65. data/spec/cli/fixtures/template/dir/file1.txt +1 -0
  66. data/spec/cli/fixtures/template/dir/file2.txt +1 -0
  67. data/spec/cli/fixtures/template/file.erb +1 -0
  68. data/spec/cli/fixtures/template/file.txt +1 -0
  69. data/spec/cli/generator/options/author_spec.rb +121 -0
  70. data/spec/cli/generator/options/description_spec.rb +45 -0
  71. data/spec/cli/generator/options/reference_spec.rb +53 -0
  72. data/spec/cli/generator/options/summary_spec.rb +45 -0
  73. data/spec/cli/generator_spec.rb +244 -0
  74. data/spec/cli/logging_spec.rb +95 -0
  75. data/spec/cli/options/param_spec.rb +67 -0
  76. data/spec/cli/options/values/arches_spec.rb +62 -0
  77. data/spec/cli/printing/arch_spec.rb +130 -0
  78. data/spec/cli/printing/metadata_spec.rb +211 -0
  79. data/spec/cli/printing/os_spec.rb +64 -0
  80. data/spec/cli/printing/params_spec.rb +63 -0
  81. data/spec/cli/ruby_shell.rb +99 -0
  82. data/spec/cli/shell_spec.rb +211 -0
  83. data/spec/fixtures/example_class_registry/base_class.rb +9 -0
  84. data/spec/fixtures/example_class_registry/classes/loaded_class.rb +9 -0
  85. data/spec/fixtures/example_class_registry/classes/name_mismatch.rb +9 -0
  86. data/spec/fixtures/example_class_registry/classes/no_module.rb +4 -0
  87. data/spec/fixtures/example_class_registry.rb +8 -0
  88. data/spec/git_spec.rb +58 -0
  89. data/spec/home_spec.rb +64 -0
  90. data/spec/metadata/authors/author_spec.rb +335 -0
  91. data/spec/metadata/authors_spec.rb +126 -0
  92. data/spec/metadata/description_spec.rb +74 -0
  93. data/spec/metadata/id_spec.rb +92 -0
  94. data/spec/metadata/references_spec.rb +100 -0
  95. data/spec/metadata/summary_spec.rb +74 -0
  96. data/spec/metadata/version_spec.rb +72 -0
  97. data/spec/params/mixin_spec.rb +484 -0
  98. data/spec/params/param_spec.rb +164 -0
  99. data/spec/params/types/boolean_spec.rb +56 -0
  100. data/spec/params/types/enum_spec.rb +94 -0
  101. data/spec/params/types/float_spec.rb +107 -0
  102. data/spec/params/types/integer_spec.rb +155 -0
  103. data/spec/params/types/numeric_spec.rb +138 -0
  104. data/spec/params/types/regexp_spec.rb +64 -0
  105. data/spec/params/types/string_spec.rb +174 -0
  106. data/spec/params/types/type_spec.rb +14 -0
  107. data/spec/params/types/uri_spec.rb +62 -0
  108. data/spec/spec_helper.rb +11 -0
  109. metadata +252 -0
@@ -0,0 +1,174 @@
1
+ require 'spec_helper'
2
+ require 'ronin/core/params/types/string'
3
+
4
+ describe Ronin::Core::Params::Types::String do
5
+ describe "#initialize" do
6
+ it "must default #allow_empty? to false" do
7
+ expect(subject.allow_empty?).to be(false)
8
+ end
9
+
10
+ it "must default #allow_blank? to false" do
11
+ expect(subject.allow_blank?).to be(false)
12
+ end
13
+
14
+ it "must default #format to nil" do
15
+ expect(subject.format).to be(nil)
16
+ end
17
+
18
+ context "when given the format: keyword argument" do
19
+ let(:format) { /foo/ }
20
+
21
+ subject { described_class.new(format: format) }
22
+
23
+ it "must set #format" do
24
+ expect(subject.format).to eq(format)
25
+ end
26
+ end
27
+ end
28
+
29
+ describe "#allow_empty?" do
30
+ context "when initialized with allow_empty: true" do
31
+ subject { described_class.new(allow_empty: true) }
32
+
33
+ it "must return true" do
34
+ expect(subject.allow_empty?).to be(true)
35
+ end
36
+ end
37
+
38
+ context "when initialized with allow_empty: false" do
39
+ subject { described_class.new(allow_empty: false) }
40
+
41
+ it "must return false" do
42
+ expect(subject.allow_empty?).to be(false)
43
+ end
44
+ end
45
+ end
46
+
47
+ describe "#allow_blank?" do
48
+ context "when initialized with allow_blank: true" do
49
+ subject { described_class.new(allow_blank: true) }
50
+
51
+ it "must return true" do
52
+ expect(subject.allow_blank?).to be(true)
53
+ end
54
+ end
55
+
56
+ context "when initialized with allow_blank: false" do
57
+ subject { described_class.new(allow_blank: false) }
58
+
59
+ it "must return false" do
60
+ expect(subject.allow_blank?).to be(false)
61
+ end
62
+ end
63
+ end
64
+
65
+ describe "#coerce" do
66
+ context "when given an Enumerable" do
67
+ let(:value) { ["foo", "bar"] }
68
+
69
+ it do
70
+ expect {
71
+ subject.coerce(value)
72
+ }.to raise_error(Ronin::Core::Params::ValidationError,"cannot convert an Enumerable into a String (#{value.inspect})")
73
+ end
74
+ end
75
+
76
+ context "when given a String" do
77
+ let(:value) { "foo" }
78
+
79
+ it "must return the String" do
80
+ expect(subject.coerce(value)).to eq(value)
81
+ end
82
+
83
+ context "but when #format is set" do
84
+ subject { described_class.new(format: /foo/) }
85
+
86
+ context "and the given value matches #format" do
87
+ it "must return the String value" do
88
+ expect(subject.coerce(value)).to eq(value)
89
+ end
90
+ end
91
+
92
+ context "but the given value does not match #format" do
93
+ let(:value) { "bar" }
94
+
95
+ it do
96
+ expect {
97
+ subject.coerce(value)
98
+ }.to raise_error(Ronin::Core::Params::ValidationError,"does not match the format (#{value.inspect})")
99
+ end
100
+ end
101
+ end
102
+
103
+ context "but the string is empty" do
104
+ let(:value) { "" }
105
+
106
+ it do
107
+ expect {
108
+ subject.coerce(value)
109
+ }.to raise_error(Ronin::Core::Params::ValidationError,"value cannot be empty")
110
+ end
111
+
112
+ context "and when initialized with allow_empty: true" do
113
+ subject { described_class.new(allow_empty: true) }
114
+
115
+ it "must return the empty String" do
116
+ expect(subject.coerce(value)).to eq(value)
117
+ end
118
+ end
119
+ end
120
+
121
+ context "but the String is all whitespace" do
122
+ let(:value) { " \t\n\r" }
123
+
124
+ it do
125
+ expect {
126
+ subject.coerce(value)
127
+ }.to raise_error(Ronin::Core::Params::ValidationError,"value cannot contain all whitespace (#{value.inspect})")
128
+ end
129
+
130
+ context "and when initialized with allow_blank: true" do
131
+ subject { described_class.new(allow_blank: true) }
132
+
133
+ it "must return the blank String" do
134
+ expect(subject.coerce(value)).to eq(value)
135
+ end
136
+ end
137
+ end
138
+ end
139
+
140
+ context "when given a non-String object" do
141
+ context "and it defines a #to_s method" do
142
+ module TestTypesString
143
+ class ObjectWithToS
144
+ def to_s
145
+ "foo"
146
+ end
147
+ end
148
+ end
149
+
150
+ let(:value) { TestTypesString::ObjectWithToS.new }
151
+
152
+ it "must call #to_s on the value" do
153
+ expect(subject.coerce(value)).to eq(value.to_s)
154
+ end
155
+ end
156
+
157
+ context "but it does not respond to #to_s" do
158
+ module TestTypesString
159
+ class ObjectWithoutToS
160
+ undef to_s
161
+ end
162
+ end
163
+
164
+ let(:value) { TestTypesString::ObjectWithoutToS.new }
165
+
166
+ it do
167
+ expect {
168
+ subject.coerce(value)
169
+ }.to raise_error(Ronin::Core::Params::ValidationError,"value does not define a #to_s method (#{value.inspect})")
170
+ end
171
+ end
172
+ end
173
+ end
174
+ end
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+ require 'ronin/core/params/types/type'
3
+
4
+ describe Ronin::Core::Params::Types::Type do
5
+ describe "#corece" do
6
+ let(:value) { Object.new }
7
+
8
+ it do
9
+ expect {
10
+ subject.coerce(value)
11
+ }.to raise_error(NotImplementedError,"#{described_class}#coerce method was not implemented")
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,62 @@
1
+ require 'spec_helper'
2
+ require 'ronin/core/params/types/uri'
3
+
4
+ describe Ronin::Core::Params::Types::URI do
5
+ describe "#coerce" do
6
+ context "when given a Regexp value" do
7
+ let(:value) { URI('https://example.com/') }
8
+
9
+ it "must return the Regexp" do
10
+ expect(subject.coerce(value)).to eq(value)
11
+ end
12
+ end
13
+
14
+ context "when given a String value" do
15
+ let(:value) { "https://example.com/" }
16
+
17
+ it "must parse the String as a URI" do
18
+ expect(subject.coerce(value)).to eq(URI.parse(value))
19
+ end
20
+
21
+ context "but the String is empty" do
22
+ let(:value) { "" }
23
+
24
+ it do
25
+ expect {
26
+ subject.coerce(value)
27
+ }.to raise_error(Ronin::Core::Params::ValidationError,"value must not be empty")
28
+ end
29
+ end
30
+
31
+ context "but the String does not start with a 'scheme:'" do
32
+ let(:value) { "foo" }
33
+
34
+ it do
35
+ expect {
36
+ subject.coerce(value)
37
+ }.to raise_error(Ronin::Core::Params::ValidationError,"value must start with a 'scheme:' (#{value.inspect})")
38
+ end
39
+ end
40
+
41
+ context "but the String cannot be parsed as a valid URI" do
42
+ let(:value) { "https:// \n" }
43
+
44
+ it do
45
+ expect {
46
+ subject.coerce(value)
47
+ }.to raise_error(Ronin::Core::Params::ValidationError,"value is not a valid URI (#{value.inspect})")
48
+ end
49
+ end
50
+ end
51
+
52
+ context "when given a non-URI and non-String value" do
53
+ let(:value) { Object.new }
54
+
55
+ it do
56
+ expect {
57
+ subject.coerce(value)
58
+ }.to raise_error(Ronin::Core::Params::ValidationError,"value must be either a String or a URI (#{value.inspect})")
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,11 @@
1
+ require 'rspec'
2
+ require 'simplecov'
3
+ SimpleCov.start
4
+
5
+ ENV.delete('XDG_CACHE_HOME')
6
+ ENV.delete('XDG_CONFIG_HOME')
7
+ ENV.delete('XDG_DATA_HOME')
8
+
9
+ require 'ronin/core/version'
10
+
11
+ include Ronin
metadata ADDED
@@ -0,0 +1,252 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ronin-core
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0.beta1
5
+ platform: ruby
6
+ authors:
7
+ - Postmodern
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-01-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: reline
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: command_kit
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.4'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.4'
41
+ - !ruby/object:Gem::Dependency
42
+ name: irb
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.0'
69
+ description: |
70
+ ronin-core is a core library providing common functionality for all ronin
71
+ libraries.
72
+ email: postmodern.mod3@gmail.com
73
+ executables: []
74
+ extensions: []
75
+ extra_rdoc_files:
76
+ - COPYING.txt
77
+ - ChangeLog.md
78
+ - README.md
79
+ files:
80
+ - ".document"
81
+ - ".github/workflows/ruby.yml"
82
+ - ".gitignore"
83
+ - ".rspec"
84
+ - ".rubocop.yml"
85
+ - ".ruby-version"
86
+ - ".yardopts"
87
+ - COPYING.txt
88
+ - ChangeLog.md
89
+ - Gemfile
90
+ - README.md
91
+ - Rakefile
92
+ - examples/ruby_shell.rb
93
+ - gemspec.yml
94
+ - lib/ronin/core/class_registry.rb
95
+ - lib/ronin/core/cli/command.rb
96
+ - lib/ronin/core/cli/command_shell.rb
97
+ - lib/ronin/core/cli/command_shell/command.rb
98
+ - lib/ronin/core/cli/generator.rb
99
+ - lib/ronin/core/cli/generator/options/author.rb
100
+ - lib/ronin/core/cli/generator/options/description.rb
101
+ - lib/ronin/core/cli/generator/options/reference.rb
102
+ - lib/ronin/core/cli/generator/options/summary.rb
103
+ - lib/ronin/core/cli/logging.rb
104
+ - lib/ronin/core/cli/options/param.rb
105
+ - lib/ronin/core/cli/options/values/arches.rb
106
+ - lib/ronin/core/cli/options/values/oses.rb
107
+ - lib/ronin/core/cli/printing/arch.rb
108
+ - lib/ronin/core/cli/printing/metadata.rb
109
+ - lib/ronin/core/cli/printing/os.rb
110
+ - lib/ronin/core/cli/printing/params.rb
111
+ - lib/ronin/core/cli/ruby_shell.rb
112
+ - lib/ronin/core/cli/shell.rb
113
+ - lib/ronin/core/git.rb
114
+ - lib/ronin/core/home.rb
115
+ - lib/ronin/core/metadata/authors.rb
116
+ - lib/ronin/core/metadata/authors/author.rb
117
+ - lib/ronin/core/metadata/description.rb
118
+ - lib/ronin/core/metadata/id.rb
119
+ - lib/ronin/core/metadata/references.rb
120
+ - lib/ronin/core/metadata/summary.rb
121
+ - lib/ronin/core/metadata/version.rb
122
+ - lib/ronin/core/params.rb
123
+ - lib/ronin/core/params/exceptions.rb
124
+ - lib/ronin/core/params/mixin.rb
125
+ - lib/ronin/core/params/param.rb
126
+ - lib/ronin/core/params/types.rb
127
+ - lib/ronin/core/params/types/boolean.rb
128
+ - lib/ronin/core/params/types/enum.rb
129
+ - lib/ronin/core/params/types/float.rb
130
+ - lib/ronin/core/params/types/integer.rb
131
+ - lib/ronin/core/params/types/numeric.rb
132
+ - lib/ronin/core/params/types/regexp.rb
133
+ - lib/ronin/core/params/types/string.rb
134
+ - lib/ronin/core/params/types/type.rb
135
+ - lib/ronin/core/params/types/uri.rb
136
+ - lib/ronin/core/version.rb
137
+ - ronin-core.gemspec
138
+ - spec/class_registry_spec.rb
139
+ - spec/cli/command_shell/command_spec.rb
140
+ - spec/cli/command_shell_spec.rb
141
+ - spec/cli/command_spec.rb
142
+ - spec/cli/fixtures/irb_command
143
+ - spec/cli/fixtures/template/dir/file1.txt
144
+ - spec/cli/fixtures/template/dir/file2.txt
145
+ - spec/cli/fixtures/template/file.erb
146
+ - spec/cli/fixtures/template/file.txt
147
+ - spec/cli/generator/options/author_spec.rb
148
+ - spec/cli/generator/options/description_spec.rb
149
+ - spec/cli/generator/options/reference_spec.rb
150
+ - spec/cli/generator/options/summary_spec.rb
151
+ - spec/cli/generator_spec.rb
152
+ - spec/cli/logging_spec.rb
153
+ - spec/cli/options/param_spec.rb
154
+ - spec/cli/options/values/arches_spec.rb
155
+ - spec/cli/printing/arch_spec.rb
156
+ - spec/cli/printing/metadata_spec.rb
157
+ - spec/cli/printing/os_spec.rb
158
+ - spec/cli/printing/params_spec.rb
159
+ - spec/cli/ruby_shell.rb
160
+ - spec/cli/shell_spec.rb
161
+ - spec/fixtures/example_class_registry.rb
162
+ - spec/fixtures/example_class_registry/base_class.rb
163
+ - spec/fixtures/example_class_registry/classes/loaded_class.rb
164
+ - spec/fixtures/example_class_registry/classes/name_mismatch.rb
165
+ - spec/fixtures/example_class_registry/classes/no_module.rb
166
+ - spec/git_spec.rb
167
+ - spec/home_spec.rb
168
+ - spec/metadata/authors/author_spec.rb
169
+ - spec/metadata/authors_spec.rb
170
+ - spec/metadata/description_spec.rb
171
+ - spec/metadata/id_spec.rb
172
+ - spec/metadata/references_spec.rb
173
+ - spec/metadata/summary_spec.rb
174
+ - spec/metadata/version_spec.rb
175
+ - spec/params/mixin_spec.rb
176
+ - spec/params/param_spec.rb
177
+ - spec/params/types/boolean_spec.rb
178
+ - spec/params/types/enum_spec.rb
179
+ - spec/params/types/float_spec.rb
180
+ - spec/params/types/integer_spec.rb
181
+ - spec/params/types/numeric_spec.rb
182
+ - spec/params/types/regexp_spec.rb
183
+ - spec/params/types/string_spec.rb
184
+ - spec/params/types/type_spec.rb
185
+ - spec/params/types/uri_spec.rb
186
+ - spec/spec_helper.rb
187
+ homepage: https://ronin-rb.dev/
188
+ licenses:
189
+ - LGPL-3.0
190
+ metadata:
191
+ documentation_uri: https://rubydoc.info/gems/ronin-core
192
+ source_code_uri: https://github.com/ronin-rb/ronin-core
193
+ bug_tracker_uri: https://github.com/ronin-rb/ronin-core/issues
194
+ changelog_uri: https://github.com/ronin-rb/ronin-core/blob/main/ChangeLog.md
195
+ rubygems_mfa_required: 'true'
196
+ post_install_message:
197
+ rdoc_options: []
198
+ require_paths:
199
+ - lib
200
+ required_ruby_version: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: 3.0.0
205
+ required_rubygems_version: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ requirements: []
211
+ rubygems_version: 3.3.26
212
+ signing_key:
213
+ specification_version: 4
214
+ summary: A core library for all ronin libraries.
215
+ test_files:
216
+ - spec/class_registry_spec.rb
217
+ - spec/cli/command_shell/command_spec.rb
218
+ - spec/cli/command_shell_spec.rb
219
+ - spec/cli/command_spec.rb
220
+ - spec/cli/generator/options/author_spec.rb
221
+ - spec/cli/generator/options/description_spec.rb
222
+ - spec/cli/generator/options/reference_spec.rb
223
+ - spec/cli/generator/options/summary_spec.rb
224
+ - spec/cli/generator_spec.rb
225
+ - spec/cli/logging_spec.rb
226
+ - spec/cli/options/param_spec.rb
227
+ - spec/cli/options/values/arches_spec.rb
228
+ - spec/cli/printing/arch_spec.rb
229
+ - spec/cli/printing/metadata_spec.rb
230
+ - spec/cli/printing/os_spec.rb
231
+ - spec/cli/printing/params_spec.rb
232
+ - spec/cli/shell_spec.rb
233
+ - spec/git_spec.rb
234
+ - spec/home_spec.rb
235
+ - spec/metadata/authors/author_spec.rb
236
+ - spec/metadata/authors_spec.rb
237
+ - spec/metadata/description_spec.rb
238
+ - spec/metadata/id_spec.rb
239
+ - spec/metadata/references_spec.rb
240
+ - spec/metadata/summary_spec.rb
241
+ - spec/metadata/version_spec.rb
242
+ - spec/params/mixin_spec.rb
243
+ - spec/params/param_spec.rb
244
+ - spec/params/types/boolean_spec.rb
245
+ - spec/params/types/enum_spec.rb
246
+ - spec/params/types/float_spec.rb
247
+ - spec/params/types/integer_spec.rb
248
+ - spec/params/types/numeric_spec.rb
249
+ - spec/params/types/regexp_spec.rb
250
+ - spec/params/types/string_spec.rb
251
+ - spec/params/types/type_spec.rb
252
+ - spec/params/types/uri_spec.rb