Sha256: aafdb27db14ac8f80ba6aa8e56f83d18e5036d35dd17adfc5bb98393bfed5afb

Contents?: true

Size: 1.98 KB

Versions: 3

Compression:

Stored size: 1.98 KB

Contents

#!/usr/local/bin/ruby
require File.dirname(__FILE__) + '/../config/environment'
require 'rails_generator'

ARGV.shift unless ARGV.empty? or not ['--help', '-h'].include?(ARGV[0])

def find_synonyms(word)
  require 'open-uri'
  require 'timeout'

  uri = "http://wordnet.princeton.edu/cgi-bin/webwn2.0?stage=2" +
    "&word=%s&posnumber=1&searchtypenumber=2&senses=&showglosses=1"

  timeout(5) do
    open(uri % word) do |stream|
      data = stream.read.gsub("&nbsp;", " ").gsub("<BR>", "")
      data.scan(/^Sense \d+\n.+?\n\n/m)
    end
  end
rescue Timeout::Error, Exception
  return nil
end

unless ARGV.empty?
  begin
    name = ARGV.shift
    generator = Rails::Generator.instance(name, ARGV)

    if msg = generator.collision_with_builtin? then
      $stderr.puts msg

      if synonyms = find_synonyms(generator.class_name) then
        $stderr.puts(
          "", "Here are a few synonyms from WordNet. Maybe they will help you find an alternative name.",
          "", synonyms
        )
      end
    else
      generator.generate
    end
  rescue Rails::Generator::UsageError => e
    puts e.message
  end
else
  builtin_generators = Rails::Generator.builtin_generators.join(', ')
  contrib_generators = Rails::Generator.contrib_generators.join(', ')

  $stderr.puts <<end_usage
  #{$0} generator [args]

  Rails comes with #{builtin_generators} generators.
    #{$0} controller Login login logout
    #{$0} model Account
    #{$0} mailer AccountMailer
    #{$0} scaffold Account action another_action

end_usage

  unless contrib_generators.empty?
    $stderr.puts "  Installed generators (in #{RAILS_ROOT}/script/generators):"
    $stderr.puts "    #{contrib_generators}"
    $stderr.puts
  end

  $stderr.puts <<end_usage
  More generators are available at http://rubyonrails.org/show/Generators
    1. Download, for example, login_generator.tar.gz
    2. Unzip to directory #{RAILS_ROOT}/script/generators/login
    3. Generate without args for usage information
         #{$0} login
end_usage
  exit 0
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
devise_sociable-0.1.0 vendor/bundle/gems/rails-0.9.5/bin/generate
rails-0.9.4.1 bin/generate
rails-0.9.5 bin/generate