插件生成器允许用户基于一个包含了所有必要动作的模板来生成Padrino项目。插件还能够在现有的Padrino项目中执行。插件生成器额外提供简单的DSL借助Thor使得生成项目易如反掌!
$ padrino g project my_project --template path/to/my_template.rb
该命令基于提供的模板文件来生成项目,也可以基于URL来生成,比如用一个gist:
$ padrino g project my_project --template http://gist.github.com/356156
你也可以从官方模板仓库直接执行模板文件:
$ padrino g project my_project --template sampleblog
也可以将模板当成插件应用到Padrino应用:
$ cd path/to/existing/padrino/app $ padrino g plugin path/to/my_plugin.rb
还可以从官方插件仓库直接执行插件:
$ cd path/to/existing/padrino/app $ padrino g plugin hoptoad
通过下面这条命令可以获得可用插件列表:
$ padrino g plugin --list
基本的模板(插件)文件看起来一般是这样的节奏:
# my_template.rb project :test => :shoulda, :orm => :activerecord generate :model, "post title:string body:text" generate :controller, "posts get:index get:new post:new" generate :migration, "AddEmailToUser email:string" require_dependencies 'nokogiri' git :init git :add, "." git :commit, "initial commit" inject_into_file "app/models/post.rb","#Hello", :after => "end\n" rake "ar:create ar:migrate" initializer :test, "# Example" app :testapp do generate :controller, "users get:index" end git :add, "." git :commit, "second commit"
记着哦,模板文件都是口味纯正的Ruby代码文件,并且可以访问所有可用的Thor动作。
控制器生成器 选项 默认值 参数 介绍app nil -n 指定应用
root . -r 指定根目录路径
destroy false -d 删除所有生成的文件
Padrino为你的应用提供了用于快速生成控制器的生成器。需要注意的是,控制器测试是专门针对由生成应用时选择的测试框架来生成的。
特别需要注意的是,控制器生成器是根据Padrino约定来开展工作的。
还有比使用控制器生成器更简单的事吗:
$ padrino g controller Admin
如果你想为某个特定的子应用创建控制器:
$ padrino g controller Admin -a my_sub_app
也可以为你的控制器添加一个你想要的动作:
$ padrino g controller Admin get:index get:new post:create
控制器生成器将会在app/controllers/admin.rb构建控制器文件并根据生成应用时选择测试框架在test/controllers/admin_controller_test.rb构建控制器测试文件,还会创建一个默认的路由来映射控制器名和路由名。举个栗子:
$ padrino g controller User get:index
会生成一条URL路由来将:index映射到/user/index。
假如你把destroy选项的值设置为true,就可以销毁你创建的控制器。destroy选项的默认值是false——这不废话嘛~
$ padrino g controller User -d
该命令删除所有创建的控制器文件。
模块生成器 选项 默认值 参数 介绍root . -r 定义根目录路径
skip_migration false -s 不生成数据迁移
destroy false -d 删除所有生成的文件
Padrino提供了用以在应用中快速生成模块的生成器。需要注意的是,模块和迁移是根据生成应用时所选的对象关系映射组件和测试框架来专门生成的。
特别需要注意的是,模块生成器也是根据Padrino约定来开展工作的。如果在现有Padrino应用中使用非Padrino生成的模块生成器,下场很难设想哦!
还有比使用模块生成器更简单的事情吗:
$ padrino g model User
你也可以在用户模块里这是特定的字段:
$ padrino g model User name:string age:integer email:string
模块生成器会根据你的对象关系映射组件在应用中生成一些文件。
一般会生成下面这些文件:
模块定义文件 [app/models/user.rb]
迁移声明 [db/migrate/xxx_create_users.rb]
模块单元测试文件 [test/models/user_test.rb]
只要学会了如何使用模块生成器,你想怎么生、想生多少,谁都拦不住!
也可以用destroy选项销毁你生成的模块,该参数默认值为false——再废话,拖出去斩了!
$ padrino g model User -d
该命令将删除所有模块文件。【楼主注:准确地说,应该是“删除所有指定的模块文件”】