ronin 1.0.0.rc3 → 1.0.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/.yardopts +0 -1
- data/ChangeLog.md +4 -4
- data/README.md +5 -5
- data/gemspec.yml +13 -14
- data/lib/ronin/cached_file.rb +3 -5
- data/lib/ronin/database/migrations/create_addresses_table.rb +1 -1
- data/lib/ronin/database/migrations/create_url_query_params_table.rb +1 -1
- data/lib/ronin/host_name.rb +5 -0
- data/lib/ronin/installation.rb +33 -43
- data/lib/ronin/mac_address.rb +5 -0
- data/lib/ronin/model/cacheable/cacheable.rb +4 -10
- data/lib/ronin/ui/cli/cli.rb +6 -10
- data/lib/ronin/ui/cli/commands/help.rb +1 -2
- data/lib/ronin/url_query_param.rb +4 -0
- data/lib/ronin/version.rb +1 -1
- data/spec/cached_file_spec.rb +11 -0
- data/spec/helpers/repos/test1/cache/cacheable_model/one.rb +1 -1
- data/spec/helpers/repos/test2/cache/cacheable_model/exceptions.rb +1 -1
- data/spec/helpers/repos/test2/cache/cacheable_model/load_errors.rb +1 -1
- data/spec/helpers/repos/test2/cache/cacheable_model/name_errors.rb +7 -0
- data/spec/helpers/repos/test2/cache/cacheable_model/no_method_errors.rb +1 -1
- data/spec/helpers/repos/test2/cache/cacheable_model/syntax_errors.rb +1 -1
- data/spec/helpers/repos/test2/cache/cacheable_model/two.rb +1 -1
- data/spec/helpers/repos/test2/cache/cacheable_model/validation_errors.rb +1 -1
- data/spec/installation_spec.rb +34 -7
- data/spec/model/models/cacheable_model.rb +0 -2
- data/spec/repository_spec.rb +1 -1
- metadata +62 -69
data/.yardopts
CHANGED
data/ChangeLog.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
### 1.0.0 / 2011-03-
|
1
|
+
### 1.0.0 / 2011-03-25
|
2
2
|
|
3
3
|
* Upgraded to the GPL-3 license.
|
4
4
|
* Require Ruby >= 1.8.7.
|
@@ -12,12 +12,12 @@
|
|
12
12
|
* Require dm-serializer ~> 1.1.0.
|
13
13
|
* Require dm-aggregates ~> 1.1.0.
|
14
14
|
* Require dm-timestamps ~> 1.1.0.
|
15
|
-
* Require dm-is-predefined ~> 0.3.1.
|
15
|
+
* Require dm-is-predefined ~> 0.3, >= 0.3.1.
|
16
16
|
* Require uri-query_params ~> 0.5, >= 0.5.2.
|
17
17
|
* Require open_namespace ~> 0.3.
|
18
18
|
* Require parameters ~> 0.2, >= 0.2.3.
|
19
19
|
* Require data_paths ~> 0.2, >= 0.2.1.
|
20
|
-
* Require
|
20
|
+
* Require object_loader ~> 1.0.
|
21
21
|
* Require env ~> 0.1, >= 0.1.2.
|
22
22
|
* Require pullr ~> 0.1, >= 0.1.2.
|
23
23
|
* Require hexdump ~> 0.1.
|
@@ -27,7 +27,7 @@
|
|
27
27
|
* Require ripl-short_errors ~> 0.1.
|
28
28
|
* Require ripl-color_result ~> 0.2.
|
29
29
|
* Require thor ~> 0.14.3.
|
30
|
-
* Require ronin-support ~> 0.1.
|
30
|
+
* Require ronin-support ~> 0.1.
|
31
31
|
* Added `ronin/bootstrap` which only loads configuration and the Database.
|
32
32
|
* Added {Ronin::Database::Migrations}.
|
33
33
|
* Added {Ronin::Model::HasUniqueName}.
|
data/README.md
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
* [Website](http://ronin-ruby.github.com)
|
4
4
|
* [Source](http://github.com/ronin-ruby/ronin)
|
5
5
|
* [Issues](http://github.com/ronin-ruby/ronin/issues)
|
6
|
-
* [Documentation](http://rubydoc.info/
|
6
|
+
* [Documentation](http://rubydoc.info/gems/ronin/frames)
|
7
7
|
* [Mailing List](http://groups.google.com/group/ronin-ruby)
|
8
8
|
* irc.freenode.net #ronin
|
9
9
|
|
@@ -148,7 +148,7 @@ Remove a Database:
|
|
148
148
|
* [dm-timestamps](http://github.com/datamapper/dm-timestamps#readme)
|
149
149
|
~> 1.1.0
|
150
150
|
* [dm-is-predefined](http://github.com/postmodern/dm-is-predefined#readme)
|
151
|
-
~> 0.3.1
|
151
|
+
~> 0.3, >= 0.3.1
|
152
152
|
* [uri-query_params](http://github.com/postmodern/uri-query_params#readme)
|
153
153
|
~> 0.5, >= 0.5.2
|
154
154
|
* [open_namespace](http://github.com/postmodern/open_namespace#readme)
|
@@ -157,8 +157,8 @@ Remove a Database:
|
|
157
157
|
~> 0.2, >= 0.2.3
|
158
158
|
* [data_paths](http://github.com/postmodern/data_paths#readme)
|
159
159
|
~> 0.2, >= 0.2.1
|
160
|
-
* [
|
161
|
-
~> 0
|
160
|
+
* [object_loader](http://github.com/postmodern/object_loader#readme)
|
161
|
+
~> 1.0
|
162
162
|
* [env](http://github.com/postmodern/env#readme)
|
163
163
|
~> 0.1, >= 0.1.2
|
164
164
|
* [pullr](http://github.com/postmodern/pullr#readme)
|
@@ -168,7 +168,7 @@ Remove a Database:
|
|
168
168
|
* [thor](http://github.com/wycats/thor#readme)
|
169
169
|
~> 0.14.3
|
170
170
|
* [ronin-support](http://github.com/ronin-ruby/ronin-support#readme)
|
171
|
-
~> 0.1
|
171
|
+
~> 0.1
|
172
172
|
|
173
173
|
## Install
|
174
174
|
|
data/gemspec.yml
CHANGED
@@ -36,25 +36,25 @@ required_ruby_version: ">= 1.8.7"
|
|
36
36
|
|
37
37
|
dependencies:
|
38
38
|
# DataMapper adapters
|
39
|
-
dm-do-adapter: ~> 1.1.0
|
40
|
-
dm-sqlite-adapter: ~> 1.1.0
|
39
|
+
dm-do-adapter: ~> 1.1.0
|
40
|
+
dm-sqlite-adapter: ~> 1.1.0
|
41
41
|
# DataMapper dependencies
|
42
|
-
dm-core: ~> 1.1.0
|
43
|
-
dm-types: ~> 1.1.0
|
44
|
-
dm-constraints: ~> 1.1.0
|
45
|
-
dm-migrations: ~> 1.1.0
|
46
|
-
dm-validations: ~> 1.1.0
|
47
|
-
dm-serializer: ~> 1.1.0
|
48
|
-
dm-aggregates: ~> 1.1.0
|
49
|
-
dm-timestamps: ~> 1.1.0
|
42
|
+
dm-core: ~> 1.1.0
|
43
|
+
dm-types: ~> 1.1.0
|
44
|
+
dm-constraints: ~> 1.1.0
|
45
|
+
dm-migrations: ~> 1.1.0
|
46
|
+
dm-validations: ~> 1.1.0
|
47
|
+
dm-serializer: ~> 1.1.0
|
48
|
+
dm-aggregates: ~> 1.1.0
|
49
|
+
dm-timestamps: ~> 1.1.0
|
50
50
|
# DataMapper plugins
|
51
|
-
dm-is-predefined: ~> 0.3.1
|
51
|
+
dm-is-predefined: ~> 0.3, >= 0.3.1
|
52
52
|
# Library dependencies
|
53
53
|
uri-query_params: ~> 0.5, >= 0.5.2
|
54
54
|
open_namespace: ~> 0.3
|
55
55
|
parameters: ~> 0.2, >= 0.2.3
|
56
56
|
data_paths: ~> 0.2, >= 0.2.1
|
57
|
-
|
57
|
+
object_loader: ~> 1.0
|
58
58
|
env: ~> 0.1, >= 0.1.2
|
59
59
|
pullr: ~> 0.1, >= 0.1.2
|
60
60
|
hexdump: ~> 0.1
|
@@ -65,12 +65,11 @@ dependencies:
|
|
65
65
|
ripl-color_result: ~> 0.3
|
66
66
|
thor: ~> 0.14.3
|
67
67
|
# Ronin dependencies:
|
68
|
-
ronin-support: ~> 0.1
|
68
|
+
ronin-support: ~> 0.1
|
69
69
|
|
70
70
|
development_dependencies:
|
71
71
|
bundler: ~> 1.0.10
|
72
72
|
yard: ~> 0.6.4
|
73
|
-
yard-contextify: ~> 0.1.0
|
74
73
|
yard-parameters: ~> 0.1.0
|
75
74
|
yard-dm: ~> 0.1.1
|
76
75
|
yard-dm-is-predefined: ~> 0.2.0
|
data/lib/ronin/cached_file.rb
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
require 'ronin/support/inflector'
|
21
21
|
require 'ronin/model'
|
22
22
|
|
23
|
-
require '
|
23
|
+
require 'object_loader'
|
24
24
|
|
25
25
|
module Ronin
|
26
26
|
autoload :Repository, 'ronin/repository'
|
@@ -119,15 +119,13 @@ module Ronin
|
|
119
119
|
def fresh_object
|
120
120
|
begin
|
121
121
|
# load the first found context
|
122
|
-
blocks =
|
122
|
+
blocks = ObjectLoader.load_blocks(self.path)
|
123
123
|
rescue Exception => e
|
124
124
|
@cache_exception = e
|
125
125
|
return nil
|
126
126
|
end
|
127
127
|
|
128
|
-
blocks.each do |
|
129
|
-
model = Contextify.contexts[name]
|
130
|
-
|
128
|
+
blocks.each do |model,block|
|
131
129
|
if model < Cacheable
|
132
130
|
# create the fresh object
|
133
131
|
object = model.new()
|
@@ -32,7 +32,7 @@ module Ronin
|
|
32
32
|
column :id, Integer, :serial => true
|
33
33
|
column :type, String, :not_null => true
|
34
34
|
column :version, Integer
|
35
|
-
column :address, String, :not_null => true
|
35
|
+
column :address, String, :length => 256, :not_null => true
|
36
36
|
column :organization_id, Integer
|
37
37
|
column :created_at, Time, :not_null => true
|
38
38
|
end
|
@@ -26,7 +26,7 @@ module Ronin
|
|
26
26
|
up do
|
27
27
|
create_table :ronin_url_query_params do
|
28
28
|
column :id, Integer, :serial => true
|
29
|
-
column :name, String, :not_null => true
|
29
|
+
column :name, String, :length => 256, :not_null => true
|
30
30
|
column :value, Text
|
31
31
|
column :url_id, Integer, :not_null => true
|
32
32
|
end
|
data/lib/ronin/host_name.rb
CHANGED
@@ -32,6 +32,11 @@ module Ronin
|
|
32
32
|
#
|
33
33
|
class HostName < Address
|
34
34
|
|
35
|
+
# The address of the host name
|
36
|
+
property :address, String, :length => 256,
|
37
|
+
:required => true,
|
38
|
+
:unique => true
|
39
|
+
|
35
40
|
# The IP Address associations
|
36
41
|
has 0..n, :host_name_ip_addresses, :model => 'HostNameIPAddress'
|
37
42
|
|
data/lib/ronin/installation.rb
CHANGED
@@ -17,16 +17,14 @@
|
|
17
17
|
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
|
18
18
|
#
|
19
19
|
|
20
|
-
require 'enumerator'
|
21
|
-
|
22
20
|
module Ronin
|
23
21
|
#
|
24
22
|
# The {Installation} module provides methods which help reflect on the
|
25
23
|
# installation of Ronin on the system.
|
26
24
|
#
|
27
25
|
module Installation
|
26
|
+
# The loaded gemspecs of all installed ronin libraries
|
28
27
|
@gems = {}
|
29
|
-
@paths = {}
|
30
28
|
|
31
29
|
#
|
32
30
|
# Finds the installed Ronin libraries via RubyGems.
|
@@ -37,7 +35,7 @@ module Ronin
|
|
37
35
|
# @since 1.0.0
|
38
36
|
#
|
39
37
|
def Installation.gems
|
40
|
-
|
38
|
+
load_gemspecs! if @gems.empty?
|
41
39
|
return @gems
|
42
40
|
end
|
43
41
|
|
@@ -50,20 +48,7 @@ module Ronin
|
|
50
48
|
# @since 1.0.0
|
51
49
|
#
|
52
50
|
def Installation.libraries
|
53
|
-
|
54
|
-
end
|
55
|
-
|
56
|
-
#
|
57
|
-
# The installation paths of installed Ronin libraries.
|
58
|
-
#
|
59
|
-
# @return [Hash{String => String}]
|
60
|
-
# The paths to the installed Ronin libraries.
|
61
|
-
#
|
62
|
-
# @since 1.0.0
|
63
|
-
#
|
64
|
-
def Installation.paths
|
65
|
-
Installation.load_gemspecs! if @paths.empty?
|
66
|
-
return @paths
|
51
|
+
gems.keys
|
67
52
|
end
|
68
53
|
|
69
54
|
#
|
@@ -84,17 +69,16 @@ module Ronin
|
|
84
69
|
#
|
85
70
|
# @since 1.0.0
|
86
71
|
#
|
87
|
-
def Installation.each_file(
|
88
|
-
return enum_for(:each_file,
|
89
|
-
|
90
|
-
directory = File.join(directory,'')
|
72
|
+
def Installation.each_file(pattern)
|
73
|
+
return enum_for(:each_file,pattern) unless block_given?
|
91
74
|
|
92
75
|
# query the installed gems
|
93
|
-
|
94
|
-
gem.
|
95
|
-
|
96
|
-
|
97
|
-
|
76
|
+
gems.each_value do |gem|
|
77
|
+
gem_root = gem.full_gem_path
|
78
|
+
slice_index = gem_root.length + 1
|
79
|
+
|
80
|
+
Dir.glob(File.join(gem_root,pattern)) do |path|
|
81
|
+
yield path[slice_index..-1]
|
98
82
|
end
|
99
83
|
end
|
100
84
|
|
@@ -102,25 +86,36 @@ module Ronin
|
|
102
86
|
end
|
103
87
|
|
104
88
|
#
|
105
|
-
#
|
89
|
+
# Enumerates over every file in a directory.
|
106
90
|
#
|
107
91
|
# @param [String] directory
|
108
|
-
#
|
92
|
+
# The directory to search within.
|
93
|
+
#
|
94
|
+
# @param [String, Symbol] ext
|
95
|
+
# The optional file extension to search for.
|
96
|
+
#
|
97
|
+
# @yield [name]
|
98
|
+
# The given block will be passed each matching file-name.
|
109
99
|
#
|
110
|
-
# @
|
111
|
-
#
|
100
|
+
# @yieldparam [String] name
|
101
|
+
# The basename of the matching path within the directory.
|
102
|
+
#
|
103
|
+
# @return [Enumerator]
|
104
|
+
# If no block is given, an Enumerator will be returned.
|
112
105
|
#
|
113
106
|
# @since 1.0.0
|
114
107
|
#
|
115
|
-
def Installation.
|
116
|
-
|
117
|
-
result = false
|
108
|
+
def Installation.each_file_in(directory,ext=nil)
|
109
|
+
return enum_for(:each_file_in,directory,ext) unless block_given?
|
118
110
|
|
119
|
-
|
120
|
-
|
121
|
-
|
111
|
+
pattern = File.join(directory,'**','*')
|
112
|
+
pattern << ".#{ext}" if ext
|
113
|
+
|
114
|
+
slice_index = directory.length + 1
|
122
115
|
|
123
|
-
|
116
|
+
each_file(pattern) do |path|
|
117
|
+
yield path[slice_index..-1]
|
118
|
+
end
|
124
119
|
end
|
125
120
|
|
126
121
|
protected
|
@@ -138,13 +133,10 @@ module Ronin
|
|
138
133
|
|
139
134
|
if ronin_gem
|
140
135
|
@gems['ronin'] = ronin_gem
|
141
|
-
@paths['ronin'] = ronin_gem.full_gem_path
|
142
136
|
|
143
137
|
ronin_gem.dependent_gems.each do |gems|
|
144
138
|
gem = gems.first
|
145
|
-
|
146
139
|
@gems[gem.name] = gem
|
147
|
-
@paths[gem.name] = gem.full_gem_path
|
148
140
|
end
|
149
141
|
else
|
150
142
|
# if we cannot find an installed ronin gem, search the $LOAD_PATH
|
@@ -155,9 +147,7 @@ module Ronin
|
|
155
147
|
|
156
148
|
if gemspec_path
|
157
149
|
gem = Gem::SourceIndex.load_specification(gemspec_path)
|
158
|
-
|
159
150
|
@gems[gem.name] = gem
|
160
|
-
@paths[gem.name] = root_dir
|
161
151
|
end
|
162
152
|
end
|
163
153
|
end
|
data/lib/ronin/mac_address.rb
CHANGED
@@ -29,6 +29,11 @@ module Ronin
|
|
29
29
|
#
|
30
30
|
class MACAddress < Address
|
31
31
|
|
32
|
+
# The MAC address
|
33
|
+
property :address, String, :length => 17..17,
|
34
|
+
:required => true,
|
35
|
+
:unique => true
|
36
|
+
|
32
37
|
# The IP Addresses the MAC Address hosts
|
33
38
|
has 0..n, :ip_address_mac_addresses, :model => 'IPAddressMACAddress'
|
34
39
|
|
@@ -21,7 +21,7 @@ require 'ronin/model/cacheable/class_methods'
|
|
21
21
|
require 'ronin/model/model'
|
22
22
|
require 'ronin/cached_file'
|
23
23
|
|
24
|
-
require '
|
24
|
+
require 'object_loader'
|
25
25
|
require 'set'
|
26
26
|
|
27
27
|
module Ronin
|
@@ -38,18 +38,12 @@ module Ronin
|
|
38
38
|
#
|
39
39
|
# # Making a Model cacheable
|
40
40
|
#
|
41
|
-
# In order to make a Model cacheable, one must include the {Cacheable}
|
42
|
-
# module and contextifying the model. Contextifying a model involves
|
43
|
-
# calling the `contextify` method, which defines a top-level method
|
44
|
-
# used for loading model instances from files.
|
41
|
+
# In order to make a Model cacheable, one must include the {Cacheable}.
|
45
42
|
#
|
46
43
|
# class MyModel
|
47
44
|
#
|
48
45
|
# include Ronin::Model::Cacheable
|
49
46
|
#
|
50
|
-
# # Defines the my_model method for loading instances from files
|
51
|
-
# contextify :my_model
|
52
|
-
#
|
53
47
|
# # Primary key of the model
|
54
48
|
# property :id, Serial
|
55
49
|
#
|
@@ -104,7 +98,7 @@ module Ronin
|
|
104
98
|
@models = Set[]
|
105
99
|
|
106
100
|
def self.included(base)
|
107
|
-
base.send :include,
|
101
|
+
base.send :include, ObjectLoader, Model
|
108
102
|
base.send :extend, ClassMethods
|
109
103
|
|
110
104
|
base.module_eval do
|
@@ -151,7 +145,7 @@ module Ronin
|
|
151
145
|
#
|
152
146
|
def Cacheable.load_from(path)
|
153
147
|
path = File.expand_path(path)
|
154
|
-
obj =
|
148
|
+
obj = ObjectLoader.load_objects(path).find do |obj|
|
155
149
|
obj.class < Cacheable
|
156
150
|
end
|
157
151
|
|
data/lib/ronin/ui/cli/cli.rb
CHANGED
@@ -21,6 +21,8 @@ require 'ronin/ui/cli/exceptions/unknown_command'
|
|
21
21
|
require 'ronin/ui/cli/commands'
|
22
22
|
require 'ronin/installation'
|
23
23
|
|
24
|
+
require 'set'
|
25
|
+
|
24
26
|
module Ronin
|
25
27
|
module UI
|
26
28
|
#
|
@@ -32,7 +34,8 @@ module Ronin
|
|
32
34
|
# Name of the default to run
|
33
35
|
DEFAULT_COMMAND = 'console'
|
34
36
|
|
35
|
-
|
37
|
+
# The loaded command names
|
38
|
+
@commands = SortedSet[]
|
36
39
|
|
37
40
|
#
|
38
41
|
# All command-line names of Commands available to the {CLI}.
|
@@ -46,18 +49,15 @@ module Ronin
|
|
46
49
|
if @commands.empty?
|
47
50
|
commands_dir = File.join('lib',Commands.namespace_root)
|
48
51
|
|
49
|
-
Installation.
|
52
|
+
Installation.each_file_in(commands_dir,:rb) do |path|
|
50
53
|
# remove the .rb file extension
|
51
54
|
name = path.chomp('.rb')
|
52
55
|
|
53
56
|
# replace any file separators with a ':', to mimic the
|
54
57
|
# naming convention of Rake/Thor.
|
55
58
|
name.tr!(File::SEPARATOR,':')
|
56
|
-
|
57
|
-
# replace all '_' and '-' characters with a single '_' character
|
58
|
-
name.gsub!(/[_-]+/,'_')
|
59
59
|
|
60
|
-
@commands
|
60
|
+
@commands << name
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
@@ -91,10 +91,6 @@ module Ronin
|
|
91
91
|
def CLI.command(name)
|
92
92
|
name = name.to_s
|
93
93
|
|
94
|
-
# eventually someone is going to use a space or - which is going
|
95
|
-
# mess things up we will take care of this ahead of time here
|
96
|
-
name = name.gsub(/[\s_-]+/, '_')
|
97
|
-
|
98
94
|
unless (command = Commands.require_const(name))
|
99
95
|
raise(UnknownCommand,"unable to load the command #{name.dump}",caller)
|
100
96
|
end
|
data/lib/ronin/version.rb
CHANGED
data/spec/cached_file_spec.rb
CHANGED
@@ -98,6 +98,12 @@ describe CachedFile do
|
|
98
98
|
end
|
99
99
|
end
|
100
100
|
|
101
|
+
let(:name_error) do
|
102
|
+
test2.cached_files.find do |cached_file|
|
103
|
+
cached_file.path.basename == Pathname.new('name_errors.rb')
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
101
107
|
let(:no_method_error) do
|
102
108
|
test2.cached_files.find do |cached_file|
|
103
109
|
cached_file.path.basename == Pathname.new('no_method_errors.rb')
|
@@ -136,6 +142,11 @@ describe CachedFile do
|
|
136
142
|
load_error.cache_exception.class.should == LoadError
|
137
143
|
end
|
138
144
|
|
145
|
+
it "should store NameError exceptions" do
|
146
|
+
name_error.cache_exception.should_not be_nil
|
147
|
+
name_error.cache_exception.class.should == NameError
|
148
|
+
end
|
149
|
+
|
139
150
|
it "should store NoMethodError exceptions" do
|
140
151
|
no_method_error.cache_exception.should_not be_nil
|
141
152
|
no_method_error.cache_exception.class.should == NoMethodError
|
data/spec/installation_spec.rb
CHANGED
@@ -6,16 +6,43 @@ describe Installation do
|
|
6
6
|
subject.gems['ronin'].should_not be_nil
|
7
7
|
end
|
8
8
|
|
9
|
-
it "should find the installation path of the 'ronin' library" do
|
10
|
-
subject.paths['ronin'].should_not be_nil
|
11
|
-
end
|
12
|
-
|
13
9
|
it "should provide the names of the installed Ronin libraries" do
|
14
10
|
subject.libraries.should include('ronin')
|
15
11
|
end
|
16
12
|
|
17
13
|
describe "each_file" do
|
18
14
|
let(:directory) { 'lib/ronin/ui/cli/commands' }
|
15
|
+
let(:pattern) { File.join(directory,'*.rb') }
|
16
|
+
let(:expected) {
|
17
|
+
%w[
|
18
|
+
campaigns.rb
|
19
|
+
console.rb
|
20
|
+
creds.rb
|
21
|
+
database.rb
|
22
|
+
emails.rb
|
23
|
+
exec.rb
|
24
|
+
help.rb
|
25
|
+
hosts.rb
|
26
|
+
ips.rb
|
27
|
+
repos.rb
|
28
|
+
urls.rb
|
29
|
+
].map { |name| File.join(directory,name) }
|
30
|
+
}
|
31
|
+
|
32
|
+
it "should enumerate over the files which match a glob pattern" do
|
33
|
+
subject.each_file(pattern).to_a.should =~ expected
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should return an Enumerator when no block is given" do
|
37
|
+
subject.each_file(pattern).all? { |file|
|
38
|
+
expected.include?(file)
|
39
|
+
}.should == true
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "each_file_in" do
|
44
|
+
let(:directory) { 'lib/ronin/ui/cli/commands' }
|
45
|
+
let(:ext) { :rb }
|
19
46
|
let(:expected) {
|
20
47
|
%w[
|
21
48
|
campaigns.rb
|
@@ -32,12 +59,12 @@ describe Installation do
|
|
32
59
|
]
|
33
60
|
}
|
34
61
|
|
35
|
-
it "should enumerate over the files
|
36
|
-
subject.
|
62
|
+
it "should enumerate over the files which match a glob pattern" do
|
63
|
+
subject.each_file_in(directory,ext).to_a.should =~ expected
|
37
64
|
end
|
38
65
|
|
39
66
|
it "should return an Enumerator when no block is given" do
|
40
|
-
subject.
|
67
|
+
subject.each_file_in(directory,ext).all? { |file|
|
41
68
|
expected.include?(file)
|
42
69
|
}.should == true
|
43
70
|
end
|
data/spec/repository_spec.rb
CHANGED
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ronin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
version: 1.0.0
|
4
|
+
prerelease:
|
5
|
+
version: 1.0.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Postmodern
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-03-
|
13
|
+
date: 2011-03-25 00:00:00 -04:00
|
14
14
|
default_executable: ronin
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ~>
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 1.1.0
|
23
|
+
version: 1.1.0
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: *id001
|
@@ -31,7 +31,7 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - ~>
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: 1.1.0
|
34
|
+
version: 1.1.0
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: *id002
|
@@ -42,7 +42,7 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: 1.1.0
|
45
|
+
version: 1.1.0
|
46
46
|
type: :runtime
|
47
47
|
prerelease: false
|
48
48
|
version_requirements: *id003
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
requirements:
|
54
54
|
- - ~>
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 1.1.0
|
56
|
+
version: 1.1.0
|
57
57
|
type: :runtime
|
58
58
|
prerelease: false
|
59
59
|
version_requirements: *id004
|
@@ -64,7 +64,7 @@ dependencies:
|
|
64
64
|
requirements:
|
65
65
|
- - ~>
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: 1.1.0
|
67
|
+
version: 1.1.0
|
68
68
|
type: :runtime
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: *id005
|
@@ -75,7 +75,7 @@ dependencies:
|
|
75
75
|
requirements:
|
76
76
|
- - ~>
|
77
77
|
- !ruby/object:Gem::Version
|
78
|
-
version: 1.1.0
|
78
|
+
version: 1.1.0
|
79
79
|
type: :runtime
|
80
80
|
prerelease: false
|
81
81
|
version_requirements: *id006
|
@@ -86,7 +86,7 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - ~>
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 1.1.0
|
89
|
+
version: 1.1.0
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: *id007
|
@@ -97,7 +97,7 @@ dependencies:
|
|
97
97
|
requirements:
|
98
98
|
- - ~>
|
99
99
|
- !ruby/object:Gem::Version
|
100
|
-
version: 1.1.0
|
100
|
+
version: 1.1.0
|
101
101
|
type: :runtime
|
102
102
|
prerelease: false
|
103
103
|
version_requirements: *id008
|
@@ -108,7 +108,7 @@ dependencies:
|
|
108
108
|
requirements:
|
109
109
|
- - ~>
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: 1.1.0
|
111
|
+
version: 1.1.0
|
112
112
|
type: :runtime
|
113
113
|
prerelease: false
|
114
114
|
version_requirements: *id009
|
@@ -119,7 +119,7 @@ dependencies:
|
|
119
119
|
requirements:
|
120
120
|
- - ~>
|
121
121
|
- !ruby/object:Gem::Version
|
122
|
-
version: 1.1.0
|
122
|
+
version: 1.1.0
|
123
123
|
type: :runtime
|
124
124
|
prerelease: false
|
125
125
|
version_requirements: *id010
|
@@ -128,9 +128,12 @@ dependencies:
|
|
128
128
|
requirement: &id011 !ruby/object:Gem::Requirement
|
129
129
|
none: false
|
130
130
|
requirements:
|
131
|
-
- -
|
131
|
+
- - ">="
|
132
132
|
- !ruby/object:Gem::Version
|
133
133
|
version: 0.3.1
|
134
|
+
- - ~>
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: "0.3"
|
134
137
|
type: :runtime
|
135
138
|
prerelease: false
|
136
139
|
version_requirements: *id011
|
@@ -188,13 +191,13 @@ dependencies:
|
|
188
191
|
prerelease: false
|
189
192
|
version_requirements: *id015
|
190
193
|
- !ruby/object:Gem::Dependency
|
191
|
-
name:
|
194
|
+
name: object_loader
|
192
195
|
requirement: &id016 !ruby/object:Gem::Requirement
|
193
196
|
none: false
|
194
197
|
requirements:
|
195
198
|
- - ~>
|
196
199
|
- !ruby/object:Gem::Version
|
197
|
-
version: "0
|
200
|
+
version: "1.0"
|
198
201
|
type: :runtime
|
199
202
|
prerelease: false
|
200
203
|
version_requirements: *id016
|
@@ -310,7 +313,7 @@ dependencies:
|
|
310
313
|
requirements:
|
311
314
|
- - ~>
|
312
315
|
- !ruby/object:Gem::Version
|
313
|
-
version: 0.1
|
316
|
+
version: "0.1"
|
314
317
|
type: :runtime
|
315
318
|
prerelease: false
|
316
319
|
version_requirements: *id026
|
@@ -337,7 +340,7 @@ dependencies:
|
|
337
340
|
prerelease: false
|
338
341
|
version_requirements: *id028
|
339
342
|
- !ruby/object:Gem::Dependency
|
340
|
-
name: yard-
|
343
|
+
name: yard-parameters
|
341
344
|
requirement: &id029 !ruby/object:Gem::Requirement
|
342
345
|
none: false
|
343
346
|
requirements:
|
@@ -347,20 +350,9 @@ dependencies:
|
|
347
350
|
type: :development
|
348
351
|
prerelease: false
|
349
352
|
version_requirements: *id029
|
350
|
-
- !ruby/object:Gem::Dependency
|
351
|
-
name: yard-parameters
|
352
|
-
requirement: &id030 !ruby/object:Gem::Requirement
|
353
|
-
none: false
|
354
|
-
requirements:
|
355
|
-
- - ~>
|
356
|
-
- !ruby/object:Gem::Version
|
357
|
-
version: 0.1.0
|
358
|
-
type: :development
|
359
|
-
prerelease: false
|
360
|
-
version_requirements: *id030
|
361
353
|
- !ruby/object:Gem::Dependency
|
362
354
|
name: yard-dm
|
363
|
-
requirement: &
|
355
|
+
requirement: &id030 !ruby/object:Gem::Requirement
|
364
356
|
none: false
|
365
357
|
requirements:
|
366
358
|
- - ~>
|
@@ -368,10 +360,10 @@ dependencies:
|
|
368
360
|
version: 0.1.1
|
369
361
|
type: :development
|
370
362
|
prerelease: false
|
371
|
-
version_requirements: *
|
363
|
+
version_requirements: *id030
|
372
364
|
- !ruby/object:Gem::Dependency
|
373
365
|
name: yard-dm-is-predefined
|
374
|
-
requirement: &
|
366
|
+
requirement: &id031 !ruby/object:Gem::Requirement
|
375
367
|
none: false
|
376
368
|
requirements:
|
377
369
|
- - ~>
|
@@ -379,23 +371,23 @@ dependencies:
|
|
379
371
|
version: 0.2.0
|
380
372
|
type: :development
|
381
373
|
prerelease: false
|
382
|
-
version_requirements: *
|
374
|
+
version_requirements: *id031
|
383
375
|
description: Ronin is a Ruby platform for exploit development and security research. Ronin allows for the rapid development and distribution of code, exploits or payloads over many common Source-Code-Management (SCM) systems.
|
384
376
|
email:
|
385
377
|
- postmodern.mod3@gmail.com
|
386
378
|
executables:
|
387
|
-
- ronin-repos
|
388
|
-
- ronin-emails
|
389
|
-
- ronin-ips
|
390
|
-
- ronin-help
|
391
|
-
- ronin-urls
|
392
379
|
- ronin-hosts
|
393
|
-
- ronin-
|
394
|
-
- ronin-
|
395
|
-
- ronin-campaigns
|
396
|
-
- ronin-creds
|
380
|
+
- ronin-help
|
381
|
+
- ronin-emails
|
397
382
|
- ronin
|
398
383
|
- ronin-console
|
384
|
+
- ronin-campaigns
|
385
|
+
- ronin-exec
|
386
|
+
- ronin-repos
|
387
|
+
- ronin-creds
|
388
|
+
- ronin-ips
|
389
|
+
- ronin-database
|
390
|
+
- ronin-urls
|
399
391
|
extensions: []
|
400
392
|
|
401
393
|
extra_rdoc_files:
|
@@ -613,6 +605,7 @@ files:
|
|
613
605
|
- spec/helpers/repos/test1/ronin.yml
|
614
606
|
- spec/helpers/repos/test2/cache/cacheable_model/exceptions.rb
|
615
607
|
- spec/helpers/repos/test2/cache/cacheable_model/load_errors.rb
|
608
|
+
- spec/helpers/repos/test2/cache/cacheable_model/name_errors.rb
|
616
609
|
- spec/helpers/repos/test2/cache/cacheable_model/no_method_errors.rb
|
617
610
|
- spec/helpers/repos/test2/cache/cacheable_model/syntax_errors.rb
|
618
611
|
- spec/helpers/repos/test2/cache/cacheable_model/two.rb
|
@@ -707,39 +700,39 @@ signing_key:
|
|
707
700
|
specification_version: 3
|
708
701
|
summary: A Ruby platform for exploit development and security research.
|
709
702
|
test_files:
|
710
|
-
- spec/mac_address_spec.rb
|
711
|
-
- spec/database_spec.rb
|
712
|
-
- spec/author_spec.rb
|
713
|
-
- spec/vendor_spec.rb
|
714
|
-
- spec/url_spec.rb
|
715
703
|
- spec/port_spec.rb
|
716
|
-
- spec/
|
717
|
-
- spec/model/has_license_spec.rb
|
718
|
-
- spec/model/has_description_spec.rb
|
719
|
-
- spec/model/has_title_spec.rb
|
720
|
-
- spec/model/model_spec.rb
|
721
|
-
- spec/model/has_authors_spec.rb
|
722
|
-
- spec/model/has_name_spec.rb
|
723
|
-
- spec/model/cacheable_spec.rb
|
724
|
-
- spec/license_spec.rb
|
725
|
-
- spec/campaign_spec.rb
|
726
|
-
- spec/password_spec.rb
|
727
|
-
- spec/arch_spec.rb
|
728
|
-
- spec/repository_spec.rb
|
729
|
-
- spec/url_scheme_spec.rb
|
730
|
-
- spec/software_spec.rb
|
731
|
-
- spec/url_query_param_spec.rb
|
732
|
-
- spec/cached_file_spec.rb
|
704
|
+
- spec/credential_spec.rb
|
733
705
|
- spec/ui/cli/command_spec.rb
|
734
706
|
- spec/ui/output_spec.rb
|
735
|
-
- spec/
|
707
|
+
- spec/installation_spec.rb
|
708
|
+
- spec/vendor_spec.rb
|
709
|
+
- spec/campaign_spec.rb
|
710
|
+
- spec/engine/engine_spec.rb
|
736
711
|
- spec/engine/buildable_spec.rb
|
737
712
|
- spec/engine/verifiable_spec.rb
|
738
|
-
- spec/engine/engine_spec.rb
|
739
713
|
- spec/engine/deployable_spec.rb
|
714
|
+
- spec/arch_spec.rb
|
740
715
|
- spec/os_spec.rb
|
716
|
+
- spec/database_spec.rb
|
717
|
+
- spec/password_spec.rb
|
718
|
+
- spec/model/cacheable_spec.rb
|
719
|
+
- spec/model/has_version_spec.rb
|
720
|
+
- spec/model/has_authors_spec.rb
|
721
|
+
- spec/model/model_spec.rb
|
722
|
+
- spec/model/has_title_spec.rb
|
723
|
+
- spec/model/has_name_spec.rb
|
724
|
+
- spec/model/has_description_spec.rb
|
725
|
+
- spec/model/has_license_spec.rb
|
726
|
+
- spec/license_spec.rb
|
727
|
+
- spec/author_spec.rb
|
741
728
|
- spec/service_spec.rb
|
742
|
-
- spec/
|
743
|
-
- spec/host_name_spec.rb
|
729
|
+
- spec/software_spec.rb
|
744
730
|
- spec/email_address_spec.rb
|
745
|
-
- spec/
|
731
|
+
- spec/mac_address_spec.rb
|
732
|
+
- spec/url_query_param_spec.rb
|
733
|
+
- spec/url_scheme_spec.rb
|
734
|
+
- spec/url_spec.rb
|
735
|
+
- spec/repository_spec.rb
|
736
|
+
- spec/cached_file_spec.rb
|
737
|
+
- spec/host_name_spec.rb
|
738
|
+
- spec/ronin_spec.rb
|