class Ronin::Gen::Generators::Library
Generates a completely new Ronin
library.
Constants
- COMMANDS_DIR
Directory to store command classes in
- DEFAULT_LICENSE
Default license of the library
- GENERATORS_DIR
Directory to store generator classes in
Public Instance Methods
generate()
click to toggle source
Generates top-level files.
# File lib/ronin/gen/generators/library.rb, line 94 def generate run 'git', 'init' if git? template 'Gemfile.erb', 'Gemfile' cp 'Rakefile' template 'name.gemspec.erb', "#{@name}.gemspec" template 'gemspec.yml.erb', 'gemspec.yml' cp '.gitignore' if git? cp '.rspec' cp '.document' template '.yardopts.erb', '.yardopts' cp 'COPYING.txt' template 'ChangeLog.md.erb', 'ChangeLog.md' template 'README.md.erb', 'README.md' mkdir 'bin' template File.join('bin','ronin-name.erb'), @bin_script chmod 0755, @bin_script mkdir_p File.join('lib','ronin',@dir_name) template File.join('lib','ronin','name.rb.erb'), File.join('lib','ronin',"#{@dir_name}.rb") template File.join('lib','ronin','name','version.rb.erb'), File.join('lib','ronin',@dir_name,'version.rb') mkdir 'data' mkdir 'spec' template File.join('spec','spec_helper.rb.erb'), File.join('spec','spec_helper.rb') mkdir File.join('spec',@dir_name) template File.join('spec','name','name_spec.rb.erb'), File.join('spec',@dir_name,"#{@dir_name}_spec.rb") generate_commands unless @commands.empty? generate_generators unless @generators.empty? if git? run 'git', 'add', '.' run 'git', 'commit', '-m', 'Initial commit.' end end
generate_commands()
click to toggle source
Generates any optional commands for the library.
# File lib/ronin/gen/generators/library.rb, line 148 def generate_commands mkdir COMMANDS_DIR @commands.each do |name| @command_file = name.downcase.gsub(/[_-]+/,'_') @command_class = @command_file.to_const_string template File.join('bin','ronin-command.erb'), File.join('bin','ronin-' + @command_file.gsub('_','-')) template File.join(COMMANDS_DIR,'command.rb.erb'), File.join(COMMANDS_DIR,"#{@command_file}.rb") end end
generate_generators()
click to toggle source
Generates any optional generators for the library.
# File lib/ronin/gen/generators/library.rb, line 166 def generate_generators mkdir GENERATORS_DIR @generators.each do |name| @generator_file = name.downcase.gsub(/[_-]+/,'_') @generator_class = @generator_file.to_const_string template File.join(GENERATORS_DIR,'generator.rb.erb'), File.join(GENERATORS_DIR,"#{@generator_file}.rb") end end
setup()
click to toggle source
Sets up the library generator.
Calls superclass method
# File lib/ronin/gen/generators/library.rb, line 73 def setup super @name ||= File.basename(@path) @dir_name = @name.gsub(/^ronin[-_]/,'') @module_name = @dir_name.capitalize @title = @name.split(/[\s_-]+/).map { |word| word.capitalize }.join(' ') @license = DEFAULT_LICENSE @safe_email = @email.gsub(/\s*@\s*/,' at ') @bin_script = File.join('bin',"ronin-#{@dir_name}") end