ronin 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|