Sha256: 5a710850a1df08d1e5ed41c9c24f623b52e12080d6db309b78726cd3c22c4628

Contents?: true

Size: 1.53 KB

Versions: 20

Compression:

Stored size: 1.53 KB

Contents

#--
#            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
#                    Version 2, December 2004
#
#            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
#   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
#
#  0. You just DO WHAT THE FUCK YOU WANT TO.
#++

class Gennaro
  attr_accessor :template, :classname, :appname, :path

  def initialize(template, classname, path, force = false)
    @template  = template
    @classname = classname
    @appname   = classname.downcase
    @path      = File.join path, @appname

    delete_dir @path if force
    raise ArgumentError, "#{@path} already exists." if     Dir.exists? @path
    raise ArgumentError, "#{@template} not found."  unless Dir.exists? @template
  end

  def get_random_string(length = 8)
    dict = (?a..?z).to_a + (?A..?Z).to_a + (0..9).to_a
    (0..length).map { dict.sample}.join
  end

  def generate!
    mkdir @path
    copy  @template, @path
  end

  def replace_tags!
    each_file(@appname) { |f|
      rename f, /_class_name_/, @appname
    }

    each_file(@appname) { |f|
      s = File.read f
      File.open(f, ?w) { |f|
        s.gsub! '${ClassName}',      @classname
        s.gsub! '${AppName}',        @appname
        s.gsub! '${GenerateString}', get_random_string(36)
        f.write s
      }
    }
  end

  def self.get_templates(path)
    Dir.glob("#{path}/*").map { |f| File.basename f}
  end

  def self.template_exists?(path, template)
    self.get_templates(path).include? template
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
gennaro-0.3.6.5 lib/gennaro/gennaro.rb
gennaro-0.3.6.4 lib/gennaro/gennaro.rb
gennaro-0.3.6.3 lib/gennaro/gennaro.rb
gennaro-0.3.6.2 lib/gennaro/gennaro.rb
gennaro-0.3.6.1 lib/gennaro/gennaro.rb
gennaro-0.3.6 lib/gennaro/gennaro.rb
gennaro-0.3.5 lib/gennaro/gennaro.rb
gennaro-0.3.4.2 lib/gennaro/gennaro.rb
gennaro-0.3.4.1 lib/gennaro/gennaro.rb
gennaro-0.3.4 lib/gennaro/gennaro.rb
gennaro-0.3.3 lib/gennaro/gennaro.rb
gennaro-0.3.2.3 lib/gennaro/gennaro.rb
gennaro-0.3.2.2 lib/gennaro/gennaro.rb
gennaro-0.3.2.1 lib/gennaro/gennaro.rb
gennaro-0.3.2 lib/gennaro/gennaro.rb
gennaro-0.3.1.3 lib/gennaro/gennaro.rb
gennaro-0.3.1.2 lib/gennaro/gennaro.rb
gennaro-0.3.1.1 lib/gennaro/gennaro.rb
gennaro-0.3.1 lib/gennaro/gennaro.rb
gennaro-0.3 lib/gennaro/gennaro.rb