Merge pull request #1563 from rapid7/bug/yard-guard
[Story #45771305] Conflicts: Rakefilebug/bundler_fix
commit
725fbea851
|
@ -0,0 +1,7 @@
|
||||||
|
--protected
|
||||||
|
--exclude samples/
|
||||||
|
--exclude \.ut\.rb/
|
||||||
|
--exclude \.ts\.rb/
|
||||||
|
--files CONTRIBUTING.md,COPYING,HACKING,LICENSE
|
||||||
|
lib/msf/**/*.rb
|
||||||
|
lib/rex/**/*.rb
|
2
Gemfile
2
Gemfile
|
@ -7,7 +7,7 @@ gem 'activerecord'
|
||||||
# Needed for some admin modules (scrutinizer_add_user.rb)
|
# Needed for some admin modules (scrutinizer_add_user.rb)
|
||||||
gem 'json'
|
gem 'json'
|
||||||
# Database models shared between framework and Pro.
|
# Database models shared between framework and Pro.
|
||||||
gem 'metasploit_data_models', :git => 'git://github.com/rapid7/metasploit_data_models.git', :tag => '0.6.0'
|
gem 'metasploit_data_models', :git => 'git://github.com/rapid7/metasploit_data_models.git', :tag => '0.6.1'
|
||||||
# Needed by msfgui and other rpc components
|
# Needed by msfgui and other rpc components
|
||||||
gem 'msgpack'
|
gem 'msgpack'
|
||||||
# Needed by anemone crawler
|
# Needed by anemone crawler
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
GIT
|
GIT
|
||||||
remote: git://github.com/rapid7/metasploit_data_models.git
|
remote: git://github.com/rapid7/metasploit_data_models.git
|
||||||
revision: 0285d6e199f125b33214100dcb0f4eeb12ee765f
|
revision: 7f8e36d9b62a36bcbf43c8f1ab48a07bed0732d9
|
||||||
tag: 0.6.0
|
tag: 0.6.1
|
||||||
specs:
|
specs:
|
||||||
metasploit_data_models (0.6.0)
|
metasploit_data_models (0.6.1)
|
||||||
activerecord (>= 3.2.10)
|
activerecord (>= 3.2.10)
|
||||||
activesupport
|
activesupport
|
||||||
pg
|
pg
|
||||||
|
|
85
Rakefile
85
Rakefile
|
@ -1,52 +1,49 @@
|
||||||
require 'bundler/setup'
|
require 'bundler/setup'
|
||||||
|
|
||||||
require 'rspec/core/rake_task'
|
require 'metasploit_data_models'
|
||||||
require 'yard'
|
|
||||||
|
|
||||||
RSpec::Core::RakeTask.new(:spec)
|
print_without = false
|
||||||
|
|
||||||
task :default => :spec
|
begin
|
||||||
|
require 'rspec/core/rake_task'
|
||||||
|
rescue LoadError
|
||||||
|
puts "rspec not in bundle, so can't set up spec tasks. " \
|
||||||
|
"To run specs ensure to install the development and test groups."
|
||||||
|
|
||||||
namespace :yard do
|
print_without = true
|
||||||
yard_files = [
|
else
|
||||||
# Ruby source files first
|
RSpec::Core::RakeTask.new(:spec)
|
||||||
'lib/msf/**/*.rb',
|
|
||||||
'lib/rex/**/*.rb',
|
|
||||||
# Anything after '-' is a normal documentation, not source
|
|
||||||
'-',
|
|
||||||
'COPYING',
|
|
||||||
'HACKING',
|
|
||||||
'LICENSE',
|
|
||||||
'CONTRIBUTING.md',
|
|
||||||
]
|
|
||||||
yard_options = [
|
|
||||||
# include documentation for protected methods for developers extending the code.
|
|
||||||
'--protected',
|
|
||||||
# Don't bother with files meant to be examples
|
|
||||||
'--exclude', 'samples/',
|
|
||||||
'--exclude', '\.ut\.rb/',
|
|
||||||
'--exclude', '\.ts\.rb/',
|
|
||||||
]
|
|
||||||
|
|
||||||
YARD::Rake::YardocTask.new(:doc) do |t|
|
task :default => :spec
|
||||||
t.files = yard_files
|
|
||||||
# --no-stats here as 'stats' task called after will print fuller stats
|
|
||||||
t.options = yard_options + ['--no-stats']
|
|
||||||
|
|
||||||
t.after = Proc.new {
|
|
||||||
Rake::Task['yard:stats'].execute
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
desc "Shows stats for YARD Documentation including listing undocumented modules, classes, constants, and methods"
|
|
||||||
task :stats => :environment do
|
|
||||||
stats = YARD::CLI::Stats.new
|
|
||||||
yard_arguments = yard_options + ['--compact', '--list-undoc'] + yard_files
|
|
||||||
stats.run(*yard_arguments)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# @todo Figure out how to just clone description from yard:doc
|
begin
|
||||||
desc "Generate YARD documentation"
|
require 'yard'
|
||||||
# allow calling namespace to as a task that goes to default task for namespace
|
rescue LoadError
|
||||||
task :yard => ['yard:doc']
|
puts "yard not in bundle, so can't set up yard tasks. " \
|
||||||
|
"To generate documentation ensure to install the development group."
|
||||||
|
|
||||||
|
print_without = true
|
||||||
|
end
|
||||||
|
|
||||||
|
metasploit_data_models_task_glob = MetasploitDataModels.root.join(
|
||||||
|
'lib',
|
||||||
|
'tasks',
|
||||||
|
'**',
|
||||||
|
'*.rake'
|
||||||
|
).to_s
|
||||||
|
|
||||||
|
# include tasks from metasplioit_data_models, such as `rake yard`.
|
||||||
|
# metasploit-framework specific yard options are in .yardopts
|
||||||
|
Dir.glob(metasploit_data_models_task_glob) do |path|
|
||||||
|
load path
|
||||||
|
end
|
||||||
|
|
||||||
|
if print_without
|
||||||
|
puts "Bundle currently installed " \
|
||||||
|
"'--without #{Bundler.settings.without.join(' ')}'."
|
||||||
|
puts "To clear the without option do `bundle install --without ''` " \
|
||||||
|
"(the --without flag with an empty string) or " \
|
||||||
|
"`rm -rf .bundle` to remove the .bundle/config manually and " \
|
||||||
|
"then `bundle install`"
|
||||||
|
end
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
source 'http://rubygems.org'
|
|
||||||
gem 'rails', '3.2.2'
|
|
||||||
gem 'authlogic'
|
|
||||||
gem 'prototype_legacy_helper', '0.0.0', :git => 'git://github.com/jvennix-r7/prototype_legacy_helper.git'
|
|
||||||
gem 'state_machine', '1.1.2'
|
|
||||||
gem 'liquid', '2.3.0'
|
|
||||||
gem 'ice_cube'
|
|
||||||
gem 'acts_as_list'
|
|
||||||
gem 'mime-types', '1.18', :git => "git://github.com/rapid7/mime-types.git"
|
|
||||||
gem 'metasploit_data_models', '0.0.2', :git => "git://github.com/rapid7/metasploit_data_models.git"
|
|
||||||
gem 'robots', '0.10.1'
|
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
#!/usr/bin/env rake
|
|
||||||
begin
|
|
||||||
require 'bundler/setup'
|
|
||||||
rescue LoadError
|
|
||||||
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
|
||||||
end
|
|
||||||
|
|
||||||
APP_RAKEFILE = File.expand_path('../spec/dummy/Rakefile', __FILE__)
|
|
||||||
load 'rails/tasks/engine.rake'
|
|
||||||
|
|
||||||
Bundler::GemHelper.install_tasks
|
|
||||||
|
|
||||||
#
|
|
||||||
# load rake files like a normal rails app
|
|
||||||
# @see http://viget.com/extend/rails-engine-testing-with-rspec-capybara-and-factorygirl
|
|
||||||
#
|
|
||||||
|
|
||||||
pathname = Pathname.new(__FILE__)
|
|
||||||
root = pathname.parent
|
|
||||||
rakefile_glob = root.join('lib', 'tasks', '**', '*.rake').to_path
|
|
||||||
|
|
||||||
Dir.glob(rakefile_glob) do |rakefile|
|
|
||||||
load rakefile
|
|
||||||
end
|
|
||||||
|
|
||||||
require 'rspec/core'
|
|
||||||
require 'rspec/core/rake_task'
|
|
||||||
|
|
||||||
# Depend on app:db:test:prepare so that test database is recreated just like in a full rails app
|
|
||||||
# @see http://viget.com/extend/rails-engine-testing-with-rspec-capybara-and-factorygirl
|
|
||||||
RSpec::Core::RakeTask.new(:spec => 'app:db:test:prepare')
|
|
||||||
|
|
||||||
task :default => :spec
|
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
require 'rails'
|
|
||||||
|
|
||||||
module MetasploitDataModels
|
|
||||||
class Engine < Rails::Engine
|
|
||||||
|
|
||||||
# @see http://viget.com/extend/rails-engine-testing-with-rspec-capybara-and-factorygirl
|
|
||||||
config.generators do |g|
|
|
||||||
g.assets false
|
|
||||||
g.fixture_replacement :factory_girl, :dir => 'spec/factories'
|
|
||||||
g.helper false
|
|
||||||
g.test_framework :rspec, :fixture => false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,27 +0,0 @@
|
||||||
# @note All options not specific to any given rake task should go in the .yardopts file so they are available to both
|
|
||||||
# the below rake tasks and when invoking `yard` from the command line
|
|
||||||
|
|
||||||
require 'yard'
|
|
||||||
require 'yard/rake/yardoc_task'
|
|
||||||
|
|
||||||
namespace :yard do
|
|
||||||
YARD::Rake::YardocTask.new(:doc) do |t|
|
|
||||||
# --no-stats here as 'stats' task called after will print fuller stats
|
|
||||||
t.options = ['--no-stats']
|
|
||||||
|
|
||||||
t.after = Proc.new {
|
|
||||||
Rake::Task['yard:stats'].execute
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
desc "Shows stats for YARD Documentation including listing undocumented modules, classes, constants, and methods"
|
|
||||||
task :stats => :environment do
|
|
||||||
stats = YARD::CLI::Stats.new
|
|
||||||
stats.run('--compact', '--list-undoc')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# @todo Figure out how to just clone description from yard:doc
|
|
||||||
desc "Generate YARD documentation"
|
|
||||||
# allow calling namespace to as a task that goes to default task for namespace
|
|
||||||
task :yard => ['yard:doc']
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
#!/usr/bin/env rake
|
||||||
|
begin
|
||||||
|
require 'bundler/setup'
|
||||||
|
rescue LoadError
|
||||||
|
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
||||||
|
end
|
||||||
|
|
||||||
|
print_without = false
|
||||||
|
APP_RAKEFILE = File.expand_path('../spec/dummy/Rakefile', __FILE__)
|
||||||
|
|
||||||
|
begin
|
||||||
|
load 'rails/tasks/engine.rake'
|
||||||
|
rescue LoadError
|
||||||
|
puts "railties not in bundle, so can't load engine tasks."
|
||||||
|
print_without = true
|
||||||
|
end
|
||||||
|
|
||||||
|
Bundler::GemHelper.install_tasks
|
||||||
|
|
||||||
|
#
|
||||||
|
# load rake files like a normal rails app
|
||||||
|
# @see http://viget.com/extend/rails-engine-testing-with-rspec-capybara-and-factorygirl
|
||||||
|
#
|
||||||
|
|
||||||
|
pathname = Pathname.new(__FILE__)
|
||||||
|
root = pathname.parent
|
||||||
|
rakefile_glob = root.join('lib', 'tasks', '**', '*.rake').to_path
|
||||||
|
|
||||||
|
Dir.glob(rakefile_glob) do |rakefile|
|
||||||
|
load rakefile
|
||||||
|
end
|
||||||
|
|
||||||
|
begin
|
||||||
|
require 'rspec/core'
|
||||||
|
rescue LoadError
|
||||||
|
puts "rspec not in bundle, so can't set up spec tasks. " \
|
||||||
|
"To run specs ensure to install the development and test groups."
|
||||||
|
print_without = true
|
||||||
|
else
|
||||||
|
require 'rspec/core/rake_task'
|
||||||
|
|
||||||
|
# Depend on app:db:test:prepare so that test database is recreated just like in a full rails app
|
||||||
|
# @see http://viget.com/extend/rails-engine-testing-with-rspec-capybara-and-factorygirl
|
||||||
|
RSpec::Core::RakeTask.new(:spec => 'app:db:test:prepare')
|
||||||
|
|
||||||
|
task :default => :spec
|
||||||
|
end
|
||||||
|
|
||||||
|
if print_without
|
||||||
|
puts "Bundle currently installed '--without #{Bundler.settings.without.join(' ')}'."
|
||||||
|
puts "To clear the without option do `bundle install --without ''` (the --without flag with an empty string) or " \
|
||||||
|
"`rm -rf .bundle` to remove the .bundle/config manually and then `bundle install`"
|
||||||
|
end
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue