perplect-gemerator 0.0.3 → 0.1.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/Manifest +10 -12
 - data/Rakefile +2 -1
 - data/app_generators/gem/gem_generator.rb +80 -0
 - data/app_generators/gem/templates/README.rdoc +8 -0
 - data/{lib/gemerator/generators/gem/templates/bin/binary.erb → app_generators/gem/templates/binary} +0 -0
 - data/{lib/gemerator/generators/gem/templates/script/console.erb → app_generators/gem/templates/console_script} +2 -2
 - data/app_generators/gem/templates/fresh_rakefile +15 -0
 - data/{lib/gemerator/generators/gem/templates/gitignore.erb → app_generators/gem/templates/gitignore} +0 -0
 - data/app_generators/gem/templates/module.rb +3 -0
 - data/{lib/gemerator/generators/gem/templates/test/module_test.rb.erb → app_generators/gem/templates/module_test.rb} +1 -1
 - data/bin/gemerate +16 -2
 - data/gemerator.gemspec +4 -4
 - data/lib/gemerator/version.rb +12 -0
 - metadata +13 -26
 - data/init.rb +0 -14
 - data/lib/gemerator.rb +0 -9
 - data/lib/gemerator/generator.rb +0 -66
 - data/lib/gemerator/generators/gem.rb +0 -124
 - data/lib/gemerator/generators/gem/templates/README.rdoc.erb +0 -8
 - data/lib/gemerator/generators/gem/templates/fresh_rakefile.erb +0 -15
 - data/lib/gemerator/generators/gem/templates/gemerated.erb +0 -22
 - data/lib/gemerator/generators/gem/templates/lib/module.rb.erb +0 -3
 
    
        data/Manifest
    CHANGED
    
    | 
         @@ -1,17 +1,15 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            lib/gemerator.rb
         
     | 
| 
       2 
     | 
    
         
            -
            lib/gemerator/generators/gem/templates/fresh_rakefile.erb
         
     | 
| 
       3 
     | 
    
         
            -
            lib/gemerator/generators/gem/templates/gitignore.erb
         
     | 
| 
       4 
     | 
    
         
            -
            lib/gemerator/generators/gem/templates/script/console.erb
         
     | 
| 
       5 
     | 
    
         
            -
            lib/gemerator/generators/gem/templates/gemerated.erb
         
     | 
| 
       6 
     | 
    
         
            -
            lib/gemerator/generators/gem/templates/lib/module.rb.erb
         
     | 
| 
       7 
     | 
    
         
            -
            lib/gemerator/generators/gem/templates/bin/binary.erb
         
     | 
| 
       8 
     | 
    
         
            -
            lib/gemerator/generators/gem/templates/test/module_test.rb.erb
         
     | 
| 
       9 
     | 
    
         
            -
            lib/gemerator/generators/gem/templates/README.rdoc.erb
         
     | 
| 
       10 
     | 
    
         
            -
            lib/gemerator/generators/gem.rb
         
     | 
| 
      
 1 
     | 
    
         
            +
            lib/gemerator/version.rb
         
     | 
| 
       11 
2 
     | 
    
         
             
            lib/gemerator/github.rb
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
      
 3 
     | 
    
         
            +
            app_generators/gem/templates/fresh_rakefile
         
     | 
| 
      
 4 
     | 
    
         
            +
            app_generators/gem/templates/console_script
         
     | 
| 
      
 5 
     | 
    
         
            +
            app_generators/gem/templates/module_test.rb
         
     | 
| 
      
 6 
     | 
    
         
            +
            app_generators/gem/templates/module.rb
         
     | 
| 
      
 7 
     | 
    
         
            +
            app_generators/gem/templates/gitignore
         
     | 
| 
      
 8 
     | 
    
         
            +
            app_generators/gem/templates/README.rdoc
         
     | 
| 
      
 9 
     | 
    
         
            +
            app_generators/gem/templates/binary
         
     | 
| 
      
 10 
     | 
    
         
            +
            app_generators/gem/gem_generator.rb
         
     | 
| 
       13 
11 
     | 
    
         
             
            README.rdoc
         
     | 
| 
       14 
     | 
    
         
            -
            init.rb
         
     | 
| 
       15 
12 
     | 
    
         
             
            bin/gemerate
         
     | 
| 
       16 
13 
     | 
    
         
             
            Rakefile
         
     | 
| 
      
 14 
     | 
    
         
            +
            gemerator.gemspec
         
     | 
| 
       17 
15 
     | 
    
         
             
            Manifest
         
     | 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -1,7 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'rubygems'
         
     | 
| 
       2 
2 
     | 
    
         
             
            require 'echoe'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require File.join(File.dirname(__FILE__), 'lib', 'gemerator', 'version')
         
     | 
| 
       3 
