Sha256: 14bbbe6836cca2b1c9321c230b54a945c16c5389268584e1b6e57a950ac8d90c

Contents?: true

Size: 1.97 KB

Versions: 1

Compression:

Stored size: 1.97 KB

Contents

#
# Ronin Gen - A Ruby library for Ronin that provides various generators.
#
# Copyright (c) 2009 Hal Brodigan (postmodern.mod3 at gmail.com)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
#

require 'ronin/generators/generator'

require 'fileutils'

module Ronin
  module Generators
    class DirGenerator < Generator

      argument :path, :type => :string, :require => true

      #
      # Invokes the generator.
      #
      # @param [String] path
      #   The directory to generate within.
      #
      # @param [Hash] options
      #   Additional command-line options for the generator.
      #
      # @param [Array] arguments
      #   Additional command-line arguments for the generator.
      #
      # @example
      #   gen.generate('path/to/dir')
      #
      def self.generate(path,options={},arguments=[])
        path = File.expand_path(path)

        generator = self.new([path] + arguments, options)
        generator.invoke()
      end

      no_tasks do
        #
        # Invokes the tasks of the generator.
        #
        # @param [Array] names
        #   The task names to invoke.
        #
        def invoke(*names,&block)
          if self.path
            self.destination_root = self.path
          end

          inside() do |path|
            super(*names,&block)
          end
        end
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ronin-gen-0.2.0 lib/ronin/generators/dir_generator.rb