英文版出处:http://www.padrinorb.com/guides/generators

Padrino提供了用于快速创建应用的生成器,其优势在于构建推荐的Padrino应用结构、自动生成罗列了所有启动依赖项的Gemfile并提供帮助菜鸟尽快上手的指南。

生成器一个重要的特点就是它们被从头建立来支持你的Padrino应用中涉及到的大量工具、类库和Gems。

也就是说,Padrino生成器并不限制你使用任何数据库、对象关系映射、测试框架、模板引擎或JavaScript库。事实上,在生成应用的时候你就可以告诉Padrino你想用哪些组件。

项目生成器

项目生成器的使用方式相当简单:

$ padrino g project <the_app_name> </path/to/create/app> --<component-name> <value>

而生成基本应用的最简单的命令莫过于:

$ padrino g project demo_project

该命令在当前目录的demo_project文件夹下创建一个继承自Padrino::Application的Padrino应用,该应用已经为您配置好了默认组件。

如果你有特殊需求,则可以按如下设置:

$ padrino g project demo_project -t rspec -e haml -m rr -s jquery -d datamapper -c sass

你也可以指定生成器跳过某个特定的组件(或者采用你自己的):

$ padrino g project demo_project --test none --renderer none

你还可以用 --app 参数为你的核心应用设置别名:

$ padrino g project demo_project --app alternate_app_name # alias -n

新建应用时,生成器用bundler包管理程序来处理依赖程序,当你添加了 --run_bundler参数,生成器会自动执行必要的bundler命令:

$ padrino g project demo_project --run_bundler # alias -b

如果你想手动搞定,那就在生成的应用根目录里打开终端,执行bundle install命令。

基本项目里面有很多关于如何使用项目生成器的栗子,欢迎来摘哦!

生成器框架是可扩展的,用户可以很轻易地为其添加组件和工具。

如果你对此感兴趣,可以在我们的项目上建立分支,阅读lin/generators/project.rb里的代码,并在lib/generators/components里的相关文件里创建指令。我们非常乐意接受第三方组件类型的推送请求(协助维护也求之不得)。

项目生成器的一些有效配置选项:

选项

默认值

参数

介绍

bundle false -b 安装bundler依赖项
root . -r 项目根目录路径
dev false none 从本地git签出使用边缘版本
app nil -n 指定与项目名不同的应用名
tiny false -i 生成微型项目骨架
adapter sqlite -a 指定对象关系映射数据库适配器

有效组件及其默认参数设置如下:

选项

默认值

参数

介绍

orm none -d mongoid, activerecord, datamapper, couchrest, mongomatic, ohm, ripple, sequel
test none -t bacon, shoulda, cucumber, testspec, riot, rspec, minitest
script none -s prototype, rightjs, jquery, mootools, extcore, dojo
renderer haml -e erb, haml, slim, liquid
stylesheet none -c sass, less, scss, compass
mock none -m rr, mocha

注意:在使用生成器时,项目名、模块名和控制器名不要重名。比如,不要将你的应用命名为Posts,同时又将你的控制器或者子应用也命名为Posts。

一堆栗子

创建与项目不同名的应用:

$ padrino g my_project -n blog

这将在my_project/路径下生成项目,并且应用会命名为Blog

生成带有mongoid的项目,并自动运行bundler:

$ padrino g project your_project -d mongoid -b

生成带有riot测试和rr模拟(mocking)的项目:

$ padrino g project your_project -t riot -m rr

生成带有swquel和mysql的项目:

$ padrino g project your_project -d sequel -a mysql

生成微型项目骨架:

$ padrino g project your_project --tiny

为项目选择根目录路径:

$ padrino g project your_project -r /usr/local/padrino

该指令将在/usr/local/padrino/your_project/下创建新的Padrino项目。

从克隆的git仓库使用Padrino:

$ padrino g project your_project [--dev] # Use padrino from a git checkout

如果你想了解更多关于搭建开发环境的细节,欢迎访问The Bleeding Edge!

插件生成器

插件生成器允许用户基于一个包含了所有必要动作的模板来生成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 dogenerate :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

该命令将删除所有模块文件。【楼主注:准确地说,应该是“删除所有指定的模块文件”】

迁移生成器

选项

默认值

参数

介绍

root . -r 指定根目录路径
destroy false -d 删除所有生成的文件

Padrino提供了可快速修改和操作数据库模式(Schema)的生成器。

