Skip to content

Instantly share code, notes, and snippets.

@AhmedNadar
Forked from poc7667/gemfile_template.rb
Created December 26, 2016 21:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AhmedNadar/f04849c4450993bfa1a1405c40673127 to your computer and use it in GitHub Desktop.
Save AhmedNadar/f04849c4450993bfa1a1405c40673127 to your computer and use it in GitHub Desktop.
gemfile gems cheat sheet tools
#How to Use rails _4.0.0_ new $1 -m app_tmpl.rb -T --skip-bundle
# rails (4.0.0, 3.2.13, 3.2.12)
require 'ap'
require 'awesome_print'
app_name=@app_name
remove_file "README.rdoc"
create_file "README.md", "TODO"
create_file ".ruby-version"
run "echo 2.1.2 > .ruby-version"
#install gemfile
# Gems used only for assets and not required
# # in production environments by default.
# gem 'bootstrap-sass', '~> 3.1.1', group: "assets"
gem 'bootstrap-sass', '~> 3.1.1'
gem 'compass-rails'
gem "therubyracer"
gem 'hirb-unicode' # auto complete in console
gem 'devise'
gem "devise_ldap_authenticatable"
gem 'rails_admin'
gem 'will_paginate', '~> 3.0'
gem 'rspec'
gem 'awesome_print', :require => 'ap'
gem 'tinymce-rails'
gem 'haml-rails'
gem 'taps'
# Segment.io as an analytics solution (https://github.com/segmentio/analytics-ruby)
gem "analytics-ruby"
# For encrypted password
gem "bcrypt-ruby"
# Useful SASS mixins (http://bourbon.io/)
gem "bourbon"
# For authorization (https://github.com/ryanb/cancancan)
gem "cancancan"
#For using the Sunspot search
gem 'sunspot_rails'
gem 'sunspot_solr'
gem "squeel", "~> 1.2.1" # Last officially released gem
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# integrate ember-rails
gem 'ember-rails'
gem 'ember-source' # or the version you need
gem 'emblem-rails'
# Use jquery as the JavaScript library
gem 'jquery-rails'
gem_group :development do
gem "spring"
gem "rspec-rails"
gem "guard-rspec"
# Rspec for tests (https://github.com/rspec/rspec-rails)
gem "rspec-rails"
# Guard for automatically launching your specs when files are modified. (https://github.com/guard/guard-rspec)
gem "guard-rspec"
#For debugging
gem 'pry'
gem 'pry-rails'
gem 'pry-doc'
gem 'pry-rescue'
gem 'pry-stack_explorer'
# gem 'pry-nav'
if RUBY_VERSION >= '2.0.0'
gem 'pry-byebug'
else
gem 'pry-debugger'
gem 'pry-remote'
end
gem 'quiet_assets'
gem 'guard-livereload', require: false
gem "faker"
# profile
gem 'rack-mini-profiler'
end
gem "paperclip", "~> 4.1"
# It’s much faster and it’s multithreaded Server
#gem 'puma'
#resque
gem "resque", "~> 2.0.0.pre.1", github: "resque/resque"
#gem "resque", '~> 1.25.1'
gem 'resque_mailer', '~> 2.2.6'
gem 'resque-scheduler'
gem 'resque-status'
#Navigation
#https://github.com/andi/simple-navigation/wiki/Installation
# gem "simple-navigation"
#https://github.com/pdf/simple-navigation-bootstrap
# gem 'simple-navigation-bootstrap'
#install simple form
#http://railscasts.com/episodes/234-simple-form-revised?view=asciicast
#run 'rails g simple_form:install'
#setting template
$layout_folder="layout_template"
def tmpl_name(f_name)
return nil if f_name.length < 5
to_file="../#{$layout_folder}/#{f_name}"
return "#{to_file} app/helpers/#{f_name}" if f_name.include? "helper.rb"
return "#{to_file} app/views/layouts/#{f_name}" if f_name.include? "html.erb"
return "#{to_file} app/assets/stylesheets/#{f_name}" if f_name.include? "css.scss"
end
#setting template
#get all template files
layout_folder_files = `ls ../#{$layout_folder}`
layout_folder_files.split().each do |f|
ap( "cp #{tmpl_name(f)}")
run 'cp '+ tmpl_name(f)
end
def dest_dir(fname)
dir=fname.split('.')[0..-3].join('/')
f=fname.split('.')[-2..3].join('.')
return dir+'/'+f
end
#CanCan
$custom_files_folder="../custom_files"
lists = `ls #{$custom_files_folder}`
ap(lists)
lists.split().each{|f|
from_file = "#{$custom_files_folder}/#{f}"
ap "cp #{from_file} #{dest_dir(f)}"
run "cp #{from_file} #{dest_dir(f)}"
}
# for application.yml refer to https://github.com/railscasts/085-yaml-configuration-revised/blob/master/blog-after/config/application.rb
gsub_file 'config/application.rb', /if defined\?\(Bundler\)/ do
<<-RUBY
#setting load secret variables
config = YAML.load(File.read(File.expand_path('../application.yml', __FILE__)))
config.merge! config.fetch(Rails.env, {})
config.each do |key, value|
ENV[key] = value unless value.kind_of? Hash
end
if defined?(Bundler)
RUBY
end
#custom
#run 'rails g scaffold User name:text description:text'
#devise install
#https://github.com/cschiewek/devise_ldap_authenticatable
if yes?("Install devise and generat views?")
run 'rails g devise:install'
run 'rails g devise user'
run 'rails g devise:views'
end
#finish
rake "db:migrate"
rake "routes"
#github commit
#git :init
run "y|git flow init"
run "cp ~/common_lib/rails/.gitignore ./"
git add: "."
git commit: %Q{ -m 'Initial commit' }

More fast Rails web server

 

TODO list

  • better_errors

  • binding_of_caller

Developer tools

  • xray-rails 能夠看透是哪個 view 在消耗妳的資源

  • rack-dev-mark 能夠顯示目前是在 development 狀態,暫時不知道好處在哪裡。

  • rack-mini-profiler 可以做 profile 但是可能會嚴重拖慢速度

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment