ronin 1.1.0 → 1.2.0
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.
- data/ChangeLog.md +23 -0
- data/README.md +19 -13
- data/Rakefile +2 -1
- data/gemspec.yml +18 -17
- data/lib/bond/completions/ronin.rb +147 -0
- data/lib/ronin/auto_load.rb +30 -28
- data/lib/ronin/database/migrations/1.0.0.rb +1 -0
- data/lib/ronin/model/has_authors.rb +92 -2
- data/lib/ronin/model/has_description.rb +54 -2
- data/lib/ronin/model/has_license.rb +101 -2
- data/lib/ronin/model/has_name.rb +72 -2
- data/lib/ronin/model/has_title.rb +52 -2
- data/lib/ronin/model/has_unique_name.rb +93 -2
- data/lib/ronin/model/has_version.rb +58 -2
- data/lib/ronin/model/model.rb +91 -52
- data/lib/ronin/os.rb +30 -15
- data/lib/ronin/repository.rb +1 -1
- data/lib/ronin/ronin.rb +0 -15
- data/lib/ronin/script/script.rb +257 -2
- data/lib/ronin/ui/console.rb +2 -199
- data/lib/ronin/ui/console/commands.rb +164 -0
- data/lib/ronin/ui/console/console.rb +215 -0
- data/lib/ronin/ui/console/context.rb +95 -0
- data/lib/ronin/version.rb +1 -1
- data/spec/os_spec.rb +18 -13
- metadata +206 -239
- data/lib/ronin/class_methods.rb +0 -49
- data/lib/ronin/model/class_methods.rb +0 -58
- data/lib/ronin/model/has_authors/class_methods.rb +0 -60
- data/lib/ronin/model/has_authors/has_authors.rb +0 -70
- data/lib/ronin/model/has_description/class_methods.rb +0 -49
- data/lib/ronin/model/has_description/has_description.rb +0 -49
- data/lib/ronin/model/has_license/class_methods.rb +0 -68
- data/lib/ronin/model/has_license/has_license.rb +0 -71
- data/lib/ronin/model/has_name/class_methods.rb +0 -48
- data/lib/ronin/model/has_name/has_name.rb +0 -62
- data/lib/ronin/model/has_title/class_methods.rb +0 -48
- data/lib/ronin/model/has_title/has_title.rb +0 -48
- data/lib/ronin/model/has_unique_name/class_methods.rb +0 -51
- data/lib/ronin/model/has_unique_name/has_unique_name.rb +0 -78
- data/lib/ronin/model/has_version/class_methods.rb +0 -54
- data/lib/ronin/model/has_version/has_version.rb +0 -48
- data/lib/ronin/script/class_methods.rb +0 -84
- data/lib/ronin/script/instance_methods.rb +0 -217
@@ -1,48 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
|
3
|
-
#
|
4
|
-
# This file is part of Ronin.
|
5
|
-
#
|
6
|
-
# Ronin is free software: you can redistribute it and/or modify
|
7
|
-
# it under the terms of the GNU General Public License as published by
|
8
|
-
# the Free Software Foundation, either version 3 of the License, or
|
9
|
-
# (at your option) any later version.
|
10
|
-
#
|
11
|
-
# Ronin is distributed in the hope that it will be useful,
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
-
# GNU General Public License for more details.
|
15
|
-
#
|
16
|
-
# You should have received a copy of the GNU General Public License
|
17
|
-
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
|
18
|
-
#
|
19
|
-
|
20
|
-
module Ronin
|
21
|
-
module Model
|
22
|
-
module HasName
|
23
|
-
#
|
24
|
-
# Class methods that are added when {HasName} is included into a
|
25
|
-
# model.
|
26
|
-
#
|
27
|
-
module ClassMethods
|
28
|
-
#
|
29
|
-
# Finds models with names containing a given fragment of text.
|
30
|
-
#
|
31
|
-
# @param [String] fragment
|
32
|
-
# The fragment of text to search for within the names of models.
|
33
|
-
#
|
34
|
-
# @return [Array<Model>]
|
35
|
-
# The found models.
|
36
|
-
#
|
37
|
-
# @example
|
38
|
-
# Exploit.named 'ProFTP'
|
39
|
-
#
|
40
|
-
# @api public
|
41
|
-
#
|
42
|
-
def named(fragment)
|
43
|
-
all(:name.like => "%#{fragment}%")
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
@@ -1,62 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
|
3
|
-
#
|
4
|
-
# This file is part of Ronin.
|
5
|
-
#
|
6
|
-
# Ronin is free software: you can redistribute it and/or modify
|
7
|
-
# it under the terms of the GNU General Public License as published by
|
8
|
-
# the Free Software Foundation, either version 3 of the License, or
|
9
|
-
# (at your option) any later version.
|
10
|
-
#
|
11
|
-
# Ronin is distributed in the hope that it will be useful,
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
-
# GNU General Public License for more details.
|
15
|
-
#
|
16
|
-
# You should have received a copy of the GNU General Public License
|
17
|
-
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
|
18
|
-
#
|
19
|
-
|
20
|
-
require 'ronin/model/has_name/class_methods'
|
21
|
-
require 'ronin/model/model'
|
22
|
-
|
23
|
-
module Ronin
|
24
|
-
module Model
|
25
|
-
#
|
26
|
-
# Adds a `name` property to a model.
|
27
|
-
#
|
28
|
-
module HasName
|
29
|
-
#
|
30
|
-
# Adds the `name` property and {ClassMethods} to the model.
|
31
|
-
#
|
32
|
-
# @param [Class] base
|
33
|
-
# The model.
|
34
|
-
#
|
35
|
-
# @api semipublic
|
36
|
-
#
|
37
|
-
def self.included(base)
|
38
|
-
base.send :include, Model
|
39
|
-
base.send :extend, ClassMethods
|
40
|
-
|
41
|
-
base.module_eval do
|
42
|
-
# The name of the model
|
43
|
-
property :name, String, :required => true, :index => true
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
#
|
48
|
-
# Converts the named resource into a String.
|
49
|
-
#
|
50
|
-
# @return [String]
|
51
|
-
# The name of the resource.
|
52
|
-
#
|
53
|
-
# @since 1.0.0
|
54
|
-
#
|
55
|
-
# @api public
|
56
|
-
#
|
57
|
-
def to_s
|
58
|
-
self.name.to_s
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
|
3
|
-
#
|
4
|
-
# This file is part of Ronin.
|
5
|
-
#
|
6
|
-
# Ronin is free software: you can redistribute it and/or modify
|
7
|
-
# it under the terms of the GNU General Public License as published by
|
8
|
-
# the Free Software Foundation, either version 3 of the License, or
|
9
|
-
# (at your option) any later version.
|
10
|
-
#
|
11
|
-
# Ronin is distributed in the hope that it will be useful,
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
-
# GNU General Public License for more details.
|
15
|
-
#
|
16
|
-
# You should have received a copy of the GNU General Public License
|
17
|
-
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
|
18
|
-
#
|
19
|
-
|
20
|
-
module Ronin
|
21
|
-
module Model
|
22
|
-
module HasTitle
|
23
|
-
#
|
24
|
-
# Class methods that are added when {HasTitle} are included into a
|
25
|
-
# model.
|
26
|
-
#
|
27
|
-
module ClassMethods
|
28
|
-
#
|
29
|
-
# Finds models with titles containing a given fragment of text.
|
30
|
-
#
|
31
|
-
# @param [String] fragment
|
32
|
-
# The fragment of text to match titles with.
|
33
|
-
#
|
34
|
-
# @return [Array<Model>]
|
35
|
-
# The found models.
|
36
|
-
#
|
37
|
-
# @example
|
38
|
-
# Vuln.titled 'bypass'
|
39
|
-
#
|
40
|
-
# @api public
|
41
|
-
#
|
42
|
-
def titled(fragment)
|
43
|
-
all(:title.like => "%#{fragment}%")
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
|
3
|
-
#
|
4
|
-
# This file is part of Ronin.
|
5
|
-
#
|
6
|
-
# Ronin is free software: you can redistribute it and/or modify
|
7
|
-
# it under the terms of the GNU General Public License as published by
|
8
|
-
# the Free Software Foundation, either version 3 of the License, or
|
9
|
-
# (at your option) any later version.
|
10
|
-
#
|
11
|
-
# Ronin is distributed in the hope that it will be useful,
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
-
# GNU General Public License for more details.
|
15
|
-
#
|
16
|
-
# You should have received a copy of the GNU General Public License
|
17
|
-
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
|
18
|
-
#
|
19
|
-
|
20
|
-
require 'ronin/model/has_title/class_methods'
|
21
|
-
require 'ronin/model/model'
|
22
|
-
|
23
|
-
module Ronin
|
24
|
-
module Model
|
25
|
-
#
|
26
|
-
# Adds a `title` property to a model.
|
27
|
-
#
|
28
|
-
module HasTitle
|
29
|
-
#
|
30
|
-
# Adds the `title` property and {ClassMethods} to the model.
|
31
|
-
#
|
32
|
-
# @param [Class] base
|
33
|
-
# The model.
|
34
|
-
#
|
35
|
-
# @api semipublic
|
36
|
-
#
|
37
|
-
def self.included(base)
|
38
|
-
base.send :include, Model
|
39
|
-
base.send :extend, ClassMethods
|
40
|
-
|
41
|
-
base.module_eval do
|
42
|
-
# The title of the model
|
43
|
-
property :title, String
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
@@ -1,51 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
|
3
|
-
#
|
4
|
-
# This file is part of Ronin.
|
5
|
-
#
|
6
|
-
# Ronin is free software: you can redistribute it and/or modify
|
7
|
-
# it under the terms of the GNU General Public License as published by
|
8
|
-
# the Free Software Foundation, either version 3 of the License, or
|
9
|
-
# (at your option) any later version.
|
10
|
-
#
|
11
|
-
# Ronin is distributed in the hope that it will be useful,
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
-
# GNU General Public License for more details.
|
15
|
-
#
|
16
|
-
# You should have received a copy of the GNU General Public License
|
17
|
-
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
|
18
|
-
#
|
19
|
-
|
20
|
-
module Ronin
|
21
|
-
module Model
|
22
|
-
module HasUniqueName
|
23
|
-
#
|
24
|
-
# Class methods that will be added when {HasUniqueName} is included.
|
25
|
-
#
|
26
|
-
module ClassMethods
|
27
|
-
#
|
28
|
-
# Searches for models with the unique name.
|
29
|
-
#
|
30
|
-
# @param [String, Symbol, Integer] key
|
31
|
-
# The unique name or index to search for.
|
32
|
-
#
|
33
|
-
# @return [Model, nil]
|
34
|
-
# The matching model.
|
35
|
-
#
|
36
|
-
# @since 1.0.0
|
37
|
-
#
|
38
|
-
# @api public
|
39
|
-
#
|
40
|
-
def [](key)
|
41
|
-
case key
|
42
|
-
when String, Symbol
|
43
|
-
first(:name => key.to_s)
|
44
|
-
else
|
45
|
-
super(key)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
@@ -1,78 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
|
3
|
-
#
|
4
|
-
# This file is part of Ronin.
|
5
|
-
#
|
6
|
-
# Ronin is free software: you can redistribute it and/or modify
|
7
|
-
# it under the terms of the GNU General Public License as published by
|
8
|
-
# the Free Software Foundation, either version 3 of the License, or
|
9
|
-
# (at your option) any later version.
|
10
|
-
#
|
11
|
-
# Ronin is distributed in the hope that it will be useful,
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
-
# GNU General Public License for more details.
|
15
|
-
#
|
16
|
-
# You should have received a copy of the GNU General Public License
|
17
|
-
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
|
18
|
-
#
|
19
|
-
|
20
|
-
require 'ronin/model/has_unique_name/class_methods'
|
21
|
-
require 'ronin/model/has_name/class_methods'
|
22
|
-
|
23
|
-
module Ronin
|
24
|
-
module Model
|
25
|
-
#
|
26
|
-
# Adds a unique `name` property to a model.
|
27
|
-
#
|
28
|
-
module HasUniqueName
|
29
|
-
#
|
30
|
-
# Adds the unique `name` property and {HasName::ClassMethods} to the
|
31
|
-
# model.
|
32
|
-
#
|
33
|
-
# @param [Class] base
|
34
|
-
# The model.
|
35
|
-
#
|
36
|
-
# @api semipublic
|
37
|
-
#
|
38
|
-
def self.included(base)
|
39
|
-
base.send :include, Model
|
40
|
-
base.send :extend, HasName::ClassMethods,
|
41
|
-
HasUniqueName::ClassMethods
|
42
|
-
|
43
|
-
base.module_eval do
|
44
|
-
# The name of the model
|
45
|
-
property :name, String, :required => true, :unique => true
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
#
|
50
|
-
# Converts the named resource into a String.
|
51
|
-
#
|
52
|
-
# @return [String]
|
53
|
-
# The name of the resource.
|
54
|
-
#
|
55
|
-
# @since 1.0.0
|
56
|
-
#
|
57
|
-
# @api public
|
58
|
-
#
|
59
|
-
def to_s
|
60
|
-
self.name.to_s
|
61
|
-
end
|
62
|
-
|
63
|
-
#
|
64
|
-
# Inspects the resource with the unique name.
|
65
|
-
#
|
66
|
-
# @return [String]
|
67
|
-
# The inspected resource.
|
68
|
-
#
|
69
|
-
# @since 1.0.0
|
70
|
-
#
|
71
|
-
# @api public
|
72
|
-
#
|
73
|
-
def inspect
|
74
|
-
"#<#{self.class}: #{self.name}>"
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
|
3
|
-
#
|
4
|
-
# This file is part of Ronin.
|
5
|
-
#
|
6
|
-
# Ronin is free software: you can redistribute it and/or modify
|
7
|
-
# it under the terms of the GNU General Public License as published by
|
8
|
-
# the Free Software Foundation, either version 3 of the License, or
|
9
|
-
# (at your option) any later version.
|
10
|
-
#
|
11
|
-
# Ronin is distributed in the hope that it will be useful,
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
-
# GNU General Public License for more details.
|
15
|
-
#
|
16
|
-
# You should have received a copy of the GNU General Public License
|
17
|
-
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
|
18
|
-
#
|
19
|
-
|
20
|
-
module Ronin
|
21
|
-
module Model
|
22
|
-
module HasVersion
|
23
|
-
#
|
24
|
-
# Class methods that are added when {HasVersion} is included into a
|
25
|
-
# model.
|
26
|
-
#
|
27
|
-
module ClassMethods
|
28
|
-
#
|
29
|
-
# Finds all models with a specific version.
|
30
|
-
#
|
31
|
-
# @param [String] version
|
32
|
-
# The specific version to search for.
|
33
|
-
#
|
34
|
-
# @return [Array]
|
35
|
-
# The models with the specific version.
|
36
|
-
#
|
37
|
-
# @api public
|
38
|
-
#
|
39
|
-
def revision(version)
|
40
|
-
all(:version => version.to_s)
|
41
|
-
end
|
42
|
-
|
43
|
-
#
|
44
|
-
# Finds latest version of the model.
|
45
|
-
#
|
46
|
-
# @api public
|
47
|
-
#
|
48
|
-
def latest
|
49
|
-
first(:order => [:version.desc])
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
|
3
|
-
#
|
4
|
-
# This file is part of Ronin.
|
5
|
-
#
|
6
|
-
# Ronin is free software: you can redistribute it and/or modify
|
7
|
-
# it under the terms of the GNU General Public License as published by
|
8
|
-
# the Free Software Foundation, either version 3 of the License, or
|
9
|
-
# (at your option) any later version.
|
10
|
-
#
|
11
|
-
# Ronin is distributed in the hope that it will be useful,
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
-
# GNU General Public License for more details.
|
15
|
-
#
|
16
|
-
# You should have received a copy of the GNU General Public License
|
17
|
-
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
|
18
|
-
#
|
19
|
-
|
20
|
-
require 'ronin/model/has_version/class_methods'
|
21
|
-
require 'ronin/model/model'
|
22
|
-
|
23
|
-
module Ronin
|
24
|
-
module Model
|
25
|
-
#
|
26
|
-
# Adds a `version` property to a model.
|
27
|
-
#
|
28
|
-
module HasVersion
|
29
|
-
#
|
30
|
-
# Adds the `version` property and {ClassMethods} to the model.
|
31
|
-
#
|
32
|
-
# @param [Class] base
|
33
|
-
# The model.
|
34
|
-
#
|
35
|
-
# @api semipublic
|
36
|
-
#
|
37
|
-
def self.included(base)
|
38
|
-
base.send :include, Model
|
39
|
-
base.send :extend, ClassMethods
|
40
|
-
|
41
|
-
base.module_eval do
|
42
|
-
# The version of the model
|
43
|
-
property :version, String, :default => '0.1', :index => true
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|