迁移根据创建应用时所选择的对象关系映射来生成。

需要特别注意的是(呃,又来了),迁移生成器业主要是根据Padrino约定来开展工作。如果你在Padrino应用中使用非Padrino迁移生成器,后果自负哦!

还有比使用迁移生成器更简单的事情吗:

$ padrino g migration AddFieldsToUsers
$ padrino g migration RemoveFieldsFromUsers

还可以往迁移文件中添加特定的列:

$ padrino g migration AddFieldsToUsers last_login:datetime crypted_password:string
$ padrino g migration RemoveFieldsFromUsers password:string ip_address:string

迁移生成器根据对象关系映射组件在db/migrate/xxx_add_fields_to_users.rb创建迁移文件,并将命令中指定的列包含进去。

通过destroy选项可以删除迁移文件。该参数默认值为false——又废话,无语了!

$ padrino g migration AddFieldsToUsers -d

该命令将删除生成的迁移文件。

邮件发送器生成器

选项

默认值

参数

介绍

app nil -n 指定应用
root . -r 指定根目录路径
destroy false -d 删除所有生成的文件

Parino提供可快速创建新邮件发送器的生成器。

非常值得注意的是,邮件发送器也是根据Padrino约定来开展工作的。

还有比使用邮件发送器生成器更简单的事情吗:

$ padrino g mailer UserNotifier

如果你想在子应用中创建邮件发送器:

$ padrino g mailer UserNotifier -a my_sub_app

还可以为邮件发送器添加特定的动作:

$ padrino g mailer UserNotifier confirm_account welcome inactive_account

邮件发送器生成器会在app/mailers/user_notifier.rb中构建邮件发送器。

要删除所有邮件发送器文件,快用destroy选项,默认值不说了。

$ padrino g mailer UserNotifier -d

该命令将删除创建的邮件发送器文件。

子应用生成器

选项

默认值

参数

介绍

tiny false -i 生成微型应用骨架
root . -r 定义根目录路径
destroy false -d 删除所有生成的文件

楼主:前面多次提到“子应用”,借问子应用何处有,牧童遥指生成器。

不同于其它土鳖Ruby框架,Padrino主要被设计用来同时挂在多个应用。

首先,你得创建一个项目:

$ padrino g project demo_project
$ cd demo_project

进入demo_project目录并创建子应用:

$ padrino g app one
$ padrino g app two

默认情况下,这些子应用被挂载在:

  • /one
  • /two

但是你也可以通过编辑config/apps.rb来做一些改动。

然后创建控制器:

your_project$ padrino g controller base --app foo # 为Foo子应用创建控制器
your_project$ padrino g controller base           # 为主应用创建控制器
your_project$ padrino g controller base --app bar # 为Bar子应用创建控制器

或者邮件发送器:

your_project$ padrino g mailer registration --app foo  # 为Foo子应用创建邮件发送器
your_project$ padrino g mailer registration            # 为主应用创建邮件发送器
your_project$ padrino g mailer registration --app bar  # 为Bar子应用创建邮件发送器 

微型骨架生成器

项目生成器和子应用生成器都用来生成更小的项目骨架。相比于默认骨架,“微型”选项可以移除掉控制器、帮助程序和邮件发送器需要的文件夹,并且在其位置生成controllers.rb、helpers.rb和mailers.rb文件。

使用微型骨架生成器来创建项目:

$ padrino g project tiny_app -d mongoid --tiny

或者在已有的项目中用微型骨架生成器创建子应用:

my_app$ padrino g app tiny_app --tiny

管理生成器

选项

默认值

参数

介绍

name nil -a 指定管理应用的名称
root . -r 指定根目录路径
theme default none 生成带主题的管理应用
skip_migration false -s 不生成迁移
destroy false -d 删除所有生成的文件

Padrino附带了一个内建的管理面板,还有比生成管理应用更简单的事情吗:

$ padrino g admin

可以在生成管理应用的时候就给它指定主题:

$ padrino g admin --theme blue

可用的主题有:amrobecbec-greenbluedefaultdjime-ceruleankathleeneoliveorangereidb-greenishrubywarehouse

这将生成管理应用并将其挂载在/admin,如果你想更加深入地了解管理应用,欢迎阅读《管理指南》。

转载于:https://www.cnblogs.com/Autumoon/p/PadrinoGeneratorsGuides.html

