newplugin 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. data/History.txt +4 -0
  2. data/Manifest.txt +42 -0
  3. data/README.rdoc +32 -0
  4. data/Rakefile +21 -0
  5. data/bin/newplugin-gen +33 -0
  6. data/generators/app/USAGE +5 -0
  7. data/generators/app/app_generator.rb +53 -0
  8. data/generators/app/templates/MIT-LICENSE +20 -0
  9. data/generators/app/templates/README +13 -0
  10. data/generators/app/templates/Rakefile +23 -0
  11. data/generators/app/templates/init.rb +1 -0
  12. data/generators/app/templates/install.rb +1 -0
  13. data/generators/app/templates/lib/module.rb +1 -0
  14. data/generators/app/templates/tasks/tasks.rake +4 -0
  15. data/generators/app/templates/test/app_root/app/controllers/application_controller.rb +2 -0
  16. data/generators/app/templates/test/app_root/config/boot.rb +107 -0
  17. data/generators/app/templates/test/app_root/config/database.yml +25 -0
  18. data/generators/app/templates/test/app_root/config/environment.rb +16 -0
  19. data/generators/app/templates/test/app_root/config/environments/in_memory.rb +0 -0
  20. data/generators/app/templates/test/app_root/config/environments/mysql.rb +0 -0
  21. data/generators/app/templates/test/app_root/config/environments/postgresql.rb +0 -0
  22. data/generators/app/templates/test/app_root/config/environments/sqlite.rb +0 -0
  23. data/generators/app/templates/test/app_root/config/environments/sqlite3.rb +0 -0
  24. data/generators/app/templates/test/app_root/config/initializers/plugin.rb +4 -0
  25. data/generators/app/templates/test/app_root/config/routes.rb +4 -0
  26. data/generators/app/templates/test/test_helper.rb +2 -0
  27. data/generators/app/templates/uninstall.rb +1 -0
  28. data/generators/controller/USAGE +2 -0
  29. data/generators/controller/controller_generator.rb +22 -0
  30. data/generators/controller/templates/controller.rb +8 -0
  31. data/generators/migration/USAGE +2 -0
  32. data/generators/migration/migration_generator.rb +22 -0
  33. data/generators/migration/templates/migration.rb +7 -0
  34. data/generators/model/USAGE +2 -0
  35. data/generators/model/model_generator.rb +35 -0
  36. data/generators/model/templates/fixtures.yml +19 -0
  37. data/generators/model/templates/migration.rb +13 -0
  38. data/generators/model/templates/model.rb +2 -0
  39. data/lib/newplugin.rb +6 -0
  40. data/test/test_generator_helper.rb +29 -0
  41. data/test/test_helper.rb +3 -0
  42. data/test/test_new_plugin.rb +11 -0
  43. metadata +110 -0
