ronin 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.
- data/History.txt +13 -0
- data/Manifest.txt +19 -17
- data/README.txt +9 -9
- data/Rakefile +1 -1
- data/bin/ronin +2 -2
- data/lib/ronin/author.rb +1 -1
- data/lib/ronin/cache/extension.rb +4 -12
- data/lib/ronin/cache/extension_cache.rb +1 -3
- data/lib/ronin/cache/overlay.rb +3 -3
- data/lib/ronin/cache/overlay_cache.rb +21 -15
- data/lib/ronin/chars/char_set.rb +6 -12
- data/lib/ronin/code/reference.rb +142 -0
- data/lib/ronin/code/symbol_table.rb +90 -0
- data/lib/ronin/context.rb +1 -1
- data/lib/ronin/database.rb +12 -3
- data/lib/ronin/extensions/string.rb +49 -0
- data/lib/ronin/formatting/extensions/text/string.rb +10 -5
- data/lib/ronin/object_context.rb +3 -9
- data/lib/ronin/pending_context.rb +8 -0
- data/lib/ronin/platform.rb +2 -2
- data/lib/ronin/product.rb +2 -2
- data/lib/ronin/program/command.rb +203 -0
- data/lib/ronin/program/commands/add.rb +71 -0
- data/lib/ronin/{runner/program → program}/commands/help.rb +14 -16
- data/lib/ronin/program/commands/install.rb +64 -0
- data/lib/ronin/program/commands/list.rb +79 -0
- data/lib/ronin/{runner/program/commands/update.rb → program/commands/remove.rb} +18 -18
- data/lib/ronin/{runner/program/commands/remove.rb → program/commands/uninstall.rb} +17 -19
- data/lib/ronin/{runner/program/commands/uninstall.rb → program/commands/update.rb} +17 -21
- data/lib/ronin/{runner/program → program}/commands.rb +9 -9
- data/lib/ronin/{runner/program → program}/exceptions/unknown_command.rb +2 -4
- data/lib/ronin/{runner.rb → program/exceptions.rb} +1 -1
- data/lib/ronin/{runner/program → program}/options.rb +4 -8
- data/lib/ronin/program/program.rb +168 -0
- data/lib/ronin/{runner/program/exceptions.rb → program.rb} +2 -1
- data/lib/ronin/rpc/client.rb +1 -1
- data/lib/ronin/version.rb +1 -1
- data/spec/code/reference_spec.rb +72 -0
- data/spec/code/symbol_table_spec.rb +35 -0
- data/spec/extensions/string_spec.rb +88 -4
- data/spec/formatting/text_spec.rb +2 -2
- data/spec/helpers.rb +0 -0
- metadata +25 -23
- data/lib/ronin/runner/program/command.rb +0 -204
- data/lib/ronin/runner/program/commands/add.rb +0 -73
- data/lib/ronin/runner/program/commands/install.rb +0 -65
- data/lib/ronin/runner/program/commands/list.rb +0 -81
- data/lib/ronin/runner/program/program.rb +0 -175
- data/lib/ronin/runner/program/runner.rb +0 -35
- data/lib/ronin/runner/program.rb +0 -26
@@ -21,37 +21,33 @@
|
|
21
21
|
#++
|
22
22
|
#
|
23
23
|
|
24
|
-
require 'ronin/
|
24
|
+
require 'ronin/program/command'
|
25
25
|
require 'ronin/cache/overlay'
|
26
26
|
|
27
27
|
module Ronin
|
28
|
-
module
|
29
|
-
|
30
|
-
class UninstallCommand < Command
|
28
|
+
module Program
|
29
|
+
class UpdateCommand < Command
|
31
30
|
|
32
|
-
|
31
|
+
command :update, :up
|
33
32
|
|
34
|
-
|
35
|
-
|
33
|
+
options('[NAME ...] [options]') do |opts|
|
34
|
+
opts.options
|
36
35
|
|
37
|
-
|
38
|
-
|
39
|
-
end
|
40
|
-
|
41
|
-
opts.summary('Uninstall the specified repositories')
|
36
|
+
opts.arguments do
|
37
|
+
opts.arg('NAME','The repository to update')
|
42
38
|
end
|
43
39
|
|
44
|
-
|
45
|
-
|
46
|
-
Cache::Overlay.save_cache do
|
47
|
-
Cache::Overlay.uninstall(name) do |repo|
|
48
|
-
puts "Uninstalling #{repo}..."
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
40
|
+
opts.summary('Updates all or the specified repositories')
|
41
|
+
end
|
53
42
|
|
43
|
+
def arguments(*args)
|
44
|
+
if args.empty?
|
45
|
+
Cache::Overlay.each { |repo| repo.update }
|
46
|
+
else
|
47
|
+
args.each { |name| Cache::Overlay.update(name) }
|
48
|
+
end
|
54
49
|
end
|
50
|
+
|
55
51
|
end
|
56
52
|
end
|
57
53
|
end
|
@@ -21,13 +21,13 @@
|
|
21
21
|
#++
|
22
22
|
#
|
23
23
|
|
24
|
-
require 'ronin/
|
25
|
-
require 'ronin/
|
26
|
-
require 'ronin/
|
27
|
-
require 'ronin/
|
28
|
-
require 'ronin/
|
29
|
-
require 'ronin/
|
30
|
-
require 'ronin/
|
31
|
-
require 'ronin/extensions'
|
24
|
+
require 'ronin/program/commands/add'
|
25
|
+
require 'ronin/program/commands/install'
|
26
|
+
require 'ronin/program/commands/list'
|
27
|
+
require 'ronin/program/commands/update'
|
28
|
+
require 'ronin/program/commands/uninstall'
|
29
|
+
require 'ronin/program/commands/remove'
|
30
|
+
require 'ronin/program/commands/help'
|
31
|
+
require 'ronin/extensions/kernel'
|
32
32
|
|
33
|
-
ronin_require 'ronin/
|
33
|
+
ronin_require 'ronin/program/commands'
|
@@ -21,13 +21,13 @@
|
|
21
21
|
#++
|
22
22
|
#
|
23
23
|
|
24
|
-
require 'ronin/
|
24
|
+
require 'ronin/program/program'
|
25
25
|
|
26
26
|
require 'optparse'
|
27
27
|
require 'ostruct'
|
28
28
|
|
29
29
|
module Ronin
|
30
|
-
module
|
30
|
+
module Program
|
31
31
|
class Options
|
32
32
|
|
33
33
|
# Settings used by the options
|
@@ -147,9 +147,7 @@ module Ronin
|
|
147
147
|
def summary(*lines)
|
148
148
|
@parser.separator ' Summary:'
|
149
149
|
|
150
|
-
lines.each
|
151
|
-
@parser.separator " #{line}"
|
152
|
-
end
|
150
|
+
lines.each { |line| @parser.separator " #{line}" }
|
153
151
|
|
154
152
|
@parser.separator ''
|
155
153
|
return self
|
@@ -161,9 +159,7 @@ module Ronin
|
|
161
159
|
def defaults(*flags)
|
162
160
|
@parser.separator ' Defaults:'
|
163
161
|
|
164
|
-
flags.each
|
165
|
-
@parser.separator " #{flag}"
|
166
|
-
end
|
162
|
+
flags.each { |flag| @parser.separator " #{flag}" }
|
167
163
|
|
168
164
|
@parser.separator ''
|
169
165
|
return self
|
@@ -0,0 +1,168 @@
|
|
1
|
+
#
|
2
|
+
#--
|
3
|
+
# Ronin - A Ruby platform designed for information security and data
|
4
|
+
# exploration tasks.
|
5
|
+
#
|
6
|
+
# Copyright (c) 2006-2008 Hal Brodigan (postmodern.mod3 at gmail.com)
|
7
|
+
#
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
9
|
+
# it under the terms of the GNU General Public License as published by
|
10
|
+
# the Free Software Foundation; either version 2 of the License, or
|
11
|
+
# (at your option) any later version.
|
12
|
+
#
|
13
|
+
# This program is distributed in the hope that it will be useful,
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
# GNU General Public License for more details.
|
17
|
+
#
|
18
|
+
# You should have received a copy of the GNU General Public License
|
19
|
+
# along with this program; if not, write to the Free Software
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21
|
+
#++
|
22
|
+
#
|
23
|
+
|
24
|
+
require 'ronin/program/command'
|
25
|
+
require 'ronin/program/options'
|
26
|
+
require 'ronin/program/exceptions/unknown_command'
|
27
|
+
require 'ronin/console'
|
28
|
+
require 'ronin/version'
|
29
|
+
|
30
|
+
module Ronin
|
31
|
+
module Program
|
32
|
+
#
|
33
|
+
# Returns the commands registered with the Program.
|
34
|
+
#
|
35
|
+
def Program.commands
|
36
|
+
@@ronin_commands ||= []
|
37
|
+
end
|
38
|
+
|
39
|
+
#
|
40
|
+
# Returns the Hash of the Command names and their Command objects
|
41
|
+
# registered with the Program.
|
42
|
+
#
|
43
|
+
def Program.commands_by_name
|
44
|
+
@@ronin_commands_by_name ||= {}
|
45
|
+
end
|
46
|
+
|
47
|
+
#
|
48
|
+
# Returns +true+ if the a Command with the specified _name_ was
|
49
|
+
# registered with the Program.
|
50
|
+
#
|
51
|
+
def Program.has_command?(name)
|
52
|
+
Program.commands_by_name.has_key?(name.to_s)
|
53
|
+
end
|
54
|
+
|
55
|
+
#
|
56
|
+
# Returns the Command registered with the Program with the specified
|
57
|
+
# _name_.
|
58
|
+
#
|
59
|
+
def Program.get_command(name)
|
60
|
+
name = name.to_s
|
61
|
+
|
62
|
+
unless Program.has_command?(name)
|
63
|
+
raise(UnknownCommand,"unknown command #{name.dump}",caller)
|
64
|
+
end
|
65
|
+
|
66
|
+
return Program.commands_by_name[name]
|
67
|
+
end
|
68
|
+
|
69
|
+
#
|
70
|
+
# Prints the specified error _message_.
|
71
|
+
#
|
72
|
+
def Program.error(message)
|
73
|
+
STDERR.puts "ronin: #{message}"
|
74
|
+
return false
|
75
|
+
end
|
76
|
+
|
77
|
+
#
|
78
|
+
# Exits successfully from the Program. If a _block_ is given, it will
|
79
|
+
# be called before the Program is exited.
|
80
|
+
#
|
81
|
+
def Program.success(&block)
|
82
|
+
block.call(self) if block
|
83
|
+
exit
|
84
|
+
end
|
85
|
+
|
86
|
+
#
|
87
|
+
# Prints the given error _messages_ and exits unseccessfully from the
|
88
|
+
# Program. If a _block_ is given, it will be called before any
|
89
|
+
# error _messages_ are printed.
|
90
|
+
#
|
91
|
+
def Program.fail(*messages,&block)
|
92
|
+
block.call(self) if block
|
93
|
+
messages.each { |mesg| Program.error(mesg) }
|
94
|
+
|
95
|
+
exit -1
|
96
|
+
end
|
97
|
+
|
98
|
+
#
|
99
|
+
# If a _topic_ is given, the help message for that _topic_ will be
|
100
|
+
# printed, otherwise a list of available commands will be printed.
|
101
|
+
#
|
102
|
+
def Program.help(topic=nil)
|
103
|
+
if topic
|
104
|
+
begin
|
105
|
+
get_command(topic).help
|
106
|
+
rescue UnknownCommand => exp
|
107
|
+
Program.fail(exp)
|
108
|
+
end
|
109
|
+
else
|
110
|
+
puts 'Available commands:'
|
111
|
+
|
112
|
+
Program.commands.sort_by { |cmd| cmd.command_names[0] }.each { |cmd|
|
113
|
+
puts " #{cmd.command_names.join(', ')}"
|
114
|
+
}
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
#
|
119
|
+
# The default command to run with the given _argv_ Array when no
|
120
|
+
# sub-command is given.
|
121
|
+
#
|
122
|
+
def Program.default_command(*argv)
|
123
|
+
opts = Options.new('ronin','<command> [options]') { |opts|
|
124
|
+
opts.options do |opts|
|
125
|
+
opts.on('-r','--require LIB','require the specified library or path') do |lib|
|
126
|
+
Console.auto_load << lib.to_s
|
127
|
+
end
|
128
|
+
|
129
|
+
opts.on('-V','--version','print version information and exit') do
|
130
|
+
Program.success do
|
131
|
+
puts "Ronin #{Ronin::VERSION}"
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
opts.summary('Ronin is a Ruby development platform designed for information security','and data exploration tasks.')
|
137
|
+
}
|
138
|
+
|
139
|
+
return opts.parse(argv) { |opts,args| Console.start }
|
140
|
+
end
|
141
|
+
|
142
|
+
#
|
143
|
+
# Runs the Program with the given _argv_ Array. If the first argument
|
144
|
+
# is a sub-command name, the Program will attempt to find and execute
|
145
|
+
# the Command with the same name.
|
146
|
+
#
|
147
|
+
def Program.run(*argv)
|
148
|
+
begin
|
149
|
+
if (argv.empty? || argv[0][0..0]=='-')
|
150
|
+
Program.default_command(*argv)
|
151
|
+
else
|
152
|
+
cmd = argv.first
|
153
|
+
argv = argv[1..-1]
|
154
|
+
|
155
|
+
if Program.has_command?(cmd)
|
156
|
+
Program.commands_by_name[cmd].run(*argv)
|
157
|
+
else
|
158
|
+
Program.fail("unknown command #{cmd.dump}")
|
159
|
+
end
|
160
|
+
end
|
161
|
+
rescue OptionParser::MissingArgument, OptionParser::InvalidOption => e
|
162
|
+
Program.fail(e)
|
163
|
+
end
|
164
|
+
|
165
|
+
return true
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
data/lib/ronin/rpc/client.rb
CHANGED
data/lib/ronin/version.rb
CHANGED
@@ -0,0 +1,72 @@
|
|
1
|
+
require 'ronin/code/reference'
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Code::Reference do
|
6
|
+
before(:all) do
|
7
|
+
class Thing
|
8
|
+
|
9
|
+
def exposed
|
10
|
+
1
|
11
|
+
end
|
12
|
+
|
13
|
+
protected
|
14
|
+
|
15
|
+
def not_exposed
|
16
|
+
2
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
@object = Thing.new
|
22
|
+
@ref = Code::Reference.new(@object)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should provide direct access to the referenced object" do
|
26
|
+
@ref.value.should == @object
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should be a kind of Reference" do
|
30
|
+
@ref.kind_of?(Code::Reference).should == true
|
31
|
+
@ref.is_a?(Code::Reference).should == true
|
32
|
+
@ref.instance_of?(Code::Reference).should == true
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should have the class of the referenced object" do
|
36
|
+
@ref.class.should == Thing
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should be a kind of the referenced object type" do
|
40
|
+
@ref.kind_of?(Thing).should == true
|
41
|
+
@ref.is_a?(Thing).should == true
|
42
|
+
@ref.instance_of?(Thing).should == true
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should be equal to itself" do
|
46
|
+
@ref.eql?(@ref).should == true
|
47
|
+
@ref.should == @ref
|
48
|
+
@ref.should === @ref
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should be equal to the referenced object" do
|
52
|
+
@ref.eql?(@object).should == true
|
53
|
+
@ref.should == @object
|
54
|
+
@ref.should === @object
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should respond to Reference methods" do
|
58
|
+
@ref.respond_to?(:value).should == true
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should respond to the methods of the referenced object" do
|
62
|
+
@ref.respond_to?(:exposed).should == true
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should relay method calls to the referenced object" do
|
66
|
+
@ref.exposed.should == 1
|
67
|
+
end
|
68
|
+
|
69
|
+
it "should raise a NoMethodError when trying to call a protected or private method" do
|
70
|
+
lambda { @ref.not_exposed }.should raise_error(NoMethodError)
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'ronin/code/symbol_table'
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Code::SymbolTable do
|
6
|
+
before(:all) do
|
7
|
+
@one = [:a, :b, :c]
|
8
|
+
@two = {:one => 1, :two => 2}
|
9
|
+
|
10
|
+
@table = Code::SymbolTable.new(:one => @one, :two => @two)
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should have symbols" do
|
14
|
+
@table.has_symbol?(:one).should == true
|
15
|
+
@table.has_symbol?(:two).should == true
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should provide transparent access to the symbol values" do
|
19
|
+
@table[:one].should == [:a, :b, :c]
|
20
|
+
|
21
|
+
@table[:one] = [:d, :e]
|
22
|
+
@table[:one].should == [:d, :e]
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should provide direct access to the symbols" do
|
26
|
+
@table.symbol(:two).value.should == {:one => 1, :two => 2}
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should be able to set symbols en-mass" do
|
30
|
+
@table.symbols = {:three => 3, :four => 4}
|
31
|
+
|
32
|
+
@table[:three].should == 3
|
33
|
+
@table[:four].should == 4
|
34
|
+
end
|
35
|
+
end
|
@@ -3,11 +3,95 @@ require 'ronin/extensions/string'
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
5
|
describe String do
|
6
|
-
|
7
|
-
|
6
|
+
describe "to_method_name" do
|
7
|
+
it "should be able to convert proper names to method names" do
|
8
|
+
"Proper Name".to_method_name.should == 'proper_name'
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should be able to convert Class names to method names" do
|
12
|
+
"Namespace::Test".to_method_name.should == 'namespace_test'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "common_prefix" do
|
17
|
+
it "should find the common prefix between two Strings" do
|
18
|
+
one = 'What is puzzling you is the nature of my game'
|
19
|
+
two = 'What is puzzling you is the nature of my name'
|
20
|
+
common = 'What is puzzling you is the nature of my '
|
21
|
+
|
22
|
+
one.common_prefix(two).should == common
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should return the common prefix between two Strings with no uncommon postfix" do
|
26
|
+
one = "1234"
|
27
|
+
two = "12345"
|
28
|
+
common = "1234"
|
29
|
+
|
30
|
+
one.common_prefix(two).should == common
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should return an empty String if there is no common prefix" do
|
34
|
+
one = 'Tell me people'
|
35
|
+
two = 'Whats my name'
|
36
|
+
|
37
|
+
one.common_prefix(two).should == ''
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should return an empty String if one of the strings is also empty" do
|
41
|
+
one = 'Haha'
|
42
|
+
two = ''
|
43
|
+
|
44
|
+
one.common_prefix(two).should == ''
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "common_postfix" do
|
49
|
+
it "should find the common postfix between two Strings" do
|
50
|
+
one = 'Tell me baby whats my name'
|
51
|
+
two = "Can't you guess my name"
|
52
|
+
common = 's my name'
|
53
|
+
|
54
|
+
one.common_postfix(two).should == common
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should return an empty String if there is no common postfix" do
|
58
|
+
one = 'You got to right up, stand up'
|
59
|
+
two = 'stand up for your rights'
|
60
|
+
|
61
|
+
one.common_postfix(two).should == ''
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should return an empty String if one of the strings is also empty" do
|
65
|
+
one = 'You and I must fight for our rights'
|
66
|
+
two = ''
|
67
|
+
|
68
|
+
one.common_postfix(two).should == ''
|
69
|
+
end
|
8
70
|
end
|
9
71
|
|
10
|
-
|
11
|
-
"
|
72
|
+
describe "uncommon_substring" do
|
73
|
+
it "should find the uncommon substring between two Strings" do
|
74
|
+
one = "Tell me baby whats my name"
|
75
|
+
two = "Tell me honey whats my name"
|
76
|
+
uncommon = 'bab'
|
77
|
+
|
78
|
+
one.uncommon_substring(two).should == uncommon
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should find the uncommon substring between two Strings with a common prefix" do
|
82
|
+
one = 'You and I must fight for our rights'
|
83
|
+
two = 'You and I must fight to survive'
|
84
|
+
uncommon = 'for our rights'
|
85
|
+
|
86
|
+
one.uncommon_substring(two).should == uncommon
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should find the uncommon substring between two Strings with a common postfix" do
|
90
|
+
one = 'Tell me baby whats my name'
|
91
|
+
two = "Can't you guess my name"
|
92
|
+
uncommon = 'Tell me baby what'
|
93
|
+
|
94
|
+
one.uncommon_substring(two).should == uncommon
|
95
|
+
end
|
12
96
|
end
|
13
97
|
end
|
@@ -15,7 +15,7 @@ describe String do
|
|
15
15
|
@string.respond_to?('format_bytes').should == true
|
16
16
|
end
|
17
17
|
|
18
|
-
it "should provide String#
|
19
|
-
@string.respond_to?('
|
18
|
+
it "should provide String#random_case" do
|
19
|
+
@string.respond_to?('random_case').should == true
|
20
20
|
end
|
21
21
|
end
|
data/spec/helpers.rb
ADDED
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ronin
|
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 Modulus III
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-10-26 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -103,14 +103,14 @@ dependencies:
|
|
103
103
|
version: 0.9.3
|
104
104
|
version:
|
105
105
|
- !ruby/object:Gem::Dependency
|
106
|
-
name:
|
106
|
+
name: reverse-require
|
107
107
|
type: :runtime
|
108
108
|
version_requirement:
|
109
109
|
version_requirements: !ruby/object:Gem::Requirement
|
110
110
|
requirements:
|
111
111
|
- - ">="
|
112
112
|
- !ruby/object:Gem::Version
|
113
|
-
version: 0.1.
|
113
|
+
version: 0.1.2
|
114
114
|
version:
|
115
115
|
- !ruby/object:Gem::Dependency
|
116
116
|
name: repertoire
|
@@ -130,7 +130,7 @@ dependencies:
|
|
130
130
|
requirements:
|
131
131
|
- - ">="
|
132
132
|
- !ruby/object:Gem::Version
|
133
|
-
version: 1.
|
133
|
+
version: 1.8.2
|
134
134
|
version:
|
135
135
|
description: Ronin is a Ruby platform designed for information security and data exploration tasks. Ronin allows for the rapid development and distribution of code over many of the common Source-Code-Management (SCM) systems.
|
136
136
|
email:
|
@@ -232,6 +232,8 @@ files:
|
|
232
232
|
- lib/ronin/network/http.rb
|
233
233
|
- lib/ronin/network/http/exceptions.rb
|
234
234
|
- lib/ronin/network/http/exceptions/unknown_request.rb
|
235
|
+
- lib/ronin/code/reference.rb
|
236
|
+
- lib/ronin/code/symbol_table.rb
|
235
237
|
- lib/ronin/rpc.rb
|
236
238
|
- lib/ronin/rpc/exceptions.rb
|
237
239
|
- lib/ronin/rpc/exceptions/not_implemented.rb
|
@@ -284,26 +286,24 @@ files:
|
|
284
286
|
- lib/ronin/cache/ronin.rb
|
285
287
|
- lib/ronin/console.rb
|
286
288
|
- lib/ronin/shell.rb
|
287
|
-
- lib/ronin/
|
288
|
-
- lib/ronin/
|
289
|
-
- lib/ronin/
|
290
|
-
- lib/ronin/
|
291
|
-
- lib/ronin/
|
292
|
-
- lib/ronin/
|
293
|
-
- lib/ronin/
|
294
|
-
- lib/ronin/
|
295
|
-
- lib/ronin/
|
296
|
-
- lib/ronin/
|
297
|
-
- lib/ronin/
|
298
|
-
- lib/ronin/
|
299
|
-
- lib/ronin/
|
300
|
-
- lib/ronin/
|
301
|
-
- lib/ronin/runner/program/program.rb
|
302
|
-
- lib/ronin/runner/program/runner.rb
|
289
|
+
- lib/ronin/program.rb
|
290
|
+
- lib/ronin/program/exceptions.rb
|
291
|
+
- lib/ronin/program/exceptions/unknown_command.rb
|
292
|
+
- lib/ronin/program/command.rb
|
293
|
+
- lib/ronin/program/options.rb
|
294
|
+
- lib/ronin/program/commands.rb
|
295
|
+
- lib/ronin/program/commands/add.rb
|
296
|
+
- lib/ronin/program/commands/install.rb
|
297
|
+
- lib/ronin/program/commands/list.rb
|
298
|
+
- lib/ronin/program/commands/update.rb
|
299
|
+
- lib/ronin/program/commands/remove.rb
|
300
|
+
- lib/ronin/program/commands/uninstall.rb
|
301
|
+
- lib/ronin/program/commands/help.rb
|
302
|
+
- lib/ronin/program/program.rb
|
303
303
|
- lib/ronin/ronin.rb
|
304
304
|
- lib/ronin/version.rb
|
305
305
|
- tasks/spec.rb
|
306
|
-
- spec/helpers
|
306
|
+
- spec/helpers.rb
|
307
307
|
- spec/spec_helper.rb
|
308
308
|
- spec/arch_spec.rb
|
309
309
|
- spec/author_spec.rb
|
@@ -322,6 +322,8 @@ files:
|
|
322
322
|
- spec/formatting/html_spec.rb
|
323
323
|
- spec/formatting/http_spec.rb
|
324
324
|
- spec/formatting/text_spec.rb
|
325
|
+
- spec/code/reference_spec.rb
|
326
|
+
- spec/code/symbol_table_spec.rb
|
325
327
|
- spec/license_spec.rb
|
326
328
|
- spec/path_spec.rb
|
327
329
|
- spec/platform_spec.rb
|
@@ -353,7 +355,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
353
355
|
requirements: []
|
354
356
|
|
355
357
|
rubyforge_project: ronin
|
356
|
-
rubygems_version: 1.
|
358
|
+
rubygems_version: 1.3.0
|
357
359
|
signing_key:
|
358
360
|
specification_version: 2
|
359
361
|
summary: Ronin is a Ruby platform designed for information security and data exploration tasks
|