Padrino 生成器指南相关推荐

  1. ES5 to ESNext —  自 2015 以来 JavaScript 新增的所有新特性

    type: FrontEnd title: ES5 to ESNext - here's every feature added to JavaScript since 2015 link: medi ...

  2. U3D中各类组建的翻译

     Refer to the information on these pages for details on working in-depth with various aspects of U ...

  3. Unity3D组件参考手册

    Refer to the information on these pages for details on working in-depth with various aspects of Unit ...

  4. OpenAI的GPT-2:用Python构建世界上最先进的文本生成器的简单指南

    介绍 "The world's best economies are directly linked to a culture of encouragement and positive f ...

  5. 人人都能看懂的「迭代器、生成器」入门指南!

    大家好. 今天我们将讨论能在很多教程中看到,但又常常搞的头晕转向的迭代器.生成器,以及让新手经常困惑的yield. 事实上,和装饰器一样,这三个概念也是绑在一起的,例如你想知道 「什么是yield」, ...

  6. 可视化报告生成器FastReport VCL创建条形码教程指南

    报表生成器FastReport VCL是用于在软件中集成商务智能的现代解决方案.它提供了可视化模板设计器,可以访问最受欢迎的数据源,报告引擎,预览,将过滤器导出为30多种格式,并可以部署到云,Web, ...

  7. 动态瑜伽 静态瑜伽 初学者_静态网站生成器:初学者指南

    动态瑜伽 静态瑜伽 初学者 Let's say your next project is going to be a simple HTML website for a resumé, marketi ...

  8. 〖ChatGPT实践指南 - 零基础扫盲篇⑤〗- OpenAI API 演示 Demo 之宠物名字生成器

    帮助大家学习使用OpenAI的各类API开发应用 ,学习多个实站项目. 推荐他人订阅可获取扣除平台费用后的35%收益,文末有名片! 说明:该文属于 ChatGPT实践指南白宝书 专栏,购买任意白宝书体 ...

  9. 设计师必备特效生成器合集 2022背景快速制作指南

    怎么快速地制作片头?今天就来给大家推荐10款设计师必备的特效生成器,通过调整其中的参数就能够生成自己想要的效果,下面就来给大家介绍一波这些特效生成器.以下工具生成的图像都是免费可商用,请放心食用. 这 ...

最新文章

  1. 2022-2028年中国数码摄像机市场投资分析及前景预测报告
  2. NASA科学家联名求撤稿:金星有生命迹象是大乌龙,12阶多项式拟合不靠谱
  3. linux 系统邮件 查看清空
  4. 2016.3.2(String 类)
  5. 6月统计|.NET薪资一旦高起来,岂是其他语言能比的!
  6. [html] html5哪些标签可以优化SEO?
  7. 苹果叒要开发布会了!多款新机曝光,Intel不淡定了
  8. 计算机桌面程序经常打不开了,电脑开机后桌面软件打不开怎么办
  9. React与前端:React家族介绍
  10. centos7.3 防火墙设置
  11. C# 子类实例化基类 基类使用不了子类的方法_C#委托事件机制:事件的完整声明,触发和事件的本质(6)...
  12. Eclipse快捷键与使用技巧总结
  13. linux/windows查询文件特定内容并写入目标文件
  14. 【流放之路-召唤愤怒狂灵攻略】
  15. 未来10年互联网的十大发展趋势
  16. mybatis 父子级树形结构查询
  17. 论latex插入图片最好的方法!
  18. Vim、Xshell、远程终端莫名卡死的原因
  19. 国外常用的免费DNS域名解析服务器(转)
  20. BGP路由协议多线的优势

热门文章

  1. helpdesk2 foxmail和outlook互导问题
  2. butter滤波器是iir吗_如何快速设计应用一个IIR滤波器
  3. 同一工作组无法访问_工作组、AD、域、DC...
  4. 两个系统整合一起怎么说_结婚后该不该把父母接过来一起生活? 看看过来人是怎么说的...
  5. python 与或非_“2020”假看完本文若不能让你学通“Python”,我将永远退出IT界!...
  6. isecure center 综合安防管理平台_企业综合安全管理平台
  7. php 数据库 自增值,Mysql应用MySql数据库自动递增值问题
  8. Netty粘包拆包问题说明、演示拆包粘包情况代码以及解决
  9. Spring高级之注解@DependsOn详解(超详细)
  10. 核函数与径向基函数 (Radial Basis Function 简称 RBF)详解