Created
August 21, 2013 03:53
-
-
Save songjiayang/6290168 to your computer and use it in GitHub Desktop.
rails template..
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 更换源 | |
comment_lines "Gemfile", /source .http.*/ | |
add_source "http://ruby.taobao.org" | |
# HTML模板 | |
gem 'slim' | |
# 单点登录 | |
gem 'rubycas-client' | |
# 权限管理 | |
gem 'cancan' | |
# 系统设置 | |
gem 'settingslogic' | |
# 插件系统 | |
gem 'cells' | |
# 按不同的操作系统提供通知插件 | |
inject_into_file 'Gemfile', after: '"http://ruby.taobao.org"\n' do <<-'RUBY' | |
require 'rbconfig' | |
HOST_OS = RbConfig::CONFIG['host_os'] | |
case HOST_OS | |
when /darwin/i | |
gem 'rb-fsevent', :group => :development | |
gem 'growl', :group => :development | |
when /linux/i | |
gem 'libnotify', :group => :development | |
gem 'rb-inotify', :group => :development | |
when /mswin|windows/i | |
gem 'rb-fchange', :group => :development | |
gem 'win32console', :group => :development | |
gem 'rb-notifu', :group => :development | |
end | |
RUBY | |
end | |
# 集成测试 | |
gem_group :test do | |
gem 'turn', :require => false | |
gem 'rspec-rails' | |
gem 'spork' | |
gem 'database_cleaner' | |
gem 'factory_girl_rails', :require => false | |
gem "capybara" | |
gem "launchy" | |
gem 'guard-spork' | |
gem 'guard-rspec' | |
gem 'guard-livereload' | |
gem 'guard-bundler' | |
gem 'simplecov', :require => false | |
end | |
# 删除默认的主页 | |
remove_file 'public/index.html' | |
# 采用slim做为解释器,删除默认布局 | |
remove_file 'app/views/layouts/application.html.erb' | |
# 统一角色管理 | |
if yes?("Are you require 'zhiyi-unirole'(y/n)?") | |
gem('unirole', git: '[email protected]:bazaar/xiegang/zhiyi-unirole.git') | |
run('bundle install') | |
generate('unirole:install') | |
end | |
# 工作流 | |
if yes?("Are you require 'ruote' workflow(y/n)?") | |
gem('ruote') | |
gem('ruote-mon') | |
end | |
# 更新包 | |
run('bundle install') | |
# 生成数据库配置文件 | |
generate('mongoid:config') | |
# 生成权限配置文件,默认登录用户具备全部权限 | |
generate('cancan:ability') | |
inject_into_file "app/models/ability.rb", after: "def initialize(user)\n" do <<-'RUBY' | |
unless user.new_record? | |
can :manage, :all | |
else | |
cannot :manage, :all | |
end | |
RUBY | |
end | |
# 配置单点登录 | |
inject_into_file "config/environment.rb", after: "require File.expand_path('../application', __FILE__)\n" do <<-'RUBY' | |
CASClient::Frameworks::Rails::Filter.configure( | |
:cas_base_url => "http://sso.zhiyisoft.com/", | |
:username_session_key => :login, | |
:extra_attributes_session_key => :login_extra_attributes, | |
:enable_single_sign_out => true, | |
:authenticate_on_every_request => false | |
) | |
RUBY | |
end | |
# 增加Home控制器 | |
create_file "app/controllers/home_controller.rb" do <<-'RUBY' | |
class HomeController < ApplicationController | |
def index | |
end | |
end | |
RUBY | |
end | |
create_file "app/views/home/index.slim" do <<-'RUBY' | |
h1 Todo: 请修改这个页面! | |
RUBY | |
end | |
# 增加根路由 | |
route "root :to => 'home#index'" | |
route "match '/logout' => 'application#logout'" | |
# 增加控制器方法 | |
inject_into_file "app/controllers/application_controller.rb", after: "protect_from_forgery\n" do <<-'RUBY' | |
before_filter CASClient::Frameworks::Rails::Filter | |
def current_user | |
user ||= Unirole::User.where(login: session[:login]).first if session[:login] | |
user ||= Unirole::User.new | |
end | |
def logout | |
CASClient::Frameworks::Rails::Filter.logout(self, root_url) | |
end | |
rescue_from CanCan::AccessDenied do |exception| | |
redirect_to main_app.root_path, alert: exception.message | |
end | |
RUBY | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment