ronin-core 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +13 -150
- data/ChangeLog.md +9 -1
- data/Gemfile +3 -1
- data/Rakefile +1 -1
- data/examples/ruby_shell.rb +5 -0
- data/examples/test_shell.rb +41 -0
- data/lib/ronin/core/class_registry.rb +15 -10
- data/lib/ronin/core/cli/command.rb +11 -11
- data/lib/ronin/core/cli/command_shell/command.rb +8 -5
- data/lib/ronin/core/cli/command_shell.rb +9 -9
- data/lib/ronin/core/cli/generator/options/author.rb +4 -5
- data/lib/ronin/core/cli/generator/options/description.rb +2 -2
- data/lib/ronin/core/cli/generator/options/reference.rb +2 -2
- data/lib/ronin/core/cli/generator/options/summary.rb +2 -2
- data/lib/ronin/core/cli/generator.rb +10 -7
- data/lib/ronin/core/cli/logging.rb +5 -2
- data/lib/ronin/core/cli/options/param.rb +4 -4
- data/lib/ronin/core/cli/options/values/arches.rb +2 -2
- data/lib/ronin/core/cli/options/values/oses.rb +2 -2
- data/lib/ronin/core/cli/printing/arch.rb +2 -2
- data/lib/ronin/core/cli/printing/metadata.rb +2 -2
- data/lib/ronin/core/cli/printing/os.rb +5 -2
- data/lib/ronin/core/cli/printing/params.rb +6 -6
- data/lib/ronin/core/cli/ruby_shell.rb +3 -2
- data/lib/ronin/core/cli/shell.rb +14 -6
- data/lib/ronin/core/git.rb +2 -2
- data/lib/ronin/core/home.rb +2 -2
- data/lib/ronin/core/metadata/authors/author.rb +5 -2
- data/lib/ronin/core/metadata/authors.rb +8 -5
- data/lib/ronin/core/metadata/description.rb +8 -5
- data/lib/ronin/core/metadata/id.rb +7 -4
- data/lib/ronin/core/metadata/references.rb +13 -6
- data/lib/ronin/core/metadata/summary.rb +10 -7
- data/lib/ronin/core/metadata/version.rb +8 -5
- data/lib/ronin/core/params/exceptions.rb +2 -2
- data/lib/ronin/core/params/mixin.rb +15 -15
- data/lib/ronin/core/params/param.rb +2 -2
- data/lib/ronin/core/params/types/boolean.rb +2 -2
- data/lib/ronin/core/params/types/enum.rb +7 -3
- data/lib/ronin/core/params/types/float.rb +2 -2
- data/lib/ronin/core/params/types/integer.rb +2 -2
- data/lib/ronin/core/params/types/numeric.rb +3 -3
- data/lib/ronin/core/params/types/regexp.rb +2 -2
- data/lib/ronin/core/params/types/string.rb +2 -2
- data/lib/ronin/core/params/types/type.rb +2 -2
- data/lib/ronin/core/params/types/uri.rb +2 -2
- data/lib/ronin/core/params/types.rb +6 -3
- data/lib/ronin/core/params.rb +2 -2
- data/lib/ronin/core/version.rb +3 -3
- data/ronin-core.gemspec +5 -3
- 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
|
#
|
@@ -29,36 +29,36 @@ module Ronin
|
|
29
29
|
# ## Examples
|
30
30
|
#
|
31
31
|
# class BaseClass
|
32
|
-
#
|
32
|
+
#
|
33
33
|
# include Ronin::Core::Params::Mixin
|
34
|
-
#
|
34
|
+
#
|
35
35
|
# end
|
36
36
|
#
|
37
37
|
# class MyModule < BaseClass
|
38
|
-
#
|
38
|
+
#
|
39
39
|
# param :str, desc: 'A basic string param'
|
40
|
-
#
|
40
|
+
#
|
41
41
|
# param :feature_flag, Boolean, desc: 'A boolean param'
|
42
|
-
#
|
42
|
+
#
|
43
43
|
# param :enum, Enum[:one, :two, :three],
|
44
44
|
# desc: 'An enum param'
|
45
45
|
#
|
46
46
|
# param :num1, Integer, desc: 'An integer param'
|
47
|
-
#
|
47
|
+
#
|
48
48
|
# param :num2, Integer, default: 42,
|
49
49
|
# desc: 'A param with a default value'
|
50
|
-
#
|
50
|
+
#
|
51
51
|
# param :num3, Integer, default: ->{ rand(42) },
|
52
52
|
# desc: 'A param with a dynamic default value'
|
53
|
-
#
|
53
|
+
#
|
54
54
|
# param :float, Float, 'Floating point param'
|
55
55
|
#
|
56
56
|
# param :url, URI, desc: 'URL param'
|
57
57
|
#
|
58
58
|
# param :pattern, Regexp, desc: 'Regular Expression param'
|
59
|
-
#
|
59
|
+
#
|
60
60
|
# end
|
61
|
-
#
|
61
|
+
#
|
62
62
|
# mod = MyModule.new(params: {num1: 1, enum: :two})
|
63
63
|
# mod.params
|
64
64
|
# # => {:num2=>42, :num3=>25, :num1=>1, :enum=>:two}
|
@@ -197,7 +197,7 @@ module Ronin
|
|
197
197
|
end
|
198
198
|
|
199
199
|
# The param values.
|
200
|
-
#
|
200
|
+
#
|
201
201
|
# @return [Hash{Symbol => Object}]
|
202
202
|
#
|
203
203
|
# @api public
|
@@ -220,7 +220,7 @@ module Ronin
|
|
220
220
|
#
|
221
221
|
def initialize(*arguments, params: nil, **kwargs, &block)
|
222
222
|
if params then self.params = params
|
223
|
-
else initialize_params
|
223
|
+
else initialize_params
|
224
224
|
end
|
225
225
|
|
226
226
|
super(*arguments,**kwargs,&block)
|
@@ -281,7 +281,7 @@ module Ronin
|
|
281
281
|
#
|
282
282
|
def params=(new_params)
|
283
283
|
# re-initialize the params each time they are set en-mass
|
284
|
-
initialize_params
|
284
|
+
initialize_params
|
285
285
|
|
286
286
|
new_params.each do |name,value|
|
287
287
|
set_param(name,value)
|
@@ -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
|
#
|
@@ -51,7 +51,11 @@ module Ronin
|
|
51
51
|
end
|
52
52
|
|
53
53
|
@values = values
|
54
|
-
@map =
|
54
|
+
@map = {}
|
55
|
+
|
56
|
+
values.each do |value|
|
57
|
+
@map[value.to_s] = value
|
58
|
+
end
|
55
59
|
end
|
56
60
|
|
57
61
|
#
|
@@ -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
|
#
|
@@ -30,7 +30,7 @@ module Ronin
|
|
30
30
|
# The optional minimum value.
|
31
31
|
#
|
32
32
|
# @return [::Integer, nil]
|
33
|
-
#
|
33
|
+
#
|
34
34
|
# @api private
|
35
35
|
attr_reader :min
|
36
36
|
|
@@ -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
|
#
|
@@ -28,6 +28,9 @@ require 'ronin/core/params/types/enum'
|
|
28
28
|
module Ronin
|
29
29
|
module Core
|
30
30
|
module Params
|
31
|
+
#
|
32
|
+
# Contains all {Param::Type} classes.
|
33
|
+
#
|
31
34
|
module Types
|
32
35
|
# Mapping of ruby core classes to param types.
|
33
36
|
TYPE_ALIASES = {
|
@@ -35,7 +38,7 @@ module Ronin
|
|
35
38
|
::Integer => Types::Integer,
|
36
39
|
::Float => Types::Float,
|
37
40
|
::Regexp => Types::Regexp,
|
38
|
-
::URI => Types::URI
|
41
|
+
::URI => Types::URI
|
39
42
|
}
|
40
43
|
|
41
44
|
#
|
data/lib/ronin/core/params.rb
CHANGED
@@ -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
|
#
|
data/lib/ronin/core/version.rb
CHANGED
@@ -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
|
#
|
@@ -19,6 +19,6 @@
|
|
19
19
|
module Ronin
|
20
20
|
module Core
|
21
21
|
# ronin-core version
|
22
|
-
VERSION = '0.1.
|
22
|
+
VERSION = '0.1.1'
|
23
23
|
end
|
24
24
|
end
|
data/ronin-core.gemspec
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'yaml'
|
2
4
|
|
3
5
|
Gem::Specification.new do |gem|
|
@@ -20,10 +22,10 @@ Gem::Specification.new do |gem|
|
|
20
22
|
gem.homepage = gemspec['homepage']
|
21
23
|
gem.metadata = gemspec['metadata'] if gemspec['metadata']
|
22
24
|
|
23
|
-
glob =
|
25
|
+
glob = ->(patterns) { gem.files & Dir[*patterns] }
|
24
26
|
|
25
27
|
gem.files = `git ls-files`.split($/)
|
26
|
-
gem.files
|
28
|
+
gem.files = glob[gemspec['files']] if gemspec['files']
|
27
29
|
gem.files += Array(gemspec['generated_files'])
|
28
30
|
# exclude test files from the packages gem
|
29
31
|
gem.files -= glob[gemspec['test_files'] || 'spec/{**/}*']
|
@@ -44,7 +46,7 @@ Gem::Specification.new do |gem|
|
|
44
46
|
gem.required_rubygems_version = gemspec['required_rubygems_version']
|
45
47
|
gem.post_install_message = gemspec['post_install_message']
|
46
48
|
|
47
|
-
split =
|
49
|
+
split = ->(string) { string.split(/,\s*/) }
|
48
50
|
|
49
51
|
if gemspec['dependencies']
|
50
52
|
gemspec['dependencies'].each do |name,versions|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ronin-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Postmodern
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-02
|
11
|
+
date: 2023-03-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: reline
|
@@ -90,6 +90,7 @@ files:
|
|
90
90
|
- README.md
|
91
91
|
- Rakefile
|
92
92
|
- examples/ruby_shell.rb
|
93
|
+
- examples/test_shell.rb
|
93
94
|
- gemspec.yml
|
94
95
|
- lib/ronin/core/class_registry.rb
|
95
96
|
- lib/ronin/core/cli/command.rb
|