4 
     | 
    
         | 
| 
       4 
     | 
    
         
            -
            Echoe.new('gemerator',  
     | 
| 
      
 5 
     | 
    
         
            +
            Echoe.new('gemerator', Gemerator::Version) do |p|
         
     | 
| 
       5 
6 
     | 
    
         
             
              p.description = 'Quickly generate the basic structure of a GitHub-hosted RubyGem'
         
     | 
| 
       6 
7 
     | 
    
         
             
              p.url         = 'http://github.com/perplect/gemerator/tree/master'
         
     | 
| 
       7 
8 
     | 
    
         
             
              p.author      = 'David Knorr'
         
     | 
| 
         @@ -0,0 +1,80 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class GemGenerator < RubiGen::Base
         
     | 
| 
      
 2 
     | 
    
         
            +
              attr_accessor :gem_name, :gem_description, :github_username, :github_token, :author_name, :author_email
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
              def initialize(runtime_args, runtime_options = {})
         
     | 
| 
      
 5 
     | 
    
         
            +
                super
         
     | 
| 
      
 6 
     | 
    
         
            +
                usage if args.empty?
         
     | 
| 
      
 7 
     | 
    
         
            +
                @highline = HighLine.new
         
     | 
| 
      
 8 
     | 
    
         
            +
                @destination_root = args.shift
         
     | 
| 
      
 9 
     | 
    
         
            +
                @gem_name = File.basename(File.expand_path(@destination_root))
         
     | 
| 
      
 10 
     | 
    
         
            +
                @gem_description = @highline.ask('Gem description?')
         
     | 
| 
      
 11 
     | 
    
         
            +
                @github_username = git_config('github.user')
         
     | 
| 
      
 12 
     | 
    
         
            +
                @github_token = git_config('github.token')
         
     | 
| 
      
 13 
     | 
    
         
            +
                @author_name = git_config('user.name')
         
     | 
| 
      
 14 
     | 
    
         
            +
                @author_email = git_config('user.email')
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
              def manifest
         
     | 
| 
      
 18 
     | 
    
         
            +
                record do |m|
         
     | 
| 
      
 19 
     | 
    
         
            +
                  m.directory ''
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                  m.template 'fresh_rakefile', 'Rakefile'
         
     | 
| 
      
 22 
     | 
    
         
            +
                  m.file     'gitignore', '.gitignore'
         
     | 
| 
      
 23 
     | 
    
         
            +
                  m.template 'README.rdoc', 'README.rdoc'
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                  ['bin', 'lib', 'script', 'test'].each do |dir|
         
     | 
| 
      
 26 
     | 
    
         
            +
                    m.directory dir
         
     | 
| 
      
 27 
     | 
    
         
            +
                  end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                  if @highline.agree 'Create binary?'
         
     | 
| 
      
 30 
     | 
    
         
            +
                    binary_name = @highline.ask 'Name of binary? (Default is gem name)'
         
     | 
| 
      
 31 
     | 
    
         
            +
                    m.file 'binary', "bin/#{binary_name.empty? ? @gem_name : binary_name}"
         
     | 
| 
      
 32 
     | 
    
         
            +
                  end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                  m.template 'module.rb', "lib/#{@gem_name}.rb"
         
     | 
| 
      
 35 
     | 
    
         
            +
                  m.template 'console_script', 'script/console'
         
     | 
| 
      
 36 
     | 
    
         
            +
                  m.template 'module_test.rb', "test/#{@gem_name}_test.rb"
         
     | 
| 
      
 37 
     | 
    
         
            +
                end
         
     | 
| 
      
 38 
     | 
    
         
            +
              end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
              def after_generate
         
     | 
| 
      
 41 
     | 
    
         
            +
                if @highline.agree 'Create GitHub repository?'
         
     | 
| 
      
 42 
     | 
    
         
            +
                  GitHub.new(@github_username, @github_token).create_repository(@gem_name, @gem_description)
         
     | 
| 
      
 43 
     | 
    
         
            +
                end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                Dir.chdir(@gem_name) do
         
     | 
| 
      
 46 
     | 
    
         
            +
                  `git init`
         
     | 
| 
      
 47 
     | 
    
         
            +
                  `git remote add origin git@github.com:#{@github_username}/#{@gem_name}.git`
         
     | 
| 
      
 48 
     | 
    
         
            +
                  `rake manifest`
         
     | 
| 
      
 49 
     | 
    
         
            +
                  `git add .`
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                  if @highline.agree 'Commit now?'
         
     | 
| 
      
 52 
     | 
    
         
            +
                    `git commit -m "Initial commit"`
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                    if @highline.agree 'Push to GitHub now?'
         
     | 
| 
      
 55 
     | 
    
         
            +
                      `git push origin master`
         
     | 
| 
      
 56 
     | 
    
         
            +
                    end
         
     | 
| 
      
 57 
     | 
    
         
            +
                  end
         
     | 
| 
      
 58 
     | 
    
         
            +
                end
         
     | 
| 
      
 59 
     | 
    
         
            +
              end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
              protected
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
              def banner
         
     | 
| 
      
 64 
     | 
    
         
            +
                <<-EOS
         
     | 
| 
      
 65 
     | 
    
         
            +
            Quickly generate the basic structure of a GitHub-hosted RubyGem.
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
            Usage: gemerate /path/to/your/gem [options]
         
     | 
| 
      
 68 
     | 
    
         
            +
            EOS
         
     | 
| 
      
 69 
     | 
    
         
            +
              end
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
              private
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
              def git_config(key)
         
     | 
| 
      
 74 
     | 
    
         
            +
                value = `git config --global #{key}`.chomp
         
     | 
| 
      
 75 
     | 
    
         
            +
                return value unless value.empty?
         
     | 
| 
      
 76 
     | 
    
         
            +
                `git config --global #{key} "#{@highline.ask("Git configuration: #{key}")}"`
         
     | 
| 
      
 77 
     | 
    
         
            +
                git_config(key)
         
     | 
| 
      
 78 
     | 
    
         
            +
              end
         
     | 
| 
      
 79 
     | 
    
         
            +
            end
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
    
        data/{lib/gemerator/generators/gem/templates/bin/binary.erb → app_generators/gem/templates/binary}
    RENAMED
    
    | 
         
            File without changes
         
     | 
| 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            #!/usr/bin/env ruby
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            puts "<%=  
     | 
| 
       4 
     | 
    
         
            -
            exec "irb -r #{File.join(File.dirname(__FILE__), '..', 'lib', '<%=  
     | 
| 
      
 3 
     | 
    
         
            +
            puts "<%= gem_name.camelize %> Console"
         
     | 
| 
      
 4 
     | 
    
         
            +
            exec "irb -r #{File.join(File.dirname(__FILE__), '..', 'lib', '<%= gem_name %>.rb')}"
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rubygems'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'echoe'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            Echoe.new('<%= gem_name %>', '0.0.1') do |p|
         
     | 
| 
      
 5 
     | 
    
         
            +
              p.description = '<%= gem_description %>'
         
     | 
| 
      
 6 
     | 
    
         
            +
              p.url         = 'http://github.com/<%= github_username %>/<%= gem_name %>/tree/master'
         
     | 
| 
      
 7 
     | 
    
         
            +
              p.author      = '<%= author_name %>'
         
     | 
| 
      
 8 
     | 
    
         
            +
              p.email       = '<%= author_email %>'
         
     | 
| 
      
 9 
     | 
    
         
            +
              p.development_dependencies = []
         
     | 
| 
      
 10 
     | 
    
         
            +
            end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            Dir[File.join(File.dirname(__FILE__), 'tasks', '*.rake')].each do |file|
         
     | 
| 
      
 13 
     | 
    
         
            +
              require file
         
     | 
| 
      
 14 
     | 
    
         
            +
            end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
    
        data/{lib/gemerator/generators/gem/templates/gitignore.erb → app_generators/gem/templates/gitignore}
    RENAMED
    
    | 
         
            File without changes
         
     | 
    
        data/bin/gemerate
    CHANGED
    
    | 
         @@ -1,6 +1,20 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            #!/usr/bin/env ruby
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
      
 3 
     | 
    
         
            +
            if %w(-v --version).include? ARGV.first
         
     | 
| 
      
 4 
     | 
    
         
            +
              require 'gemerator/version'
         
     | 
| 
      
 5 
     | 
    
         
            +
              puts "Gemerator #{Gemerator::Version}"
         
     | 
| 
      
 6 
     | 
    
         
            +
              exit(0)
         
     | 
| 
      
 7 
     | 
    
         
            +
            end
         
     | 
| 
       4 
8 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
      
 9 
     | 
    
         
            +
            require 'rubygems'
         
     | 
| 
      
 10 
     | 
    
         
            +
            require 'rubigen'
         
     | 
| 
      
 11 
     | 
    
         
            +
            require 'rubigen/scripts/generate'
         
     | 
| 
      
 12 
     | 
    
         
            +
            require 'fileutils'
         
     | 
| 
      
 13 
     | 
    
         
            +
            require 'highline'
         
     | 
| 
      
 14 
     | 
    
         
            +
            require 'activesupport'
         
     | 
| 
      
 15 
     | 
    
         
            +
            require 'httparty'
         
     | 
| 
      
 16 
     | 
    
         
            +
            require 'gemerator/github'
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            RubiGen::Base.use_application_sources!
         
     | 
| 
      
 19 
     | 
    
         
            +
            RubiGen::Scripts::Generate.new.run(ARGV, :generator => 'gem')
         
     | 
| 
       6 
20 
     | 
    
         | 
    
        data/gemerator.gemspec
    CHANGED
    
    | 
         @@ -2,17 +2,17 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       4 
4 
     | 
    
         
             
              s.name = %q{gemerator}
         
     | 
| 
       5 
     | 
    
         
            -
              s.version = "0.0 
     | 
| 
      
 5 
     | 
    
         
            +
              s.version = "0.1.0"
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
              s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
         
     | 
| 
       8 
8 
     | 
    
         
             
              s.authors = ["David Knorr"]
         
     | 
| 
       9 
     | 
    
         
            -
              s.date = %q{2009- 
     | 
| 
      
 9 
     | 
    
         
            +
              s.date = %q{2009-06-01}
         
     | 
| 
       10 
10 
     | 
    
         
             
              s.default_executable = %q{gemerate}
         
     | 
| 
       11 
11 
     | 
    
         
             
              s.description = %q{Quickly generate the basic structure of a GitHub-hosted RubyGem}
         
     | 
| 
       12 
12 
     | 
    
         
             
              s.email = %q{perplect@gmail.com}
         
     | 
| 
       13 
13 
     | 
    
         
             
              s.executables = ["gemerate"]
         
     | 
| 
       14 
     | 
    
         
            -
              s.extra_rdoc_files = ["lib/gemerator 
     | 
| 
       15 
     | 
    
         
            -
              s.files = ["lib/gemerator.rb", "lib/gemerator/ 
     | 
| 
      
 14 
     | 
    
         
            +
              s.extra_rdoc_files = ["lib/gemerator/version.rb", "lib/gemerator/github.rb", "README.rdoc", "bin/gemerate"]
         
     | 
| 
      
 15 
     | 
    
         
            +
              s.files = ["lib/gemerator/version.rb", "lib/gemerator/github.rb", "app_generators/gem/templates/fresh_rakefile", "app_generators/gem/templates/console_script", "app_generators/gem/templates/module_test.rb", "app_generators/gem/templates/module.rb", "app_generators/gem/templates/gitignore", "app_generators/gem/templates/README.rdoc", "app_generators/gem/templates/binary", "app_generators/gem/gem_generator.rb", "README.rdoc", "bin/gemerate", "Rakefile", "gemerator.gemspec", "Manifest"]
         
     | 
| 
       16 
16 
     | 
    
         
             
              s.has_rdoc = true
         
     | 
| 
       17 
17 
     | 
    
         
             
              s.homepage = %q{http://github.com/perplect/gemerator/tree/master}
         
     | 
| 
       18 
18 
     | 
    
         
             
              s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Gemerator", "--main", "README.rdoc"]
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: perplect-gemerator
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors: 
         
     | 
| 
       7 
7 
     | 
    
         
             
            - David Knorr
         
     | 
| 
         @@ -9,7 +9,7 @@ autorequire: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
            date: 2009- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2009-06-01 00:00:00 -07:00
         
     | 
| 
       13 
13 
     | 
    
         
             
            default_executable: gemerate
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
         @@ -20,39 +20,26 @@ executables: 
     | 
|
| 
       20 
20 
     | 
    
         
             
            extensions: []
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
            extra_rdoc_files: 
         
     | 
| 
       23 
     | 
    
         
            -
            - lib/gemerator.rb
         
     | 
| 
       24 
     | 
    
         
            -
            - lib/gemerator/generators/gem/templates/fresh_rakefile.erb
         
     | 
| 
       25 
     | 
    
         
            -
            - lib/gemerator/generators/gem/templates/gitignore.erb
         
     | 
| 
       26 
     | 
    
         
            -
            - lib/gemerator/generators/gem/templates/script/console.erb
         
     | 
| 
       27 
     | 
    
         
            -
            - lib/gemerator/generators/gem/templates/gemerated.erb
         
     | 
| 
       28 
     | 
    
         
            -
            - lib/gemerator/generators/gem/templates/lib/module.rb.erb
         
     | 
| 
       29 
     | 
    
         
            -
            - lib/gemerator/generators/gem/templates/bin/binary.erb
         
     | 
| 
       30 
     | 
    
         
            -
            - lib/gemerator/generators/gem/templates/test/module_test.rb.erb
         
     | 
| 
       31 
     | 
    
         
            -
            - lib/gemerator/generators/gem/templates/README.rdoc.erb
         
     | 
| 
       32 
     | 
    
         
            -
            - lib/gemerator/generators/gem.rb
         
     | 
| 
      
 23 
     | 
    
         
            +
            - lib/gemerator/version.rb
         
     | 
| 
       33 
24 
     | 
    
         
             
            - lib/gemerator/github.rb
         
     | 
| 
       34 
     | 
    
         
            -
            - lib/gemerator/generator.rb
         
     | 
| 
       35 
25 
     | 
    
         
             
            - README.rdoc
         
     | 
| 
       36 
26 
     | 
    
         
             
            - bin/gemerate
         
     | 
| 
       37 
27 
     | 
    
         
             
            files: 
         
     | 
| 
       38 
     | 
    
         
            -
            - lib/gemerator.rb
         
     | 
| 
       39 
     | 
    
         
            -
            - lib/gemerator/generators/gem/templates/fresh_rakefile.erb
         
     | 
| 
       40 
     | 
    
         
            -
            - lib/gemerator/generators/gem/templates/gitignore.erb
         
     | 
| 
       41 
     | 
    
         
            -
            - lib/gemerator/generators/gem/templates/script/console.erb
         
     | 
| 
       42 
     | 
    
         
            -
            - lib/gemerator/generators/gem/templates/gemerated.erb
         
     | 
| 
       43 
     | 
    
         
            -
            - lib/gemerator/generators/gem/templates/lib/module.rb.erb
         
     | 
| 
       44 
     | 
    
         
            -
            - lib/gemerator/generators/gem/templates/bin/binary.erb
         
     | 
| 
       45 
     | 
    
         
            -
            - lib/gemerator/generators/gem/templates/test/module_test.rb.erb
         
     | 
| 
       46 
     | 
    
         
            -
            - lib/gemerator/generators/gem/templates/README.rdoc.erb
         
     | 
| 
       47 
     | 
    
         
            -
            - lib/gemerator/generators/gem.rb
         
     | 
| 
      
 28 
     | 
    
         
            +
            - lib/gemerator/version.rb
         
     | 
| 
       48 
29 
     | 
    
         
             
            - lib/gemerator/github.rb
         
     | 
| 
       49 
     | 
    
         
            -
            -  
     | 
| 
      
 30 
     | 
    
         
            +
            - app_generators/gem/templates/fresh_rakefile
         
     | 
| 
      
 31 
     | 
    
         
            +
            - app_generators/gem/templates/console_script
         
     | 
| 
      
 32 
     | 
    
         
            +
            - app_generators/gem/templates/module_test.rb
         
     | 
| 
      
 33 
     | 
    
         
            +
            - app_generators/gem/templates/module.rb
         
     | 
| 
      
 34 
     | 
    
         
            +
            - app_generators/gem/templates/gitignore
         
     | 
| 
      
 35 
     | 
    
         
            +
            - app_generators/gem/templates/README.rdoc
         
     | 
| 
      
 36 
     | 
    
         
            +
            - app_generators/gem/templates/binary
         
     | 
| 
      
 37 
     | 
    
         
            +
            - app_generators/gem/gem_generator.rb
         
     | 
| 
       50 
38 
     | 
    
         
             
            - README.rdoc
         
     | 
| 
       51 
     | 
    
         
            -
            - init.rb
         
     | 
| 
       52 
39 
     | 
    
         
             
            - bin/gemerate
         
     | 
| 
       53 
40 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       54 
     | 
    
         
            -
            - Manifest
         
     | 
| 
       55 
41 
     | 
    
         
             
            - gemerator.gemspec
         
     | 
| 
      
 42 
     | 
    
         
            +
            - Manifest
         
     | 
| 
       56 
43 
     | 
    
         
             
            has_rdoc: true
         
     | 
| 
       57 
44 
     | 
    
         
             
            homepage: http://github.com/perplect/gemerator/tree/master
         
     | 
| 
       58 
45 
     | 
    
         
             
            post_install_message: 
         
     | 
    
        data/init.rb
    DELETED
    
    | 
         @@ -1,14 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'fileutils'
         
     | 
| 
       2 
     | 
    
         
            -
            require 'highline'
         
     | 
| 
       3 
     | 
    
         
            -
            require 'erb'
         
     | 
| 
       4 
     | 
    
         
            -
            require 'activesupport'
         
     | 
| 
       5 
     | 
    
         
            -
            require 'httparty'
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
            require 'gemerator'
         
     | 
| 
       8 
     | 
    
         
            -
            require 'gemerator/generator'
         
     | 
| 
       9 
     | 
    
         
            -
            require 'gemerator/github'
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
            Dir[File.join(File.dirname(__FILE__), 'lib', 'gemerator', 'generators', '**', '*.rb')].each do |file|
         
     | 
| 
       12 
     | 
    
         
            -
              require file
         
     | 
| 
       13 
     | 
    
         
            -
            end
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
    
        data/lib/gemerator.rb
    DELETED
    
    
    
        data/lib/gemerator/generator.rb
    DELETED
    
    | 
         @@ -1,66 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            module Gemerator
         
     | 
| 
       2 
     | 
    
         
            -
              class Generator
         
     | 
| 
       3 
     | 
    
         
            -
                include FileUtils
         
     | 
| 
       4 
     | 
    
         
            -
                HighLine.track_eof = false
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
                def initialize
         
     | 
| 
       7 
     | 
    
         
            -
                  @highline = HighLine.new
         
     | 
| 
       8 
     | 
    
         
            -
                  @events = []
         
     | 
| 
       9 
     | 
    
         
            -
                end
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
                def run!
         
     | 
| 
       12 
     | 
    
         
            -
                  output
         
     | 
| 
       13 
     | 
    
         
            -
                end
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
                def create_directory(name)
         
     | 
| 
       16 
     | 
    
         
            -
                  mkdir File.join(name.split('/'))
         
     | 
| 
       17 
     | 
    
         
            -
                  record 'directory', name
         
     | 
| 
       18 
     | 
    
         
            -
                end
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
                def create_file(directory, template, name, permissions=nil)
         
     | 
| 
       21 
     | 
    
         
            -
                  File.open(File.join(directory, name), 'w', permissions) do |file|
         
     | 
| 
       22 
     | 
    
         
            -
                    file.puts erb_result(template)
         
     | 
| 
       23 
     | 
    
         
            -
                  end
         
     | 
| 
       24 
     | 
    
         
            -
                  record 'file', "#{directory}/#{name}"
         
     | 
| 
       25 
     | 
    
         
            -
                end
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
                def output
         
     | 
| 
       28 
     | 
    
         
            -
                  @events.flatten!
         
     | 
| 
       29 
     | 
    
         
            -
                  puts
         
     | 
| 
       30 
     | 
    
         
            -
                  puts @highline.color(@highline.list(@events, :columns_across, 2), :green)
         
     | 
| 
       31 
     | 
    
         
            -
                end
         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
                protected
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
                def record(event, details)
         
     | 
| 
       36 
     | 
    
         
            -
                  @events << [event, details]
         
     | 
| 
       37 
     | 
    
         
            -
                end
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
                def inside(name, command)
         
     | 
| 
       40 
     | 
    
         
            -
                  `cd #{name} && #{command} && cd ..`
         
     | 
| 
       41 
     | 
    
         
            -
                end
         
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
                def ask(question)
         
     | 
| 
       44 
     | 
    
         
            -
                  @highline.ask @highline.color(question, :blue)
         
     | 
| 
       45 
     | 
    
         
            -
                end
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
                def yes?(question)
         
     | 
| 
       48 
     | 
    
         
            -
                  @highline.agree @highline.color(question, :blue)
         
     | 
| 
       49 
     | 
    
         
            -
                end
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
                def say(stuff)
         
     | 
| 
       52 
     | 
    
         
            -
                  @highline.say @highline.color(stuff, :magenta)
         
     | 
| 
       53 
     | 
    
         
            -
                end
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
                protected
         
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
                def erb_result(name)
         
     | 
| 
       58 
     | 
    
         
            -
                  content = ''
         
     | 
| 
       59 
     | 
    
         
            -
                  File.new(File.join(File.dirname(__FILE__), 'generators', 'gem', 'templates', "#{name}.erb")).each_line do |line|
         
     | 
| 
       60 
     | 
    
         
            -
                    content << line
         
     | 
| 
       61 
     | 
    
         
            -
                  end
         
     | 
| 
       62 
     | 
    
         
            -
                  ERB.new(content).result(binding)
         
     | 
| 
       63 
     | 
    
         
            -
                end
         
     | 
| 
       64 
     | 
    
         
            -
              end
         
     | 
| 
       65 
     | 
    
         
            -
            end
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
         @@ -1,124 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            module Gemerator
         
     | 
| 
       2 
     | 
    
         
            -
              module Generators
         
     | 
| 
       3 
     | 
    
         
            -
                class Gem < Generator
         
     | 
| 
       4 
     | 
    
         
            -
                  def initialize
         
     | 
| 
       5 
     | 
    
         
            -
                    super
         
     | 
| 
       6 
     | 
    
         
            -
                    @gem_name = ARGV.first
         
     | 
| 
       7 
     | 
    
         
            -
                    @gem_description = ask('Gem description?')
         
     | 
| 
       8 
     | 
    
         
            -
                    @github_username = git_config('github.user')
         
     | 
| 
       9 
     | 
    
         
            -
                    @github_token = git_config('github.token')
         
     | 
| 
       10 
     | 
    
         
            -
                    @author_name = git_config('user.name')
         
     | 
| 
       11 
     | 
    
         
            -
                    @author_email = git_config('user.email')
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
                    if yes? 'Create binary?'
         
     | 
| 
       14 
     | 
    
         
            -
                      binary_name = ask('Name of binary? (Default is gem name)')
         
     | 
| 
       15 
     | 
    
         
            -
                      @binary_name = binary_name.empty? ? @gem_name : binary_name
         
     | 
| 
       16 
     | 
    
         
            -
                    end
         
     | 
| 
       17 
     | 
    
         
            -
                  end
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
                  def run!
         
     | 
| 
       20 
     | 
    
         
            -
                    create_github_repository
         
     | 
| 
       21 
     | 
    
         
            -
                    create_gem_directory
         
     | 
| 
       22 
     | 
    
         
            -
                    initialize_git_repository
         
     | 
| 
       23 
     | 
    
         
            -
                    add_git_remote
         
     | 
| 
       24 
     | 
    
         
            -
                    create_lib_directory
         
     | 
| 
       25 
     | 
    
         
            -
                    create_module_file
         
     | 
| 
       26 
     | 
    
         
            -
                    create_test_directory
         
     | 
| 
       27 
     | 
    
         
            -
                    create_module_test_file
         
     | 
| 
       28 
     | 
    
         
            -
                    create_script_directory
         
     | 
| 
       29 
     | 
    
         
            -
                    create_console_script_file
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
                    if @binary_name
         
     | 
| 
       32 
     | 
    
         
            -
                      create_bin_directory
         
     | 
| 
       33 
     | 
    
         
            -
                      create_binary_file
         
     | 
| 
       34 
     | 
    
         
            -
                    end
         
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
                    create_rakefile_file
         
     | 
| 
       37 
     | 
    
         
            -
                    create_readme_file
         
     | 
| 
       38 
     | 
    
         
            -
                    create_gitignore_file
         
     | 
| 
       39 
     | 
    
         
            -
                    generate_manifest
         
     | 
| 
       40 
     | 
    
         
            -
                    add_all_files_to_index
         
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
                    if yes? 'Commit now?'
         
     | 
| 
       43 
     | 
    
         
            -
                      initial_commit
         
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
                      if yes? 'Push to GitHub now?'
         
     | 
| 
       46 
     | 
    
         
            -
                        push_to_github
         
     | 
| 
       47 
     | 
    
         
            -
                      end
         
     | 
| 
       48 
     | 
    
         
            -
                    end
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
                    super
         
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
                    say erb_result('gemerated')
         
     | 
| 
       53 
     | 
    
         
            -
                  end
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
                  private
         
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
                  def create_github_repository
         
     | 
| 
       58 
     | 
    
         
            -
                    GitHub.new(@github_username, @github_token).create_repository(@gem_name, @gem_description)
         
     | 
| 
       59 
     | 
    
         
            -
                  end
         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
     | 
    
         
            -
                  def create_gem_directory
         
     | 
| 
       62 
     | 
    
         
            -
                    create_directory @gem_name
         
     | 
| 
       63 
     | 
    
         
            -
                  end
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
                  def initialize_git_repository
         
     | 
| 
       66 
     | 
    
         
            -
                    inside @gem_name, 'git init'
         
     | 
| 
       67 
     | 
    
         
            -
                    record 'git', 'init'
         
     | 
| 
       68 
     | 
    
         
            -
                  end
         
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
       70 
     | 
    
         
            -
                  def add_git_remote
         
     | 
| 
       71 
     | 
    
         
            -
                    inside @gem_name, "git remote add origin git@github.com:#{@github_username}/#{@gem_name}.git"
         
     | 
| 
       72 
     | 
    
         
            -
                    record 'git', 'add remote'
         
     | 
| 
       73 
     | 
    
         
            -
                  end
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
                  def generate_manifest
         
     | 
| 
       76 
     | 
    
         
            -
                    inside @gem_name, 'rake manifest'
         
     | 
| 
       77 
     | 
    
         
            -
                    record 'generate', 'manifest'
         
     | 
| 
       78 
     | 
    
         
            -
                  end
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
                  def add_all_files_to_index
         
     | 
| 
       81 
     | 
    
         
            -
                    inside @gem_name, 'git add .'
         
     | 
| 
       82 
     | 
    
         
            -
                    record 'git', 'add all files'
         
     | 
| 
       83 
     | 
    
         
            -
                  end
         
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
                  def initial_commit
         
     | 
| 
       86 
     | 
    
         
            -
                    inside @gem_name, 'git commit -m "Initial commit"'
         
     | 
| 
       87 
     | 
    
         
            -
                    record 'git', 'initial commit'
         
     | 
| 
       88 
     | 
    
         
            -
                  end
         
     | 
| 
       89 
     | 
    
         
            -
             
     | 
| 
       90 
     | 
    
         
            -
                  def push_to_github
         
     | 
| 
       91 
     | 
    
         
            -
                    inside @gem_name, 'git push origin master'
         
     | 
| 
       92 
     | 
    
         
            -
                    record 'git', 'push'
         
     | 
| 
       93 
     | 
    
         
            -
                  end
         
     | 
| 
       94 
     | 
    
         
            -
             
     | 
| 
       95 
     | 
    
         
            -
                  def method_missing(symbol, *args, &block)
         
     | 
| 
       96 
     | 
    
         
            -
                    if /^create_(.+)_directory$/ =~ symbol.to_s
         
     | 
| 
       97 
     | 
    
         
            -
                      create_directory "#{@gem_name}/#{$1}"
         
     | 
| 
       98 
     | 
    
         
            -
                    elsif /^create_(.+)_file$/ =~ symbol.to_s
         
     | 
| 
       99 
     | 
    
         
            -
                      file = files[$1.to_sym]
         
     | 
| 
       100 
     | 
    
         
            -
                      create_file @gem_name, file[0], file[1], file[2]
         
     | 
| 
       101 
     | 
    
         
            -
                    else
         
     | 
| 
       102 
     | 
    
         
            -
                      super
         
     | 
| 
       103 
     | 
    
         
            -
                    end
         
     | 
| 
       104 
     | 
    
         
            -
                  end
         
     | 
| 
       105 
     | 
    
         
            -
             
     | 
| 
       106 
     | 
    
         
            -
                  def files
         
     | 
| 
       107 
     | 
    
         
            -
                    {
         
     | 
| 
       108 
     | 
    
         
            -
                      :module => ['lib/module.rb', "lib/#{@gem_name}.rb"],
         
     | 
| 
       109 
     | 
    
         
            -
                      :module_test => ['test/module_test.rb', "test/#{@gem_name}_test.rb"],
         
     | 
| 
       110 
     | 
    
         
            -
                      :console_script => ['script/console', 'script/console', 0755],
         
     | 
| 
       111 
     | 
    
         
            -
                      :binary => ['bin/binary', "bin/#{@binary_name}"],
         
     | 
| 
       112 
     | 
    
         
            -
                      :rakefile => ['fresh_rakefile', 'Rakefile'],
         
     | 
| 
       113 
     | 
    
         
            -
                      :readme => ['README.rdoc', 'README.rdoc'],
         
     | 
| 
       114 
     | 
    
         
            -
                      :gitignore => ['gitignore', '.gitignore']
         
     | 
| 
       115 
     | 
    
         
            -
                    }
         
     | 
| 
       116 
     | 
    
         
            -
                  end
         
     | 
| 
       117 
     | 
    
         
            -
             
     | 
| 
       118 
     | 
    
         
            -
                  def git_config(key)
         
     | 
| 
       119 
     | 
    
         
            -
                    `git config --global #{key}`.chomp
         
     | 
| 
       120 
     | 
    
         
            -
                  end
         
     | 
| 
       121 
     | 
    
         
            -
                end
         
     | 
| 
       122 
     | 
    
         
            -
              end
         
     | 
| 
       123 
     | 
    
         
            -
            end
         
     | 
| 
       124 
     | 
    
         
            -
             
     | 
| 
         @@ -1,15 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'rubygems'
         
     | 
| 
       2 
     | 
    
         
            -
            require 'echoe'
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            Echoe.new('<%= @gem_name %>', '0.0.1') do |p|
         
     | 
| 
       5 
     | 
    
         
            -
              p.description = '<%= @gem_description %>'
         
     | 
| 
       6 
     | 
    
         
            -
              p.url         = 'http://github.com/<%= @github_username %>/<%= @gem_name %>/tree/master'
         
     | 
| 
       7 
     | 
    
         
            -
              p.author      = '<%= @author_name %>'
         
     | 
| 
       8 
     | 
    
         
            -
              p.email       = '<%= @author_email %>'
         
     | 
| 
       9 
     | 
    
         
            -
              p.development_dependencies = []
         
     | 
| 
       10 
     | 
    
         
            -
            end
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
            Dir[File.join(File.dirname(__FILE__), 'tasks', '*.rake')].each do |file|
         
     | 
| 
       13 
     | 
    
         
            -
              require file
         
     | 
| 
       14 
     | 
    
         
            -
            end
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
         @@ -1,22 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            <%= headline = "#{@gem_name.camelize} Was Gemerated!" %>
         
     | 
| 
       2 
     | 
    
         
            -
            <%= '=' * headline.length %>
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            Whenever you add new files:
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
              rake manifest
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
            To run your tests:
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
              rake test
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
            To install your gem locally:
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
              rake install
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
            To rebuild the Gem specification before releasing a new version:
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
              rake build_gemspec
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
            More tasks has been made available to you by Echoe:
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
              rake -T
         
     |