data/History.txt ADDED
@@ -0,0 +1,4 @@
1
+ === 0.0.1 2009-11-30
2
+
3
+ * 1 major enhancement:
4
+ * Initial release
data/Manifest.txt ADDED
@@ -0,0 +1,42 @@
1
+ History.txt
2
+ Manifest.txt
3
+ README.rdoc
4
+ Rakefile
5
+ bin/newplugin-gen
6
+ generators/app/USAGE
7
+ generators/app/app_generator.rb
8
+ generators/app/templates/MIT-LICENSE
9
+ generators/app/templates/README
10
+ generators/app/templates/Rakefile
11
+ generators/app/templates/init.rb
12
+ generators/app/templates/install.rb
13
+ generators/app/templates/lib/module.rb
14
+ generators/app/templates/tasks/tasks.rake
15
+ generators/app/templates/test/app_root/app/controllers/application_controller.rb
16
+ generators/app/templates/test/app_root/config/boot.rb
17
+ generators/app/templates/test/app_root/config/database.yml
18
+ generators/app/templates/test/app_root/config/environment.rb
19
+ generators/app/templates/test/app_root/config/environments/in_memory.rb
20
+ generators/app/templates/test/app_root/config/environments/mysql.rb
21
+ generators/app/templates/test/app_root/config/environments/postgresql.rb
22
+ generators/app/templates/test/app_root/config/environments/sqlite.rb
23
+ generators/app/templates/test/app_root/config/environments/sqlite3.rb
24
+ generators/app/templates/test/app_root/config/initializers/plugin.rb
25
+ generators/app/templates/test/app_root/config/routes.rb
26
+ generators/app/templates/test/test_helper.rb
27
+ generators/app/templates/uninstall.rb
28
+ generators/controller/USAGE
29
+ generators/controller/controller_generator.rb
30
+ generators/controller/templates/controller.rb
31
+ generators/migration/USAGE
32
+ generators/migration/migration_generator.rb
33
+ generators/migration/templates/migration.rb
34
+ generators/model/USAGE
35
+ generators/model/model_generator.rb
36
+ generators/model/templates/fixtures.yml
37
+ generators/model/templates/migration.rb
38
+ generators/model/templates/model.rb
39
+ lib/newplugin.rb
40
+ test/test_generator_helper.rb
41
+ test/test_helper.rb
42
+ test/test_new_plugin.rb
data/README.rdoc ADDED
@@ -0,0 +1,32 @@
1
+ = newplugin
2
+
3
+ * http://github.com/jinzhu/newplugin
4
+
5
+ == DESCRIPTION:
6
+
7
+ New Plugin Generator, make it dead easy to create a new plugin
8
+
9
+ == LICENSE:
10
+
11
+ (The MIT License)
12
+
13
+ Copyright (c) 2009 ZhangJinzhu
14
+
15
+ Permission is hereby granted, free of charge, to any person obtaining
16
+ a copy of this software and associated documentation files (the
17
+ 'Software'), to deal in the Software without restriction, including
18
+ without limitation the rights to use, copy, modify, merge, publish,
19
+ distribute, sublicense, and/or sell copies of the Software, and to
20
+ permit persons to whom the Software is furnished to do so, subject to
21
+ the following conditions:
22
+
23
+ The above copyright notice and this permission notice shall be
24
+ included in all copies or substantial portions of the Software.
25
+
26
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
27
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
28
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
29
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
30
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
31
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
32
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,21 @@
1
+ require 'rubygems'
2
+ gem 'hoe', '>= 2.1.0'
3
+ require 'hoe'
4
+ require 'fileutils'
5
+ require './lib/newplugin'
6
+
7
+ Hoe.plugin :newgem
8
+ # Hoe.plugin :website
9
+ # Hoe.plugin :cucumberfeatures
10
+
11
+ # Generate all the Rake tasks
12
+ # Run 'rake -T' to see list of generated tasks (from gem root directory)
13
+ $hoe = Hoe.spec 'newplugin' do
14
+ self.developer 'ZhangJinzhu', 'wosmvp@gmail.com'
15
+ # self.post_install_message = 'PostInstall.txt'
16
+ self.rubyforge_name = self.name
17
+ # self.extra_deps = [['activesupport','>= 2.0.2']]
18
+ end
19
+
20
+ require 'newgem/tasks'
21
+ Dir['tasks/**/*.rake'].each { |t| load t }
data/bin/newplugin-gen ADDED
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created on 2009-11-30.
4
+ # Copyright (c) 2009. All rights reserved.
5
+ # ZhangJinzhu <wosmvp@gmail.com>
6
+
7
+ require 'rubygems'
8
+ require File.expand_path(File.dirname(__FILE__) + "/../lib/newplugin")
9
+ require 'rubigen'
10
+
11
+ if %w(-v --version).include? ARGV.first
12
+ puts "#{File.basename($0)}: #{Newplugin::VERSION}"
13
+ exit(0)
14
+ end
15
+
16
+ generator = ARGV[0]
17
+ generators = Dir[File.join(File.dirname(__FILE__), "../generators/*")].map {|f| File.basename(f) }
18
+
19
+ unless generators.include?(generator)
20
+ puts <<-DOC
21
+ \e[33mUsage:\e[0m
22
+ Available Generators: #{generators.join(', ')}
23
+
24
+ `newplugin generator --help` for help
25
+ DOC
26
+ exit(0)
27
+ end
28
+
29
+ require 'rubigen/scripts/generate'
30
+ source = RubiGen::PathSource.new(:application,File.join(File.dirname(__FILE__), "../generators"))
31
+ RubiGen::Base.reset_sources
32
+ RubiGen::Base.append_sources source
33
+ RubiGen::Scripts::Generate.new.run(ARGV[1..-1], :generator => generator)
@@ -0,0 +1,5 @@
1
+ Description:
2
+
3
+
4
+ Usage:
5
+
@@ -0,0 +1,53 @@
1
+ class AppGenerator < RubiGen::Base
2
+
3
+ attr_reader :name,:plural_name,:singular_name,:class_name,:file_name
4
+
5
+ def initialize(runtime_args, runtime_options = {})
6
+ super
7
+ usage if args.empty?
8
+ @destination_root = File.expand_path(args.shift)
9
+ @name = base_name
10
+ @plural_name = @name.pluralize.underscore
11
+ @singular_name = @name.singularize.underscore
12
+
13
+ @file_name = @name.singularize.underscore
14
+ @class_name = @name.singularize.classify
15
+ end
16
+
17
+ def manifest
18
+ record do |m|
19
+ %w(
20
+ lib tasks test test/app_root test/unit test/app_root/app/controllers
21
+ test/app_root/config/environments test/app_root/config/initializers
22
+ ).each do |path|
23
+ m.directory path
24
+ end
25
+
26
+ m.template_copy_each %w(MIT-LICENSE README Rakefile init.rb install.rb uninstall.rb test/test_helper.rb test/app_root/app/controllers/application_controller.rb)
27
+ m.template "lib/module.rb","lib/#{file_name}.rb"
28
+ m.template "tasks/tasks.rake","tasks/#{file_name}_tasks.rake"
29
+
30
+ m.file_copy_each %w(
31
+ test/app_root/config/boot.rb
32
+ test/app_root/config/database.yml
33
+ test/app_root/config/environment.rb
34
+ test/app_root/config/environments/in_memory.rb
35
+ test/app_root/config/environments/mysql.rb
36
+ test/app_root/config/environments/postgresql.rb
37
+ test/app_root/config/environments/sqlite.rb
38
+ test/app_root/config/environments/sqlite3.rb
39
+ test/app_root/config/initializers/plugin.rb
40
+ test/app_root/config/routes.rb
41
+ )
42
+ end
43
+ end
44
+
45
+ protected
46
+ def banner
47
+ <<-EOS
48
+ Creates a new plugin
49
+
50
+ USAGE: #{spec.name} name
51
+ EOS
52
+ end
53
+ end
@@ -0,0 +1,20 @@
1
+ Copyright (c) <%= Date.today.year %> [name of plugin creator]
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,13 @@
1
+ <%= class_name %>
2
+ <%= "=" * class_name.size %>
3
+
4
+ Introduction goes here.
5
+
6
+
7
+ Example
8
+ =======
9
+
10
+ Example goes here.
11
+
12
+
13
+ Copyright (c) <%= Date.today.year %> [name of plugin creator], released under the MIT license
@@ -0,0 +1,23 @@
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+ require 'rake/rdoctask'
4
+
5
+ desc 'Default: run unit tests.'
6
+ task :default => :test
7
+
8
+ desc 'Test the <%= file_name %> plugin.'
9
+ Rake::TestTask.new(:test) do |t|
10
+ t.libs << 'lib'
11
+ t.libs << 'test'
12
+ t.pattern = 'test/**/*_test.rb'
13
+ t.verbose = true
14
+ end
15
+
16
+ desc 'Generate documentation for the <%= file_name %> plugin.'
17
+ Rake::RDocTask.new(:rdoc) do |rdoc|
18
+ rdoc.rdoc_dir = 'rdoc'
19
+ rdoc.title = '<%= class_name %>'
20
+ rdoc.options << '--line-numbers' << '--inline-source'
21
+ rdoc.rdoc_files.include('README')
22
+ rdoc.rdoc_files.include('lib/**/*.rb')
23
+ end
@@ -0,0 +1 @@
1
+ # Include hook code here
@@ -0,0 +1 @@
1
+ # Install hook code here
@@ -0,0 +1 @@
1
+ # <%= class_name %>
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :<%= file_name %> do
3
+ # # Task goes here
4
+ # end
@@ -0,0 +1,2 @@
1
+ class ApplicationController < ActionController::Base
2
+ end
@@ -0,0 +1,107 @@
1
+ RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
2
+
3
+ module Rails
4
+ class << self
5
+ def boot!
6
+ unless booted?
7
+ preinitialize
8
+ pick_boot.run
9
+ end
10
+ end
11
+
12
+ def booted?
13
+ defined? Rails::Initializer
14
+ end
15
+
16
+ def pick_boot
17
+ (vendor_rails? ? VendorBoot : GemBoot).new
18
+ end
19
+
20
+ def vendor_rails?
21
+ File.exist?("#{RAILS_ROOT}/vendor/rails")
22
+ end
23
+
24
+ def preinitialize
25
+ load(preinitializer_path) if File.exist?(preinitializer_path)
26
+ end
27
+
28
+ def preinitializer_path
29
+ "#{RAILS_ROOT}/config/preinitializer.rb"
30
+ end
31
+ end
32
+
33
+ class Boot
34
+ def run
35
+ load_initializer
36
+ Rails::Initializer.run(:set_load_path)
37
+ end
38
+ end
39
+
40
+ class VendorBoot < Boot
41
+ def load_initializer
42
+ require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
43
+ Rails::Initializer.run(:install_gem_spec_stubs)
44
+ Rails::GemDependency.add_frozen_gem_path
45
+ end
46
+ end
47
+
48
+ class GemBoot < Boot
49
+ def load_initializer
50
+ self.class.load_rubygems
51
+ load_rails_gem
52
+ require 'initializer'
53
+ end
54
+
55
+ def load_rails_gem
56
+ if version = self.class.gem_version
57
+ gem 'rails', version
58
+ else
59
+ gem 'rails'
60
+ end
61
+ rescue Gem::LoadError => load_error
62
+ $stderr.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.)
63
+ exit 1
64
+ end
65
+
66
+ class << self
67
+ def rubygems_version
68
+ Gem::RubyGemsVersion rescue nil
69
+ end
70
+
71
+ def gem_version
72
+ if defined? RAILS_GEM_VERSION
73
+ RAILS_GEM_VERSION
74
+ elsif ENV.include?('RAILS_GEM_VERSION')
75
+ ENV['RAILS_GEM_VERSION']
76
+ else
77
+ parse_gem_version(read_environment_rb)
78
+ end
79
+ end
80
+
81
+ def load_rubygems
82
+ require 'rubygems'
83
+ min_version = '1.3.1'
84
+ unless rubygems_version >= min_version
85
+ $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.)
86
+ exit 1
87
+ end
88
+
89
+ rescue LoadError
90
+ $stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org)
91
+ exit 1
92
+ end
93
+
94
+ def parse_gem_version(text)
95
+ $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/
96
+ end
97
+
98
+ private
99
+ def read_environment_rb
100
+ File.read("#{RAILS_ROOT}/config/environment.rb")
101
+ end
102
+ end
103
+ end
104
+ end
105
+
106
+ # All that for this:
107
+ Rails.boot!
@@ -0,0 +1,25 @@
1
+ in_memory:
2
+ adapter: sqlite3
3
+ database: ":memory:"
4
+ verbosity: quiet
5
+
6
+ sqlite:
7
+ adapter: sqlite
8
+ dbfile: newplugin.sqlite.db
9
+
10
+ sqlite3:
11
+ adapter: sqlite3
12
+ dbfile: newplugin.sqlite3.db
13
+
14
+ postgresql:
15
+ adapter: postgresql
16
+ username: postgres
17
+ password: postgres
18
+ database: newplugin
19
+
20
+ mysql:
21
+ adapter: mysql
22
+ host: localhost
23
+ username: root
24
+ password:
25
+ database: newplugin
@@ -0,0 +1,16 @@
1
+ ENV['RAILS_ENV'] ||= 'in_memory'
2
+
3
+ require File.join(File.dirname(__FILE__), 'boot')
4
+
5
+ Rails::Initializer.run do |config|
6
+ config.cache_classes = false
7
+ config.whiny_nils = true
8
+
9
+ # test/app_root/config/environment.rb
10
+ config.load_paths << File.join(File.dirname(__FILE__), '../../../lib')
11
+
12
+ config.action_controller.session = {
13
+ :key => '_newplugin_session',
14
+ :secret => '1634aa213e0052cb68c48c1dd90e96303fa4566cf6726509d82a30fd5980c1971d2ce9017555b1d5f7a8a6ea07f1fe5e2f5f120579c10df764a46086f2afa371'
15
+ }
16
+ end
@@ -0,0 +1,4 @@
1
+ # load plugin
2
+ plugin_path = File.join(File.dirname(__FILE__), *%w(.. .. .. ..))
3
+
4
+ load File.join(plugin_path, "init.rb")
@@ -0,0 +1,4 @@
1
+ ActionController::Routing::Routes.draw do |map|
2
+ map.connect ':controller/:action/:id'
3
+ map.connect ':controller/:action/:id.:format'
4
+ end
@@ -0,0 +1,2 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/app_root/config/environment')
2
+ require 'test_help'
@@ -0,0 +1 @@
1
+ # Uninstall hook code here
@@ -0,0 +1,2 @@
1
+ Description:
2
+ Stubs out a new controller and its views.
@@ -0,0 +1,22 @@
1
+ class ControllerGenerator < RubiGen::Base
2
+
3
+ attr_reader :name,:class_name,:file_name,:actions
4
+
5
+ def initialize(runtime_args, runtime_options = {})
6
+ super
7
+ usage if args.empty?
8
+ @destination_root = File.expand_path('.')
9
+ @name = args.shift
10
+ @actions = args
11
+
12
+ @file_name = @name.pluralize.underscore
13
+ @class_name = @name.singularize.classify
14
+ end
15
+
16
+ def manifest
17
+ record do |m|
18
+ m.directory "test/app_root/app/controllers"
19
+ m.template "controller.rb","test/app_root/app/controllers/#{file_name}_controller.rb"
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,8 @@
1
+ class <%= class_name %>Controller < ApplicationController
2
+
3
+ <% for action in actions -%>
4
+ def <%= action %>
5
+ end
6
+
7
+ <% end -%>
8
+ end
@@ -0,0 +1,2 @@
1
+ Description:
2
+ Stubs out a new database migration. Pass the migration name
@@ -0,0 +1,22 @@
1
+ require 'rubygems'
2
+ require 'active_record'
3
+
4
+ class MigrationGenerator < RubiGen::Base
5
+
6
+ attr_reader :name,:class_name,:file_name
7
+
8
+ def initialize(runtime_args, runtime_options = {})
9
+ super
10
+ usage if args.empty?
11
+ @destination_root = File.expand_path('.')
12
+ @name = args.shift
13
+ @file_name = @name.pluralize.underscore
14
+ @class_name = @name.singularize.classify
15
+ end
16
+
17
+ def manifest
18
+ record do |m|
19
+ m.migration_template 'migration.rb', "test/app_root/db/migrate"
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,7 @@
1
+ class <%= class_name.underscore.camelize %> < ActiveRecord::Migration
2
+ def self.up
3
+ end
4
+
5
+ def self.down
6
+ end
7
+ end
@@ -0,0 +1,2 @@
1
+ Description:
2
+ Stubs out a new model. Pass the model name
@@ -0,0 +1,35 @@
1
+ require 'rubygems'
2
+ require 'active_record'
3
+
4
+ class ModelGenerator < RubiGen::Base
5
+ attr_reader :name,:class_name,:file_name,:class_path,:table_name,:attributes
6
+
7
+ def initialize(runtime_args, runtime_options = {})
8
+ super
9
+ usage if args.empty?
10
+ @destination_root = File.expand_path('.')
11
+ @name = args.shift
12
+ @attributes = []
13
+
14
+ args.map do |x|
15
+ @attributes << {:type => x.split(/:/)[1],:name => x.split(/:/)[0]}
16
+ end
17
+
18
+ @file_name = @name.pluralize.underscore
19
+ @class_name = @name.singularize.classify
20
+ @class_path = File.dirname(@file_name)
21
+ @table_name = file_name.gsub(/\//, '_').pluralize
22
+ end
23
+
24
+ def manifest
25
+ record do |m|
26
+ m.directory File.join("test/app_root/app/models",class_path)
27
+
28
+ m.template 'model.rb',File.join("test/app_root", 'app/models',"#{file_name}.rb")
29
+ # Migration
30
+ m.migration_template 'migration.rb', "test/app_root/db/migrate", :assigns => {
31
+ :migration_name => "Create#{class_name.pluralize.gsub(/::/, '')}"
32
+ }, :migration_file_name => "create_#{@table_name}"
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,19 @@
1
+ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2
+
3
+ <% unless attributes.empty? -%>
4
+ one:
5
+ <% for attribute in attributes -%>
6
+ <%= attribute.name %>: <%= attribute.default %>
7
+ <% end -%>
8
+
9
+ two:
10
+ <% for attribute in attributes -%>
11
+ <%= attribute.name %>: <%= attribute.default %>
12
+ <% end -%>
13
+ <% else -%>
14
+ # one:
15
+ # column: value
16
+ #
17
+ # two:
18
+ # column: value
19
+ <% end -%>
@@ -0,0 +1,13 @@
1
+ class <%= migration_name %> < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :<%= table_name %> do |t|
4
+ <% for attribute in attributes -%>
5
+ t.<%= attribute[:type] %> :<%= attribute[:name] %>
6
+ <% end -%>
7
+ end
8
+ end
9
+
10
+ def self.down
11
+ drop_table :<%= table_name %>
12
+ end
13
+ end
@@ -0,0 +1,2 @@
1
+ class <%= class_name %> < ActiveRecord::Base
2
+ end
data/lib/newplugin.rb ADDED
@@ -0,0 +1,6 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+
4
+ module Newplugin
5
+ VERSION = '0.0.1'
6
+ end
@@ -0,0 +1,29 @@
1
+ begin
2
+ require File.dirname(__FILE__) + '/test_helper'
3
+ rescue LoadError
4
+ require 'test/unit'
5
+ end
6
+ require 'fileutils'
7
+
8
+ # Must set before requiring generator libs.
9
+ TMP_ROOT = File.dirname(__FILE__) + "/tmp" unless defined?(TMP_ROOT)
10
+ PROJECT_NAME = "myproject" unless defined?(PROJECT_NAME)
11
+ app_root = File.join(TMP_ROOT, PROJECT_NAME)
12
+ if defined?(APP_ROOT)
13
+ APP_ROOT.replace(app_root)
14
+ else
15
+ APP_ROOT = app_root
16
+ end
17
+ if defined?(RAILS_ROOT)
18
+ RAILS_ROOT.replace(app_root)
19
+ else
20
+ RAILS_ROOT = app_root
21
+ end
22
+
23
+ begin
24
+ require 'rubigen'
25
+ rescue LoadError
26
+ require 'rubygems'
27
+ require 'rubigen'
28
+ end
29
+ require 'rubigen/helpers/generator_test_helper'
@@ -0,0 +1,3 @@
1
+ require 'stringio'
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../lib/newplugin'
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class TestNewplugin < Test::Unit::TestCase
4
+
5
+ def setup
6
+ end
7
+
8
+ def test_truth
9
+ assert true
10
+ end
11
+ end
metadata ADDED
@@ -0,0 +1,110 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: newplugin
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - ZhangJinzhu
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-12-02 00:00:00 +08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: hoe
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 2.3.3
24
+ version:
25
+ description: New Plugin Generator, make it dead easy to create a new plugin
26
+ email:
27
+ - wosmvp@gmail.com
28
+ executables:
29
+ - newplugin-gen
30
+ extensions: []
31
+
32
+ extra_rdoc_files:
33
+ - History.txt
34
+ - Manifest.txt
35
+ files:
36
+ - History.txt
37
+ - Manifest.txt
38
+ - README.rdoc
39
+ - Rakefile
40
+ - bin/newplugin-gen
41
+ - generators/app/USAGE
42
+ - generators/app/app_generator.rb
43
+ - generators/app/templates/MIT-LICENSE
44
+ - generators/app/templates/README
45
+ - generators/app/templates/Rakefile
46
+ - generators/app/templates/init.rb
47
+ - generators/app/templates/install.rb
48
+ - generators/app/templates/lib/module.rb
49
+ - generators/app/templates/tasks/tasks.rake
50
+ - generators/app/templates/test/app_root/app/controllers/application_controller.rb
51
+ - generators/app/templates/test/app_root/config/boot.rb
52
+ - generators/app/templates/test/app_root/config/database.yml
53
+ - generators/app/templates/test/app_root/config/environment.rb
54
+ - generators/app/templates/test/app_root/config/environments/in_memory.rb
55
+ - generators/app/templates/test/app_root/config/environments/mysql.rb
56
+ - generators/app/templates/test/app_root/config/environments/postgresql.rb
57
+ - generators/app/templates/test/app_root/config/environments/sqlite.rb
58
+ - generators/app/templates/test/app_root/config/environments/sqlite3.rb
59
+ - generators/app/templates/test/app_root/config/initializers/plugin.rb
60
+ - generators/app/templates/test/app_root/config/routes.rb
61
+ - generators/app/templates/test/test_helper.rb
62
+ - generators/app/templates/uninstall.rb
63
+ - generators/controller/USAGE
64
+ - generators/controller/controller_generator.rb
65
+ - generators/controller/templates/controller.rb
66
+ - generators/migration/USAGE
67
+ - generators/migration/migration_generator.rb
68
+ - generators/migration/templates/migration.rb
69
+ - generators/model/USAGE
70
+ - generators/model/model_generator.rb
71
+ - generators/model/templates/fixtures.yml
72
+ - generators/model/templates/migration.rb
73
+ - generators/model/templates/model.rb
74
+ - lib/newplugin.rb
75
+ - test/test_generator_helper.rb
76
+ - test/test_helper.rb
77
+ - test/test_new_plugin.rb
78
+ has_rdoc: true
79
+ homepage: http://github.com/jinzhu/newplugin
80
+ licenses: []
81
+
82
+ post_install_message:
83
+ rdoc_options:
84
+ - --main
85
+ - README.rdoc
86
+ require_paths:
87
+ - lib
88
+ required_ruby_version: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: "0"
93
+ version:
94
+ required_rubygems_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: "0"
99
+ version:
100
+ requirements: []
101
+
102
+ rubyforge_project: newplugin
103
+ rubygems_version: 1.3.5
104
+ signing_key:
105
+ specification_version: 3
106
+ summary: New Plugin Generator, make it dead easy to create a new plugin
107
+ test_files:
108
+ - test/test_helper.rb
109
+ - test/test_generator_helper.rb
110
+ - test/test_new_plugin.rb