Created
June 1, 2016 12:13
-
-
Save kamal-github/19f8b05ed88c5caea5e81b676edd3b24 to your computer and use it in GitHub Desktop.
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
snippet art | |
assert_redirected_to ${1:action}: '${2:index}' | |
snippet artnp | |
assert_redirected_to ${1:parent}_${2:child}_path(${3:@$1}, ${0:@$2}) | |
snippet artnpp | |
assert_redirected_to ${1:parent}_${2:child}_path(${0:@$1}) | |
snippet artp | |
assert_redirected_to ${1:model}_path(${0:@$1}) | |
snippet artpp | |
assert_redirected_to ${0:model}s_path | |
snippet asd | |
assert_difference '${1:Model}.${2:count}', ${3:1} do | |
${0} | |
end | |
snippet asnd | |
assert_no_difference '${1:Model}.${2:count}' do | |
${0} | |
end | |
snippet asre | |
assert_response :${1:success}, @response.body | |
snippet asrj | |
assert_rjs :${1:replace}, '${0:dom id}' | |
snippet ass assert_select(..) | |
assert_select '${1:path}', ${2:text}: '${3:inner_html}' ${4:do} | |
${0} | |
end | |
snippet ba | |
before_action :${0:method} | |
snippet bf | |
before_filter :${0:method} | |
snippet bt | |
belongs_to :${0:association} | |
snippet btp | |
belongs_to :${1:association}, polymorphic: true | |
snippet crw | |
cattr_accessor :${0:attr_names} | |
snippet defcreate | |
def create | |
@${1:model_class_name} = ${2:ModelClassName}.new($1_params) | |
respond_to do |format| | |
if @$1.save | |
flash[:notice] = '$2 was successfully created.' | |
format.html { redirect_to(@$1) } | |
format.xml { render xml: @$1, status: :created, location: @$1 } | |
else | |
format.html { render action: 'new' } | |
format.xml { render xml: @$1.errors, status: :unprocessable_entity } | |
end | |
end | |
end | |
snippet defdestroy | |
def destroy | |
@${1:model_class_name} = ${2:ModelClassName}.find(params[:id]) | |
@$1.destroy | |
respond_to do |format| | |
format.html { redirect_to($1s_url) } | |
format.xml { head :ok } | |
end | |
end | |
snippet defedit | |
def edit | |
@${1:model_class_name} = ${0:ModelClassName}.find(params[:id]) | |
end | |
snippet defindex | |
def index | |
@${1:model_class_name} = ${2:ModelClassName}.all | |
respond_to do |format| | |
format.html # index.html.erb | |
format.xml { render xml: @$1s } | |
end | |
end | |
snippet defnew | |
def new | |
@${1:model_class_name} = ${2:ModelClassName}.new | |
respond_to do |format| | |
format.html # new.html.erb | |
format.xml { render xml: @$1 } | |
end | |
end | |
snippet defshow | |
def show | |
@${1:model_class_name} = ${2:ModelClassName}.find(params[:id]) | |
respond_to do |format| | |
format.html # show.html.erb | |
format.xml { render xml: @$1 } | |
end | |
end | |
snippet defupdate | |
def update | |
@${1:model_class_name} = ${2:ModelClassName}.find(params[:id]) | |
respond_to do |format| | |
if @$1.update($1_params) | |
flash[:notice] = '$2 was successfully updated.' | |
format.html { redirect_to(@$1) } | |
format.xml { head :ok } | |
else | |
format.html { render action: 'edit' } | |
format.xml { render xml: @$1.errors, status: :unprocessable_entity } | |
end | |
end | |
end | |
snippet defparams | |
def ${1:model_class_name}_params | |
params.require(:$1).permit() | |
end | |
snippet dele delegate .. to | |
delegate :${1:methods}, to: :${0:object} | |
snippet dele delegate .. to .. prefix .. allow_nil | |
delegate :${1:methods}, to: :${2:object}, prefix: :${3:prefix}, allow_nil: ${0:allow_nil} | |
snippet amc | |
alias_method_chain :${1:method_name}, :${0:feature} | |
snippet flash | |
flash[:${1:notice}] = '${0}' | |
snippet habtm | |
has_and_belongs_to_many :${1:object}, join_table: '${2:table_name}', foreign_key: '${3}_id' | |
snippet hm | |
has_many :${0:object} | |
snippet hmd | |
has_many :${1:other}s, class_name: '${2:$1}', foreign_key: '${3:$1}_id', dependent: :destroy | |
snippet hmt | |
has_many :${1:object}, through: :${0:object} | |
snippet ho | |
has_one :${0:object} | |
snippet hod | |
has_one :${1:object}, dependent: :${0:destroy} | |
snippet i18 | |
I18n.t('${1:type.key}') | |
snippet ist | |
<%= image_submit_tag('${1:agree.png}', id: '${2:id}'${0}) %> | |
snippet log | |
Rails.logger.${1:debug} ${0} | |
snippet log2 | |
RAILS_DEFAULT_LOGGER.${1:debug} ${0} | |
snippet logd | |
logger.debug { '${1:message}' } | |
snippet loge | |
logger.error { '${1:message}' } | |
snippet logf | |
logger.fatal { '${1:message}' } | |
snippet logi | |
logger.info { '${1:message}' } | |
snippet logw | |
logger.warn { '${1:message}' } | |
snippet mapc | |
${1:map}.${2:connect} '${0:controller/:action/:id}' | |
snippet mapca | |
${1:map}.catch_all '*${2:anything}', controller: '${3:default}', action: '${4:error}' | |
snippet mapr | |
${1:map}.resource :${0:resource} | |
snippet maprs | |
${1:map}.resources :${0:resource} | |
snippet mapwo | |
${1:map}.with_options ${2:controller}: '${3:thing}' do |$3| | |
${0} | |
end | |
############################### | |
# model callback snippets # | |
############################### | |
# before callback | |
snippet mbv | |
before_validation :${0:method} | |
snippet mbc | |
before_create :${0:method} | |
snippet mbu | |
before_update :${0:method} | |
snippet mbs | |
before_save :${0:method} | |
snippet mbd | |
before_destroy :${0:method} | |
# after callback | |
snippet mav | |
after_validation :${0:method} | |
snippet maf | |
after_find :${0:method} | |
snippet mat | |
after_touch :${0:method} | |
snippet macr | |
after_create :${0:method} | |
snippet mau | |
after_update :${0:method} | |
snippet mas | |
after_save :${0:method} | |
snippet mad | |
after_destroy :${0:method} | |
# around callback | |
snippet marc | |
around_create :${0:method} | |
snippet maru | |
around_update :${0:method} | |
snippet mars | |
around_save :${0:method} | |
snippet mard | |
around_destroy :${0:method} | |
snippet mcht | |
change_table :${1:table_name} do |t| | |
${0} | |
end | |
snippet mp | |
map(&:${0:id}) | |
snippet mrw | |
mattr_accessor :${0:attr_names} | |
snippet oa | |
order('${0:field}') | |
snippet od | |
order('${0:field} DESC') | |
snippet pa | |
params[:${1:id}] | |
snippet ra | |
render action: '${0:action}' | |
snippet ral | |
render action: '${1:action}', layout: '${0:layoutname}' | |
snippet rest | |
respond_to do |format| | |
format.${1:html} { ${0} } | |
end | |
snippet rf | |
render file: '${0:filepath}' | |
snippet rfu | |
render file: '${1:filepath}', use_full_path: ${0:false} | |
snippet ri | |
render inline: "${0:<%= 'hello' %>}" | |
snippet ril | |
render inline: "${1:<%= 'hello' %>}", locals: { ${2:name}: '${3:value}'${0} } | |
snippet rit | |
render inline: "${1:<%= 'hello' %>}", type: ${0::rxml} | |
snippet rjson | |
render json: '${0:text to render}' | |
snippet rl | |
render layout: '${0:layoutname}' | |
snippet rn | |
render nothing: ${0:true} | |
snippet rns | |
render nothing: ${1:true}, status: ${0:401} | |
snippet rp | |
render partial: '${0:item}' | |
snippet rpc | |
render partial: '${1:item}', collection: ${0:@$1s} | |
snippet rpl | |
render partial: '${1:item}', locals: { ${2:$1}: ${0:@$1} } | |
snippet rpo | |
render partial: '${1:item}', object: ${0:@$1} | |
snippet rps | |
render partial: '${1:item}', status: ${0:500} | |
snippet rt | |
render text: '${0:text to render}' | |
snippet rtl | |
render text: '${1:text to render}', layout: '${0:layoutname}' | |
snippet rtlt | |
render text: '${1:text to render}', layout: ${0:true} | |
snippet rts | |
render text: '${1:text to render}', status: ${0:401} | |
snippet ru | |
render :update do |${1:page}| | |
$1.${0} | |
end | |
snippet rxml | |
render xml: '${0:text to render}' | |
snippet sc | |
scope :${1:name}, -> { where(${2:field}: ${0:value}) } | |
snippet sl | |
scope :${1:name}, lambda do |${2:value}| | |
where('${3:field = ?}', ${0:value}) | |
end | |
snippet sha1 | |
Digest::SHA1.hexdigest(${0:string}) | |
snippet sweeper | |
class ${1:ModelClassName}Sweeper < ActionController::Caching::Sweeper | |
observe $1 | |
def after_save(${0:model_class_name}) | |
expire_cache($2) | |
end | |
def after_destroy($2) | |
expire_cache($2) | |
end | |
def expire_cache($2) | |
expire_page | |
end | |
end | |
snippet va validates_associated | |
validates_associated :${0:attribute} | |
snippet va validates .., acceptance: true | |
validates :${0:terms}, acceptance: true | |
snippet vc | |
validates :${0:attribute}, confirmation: true | |
snippet ve | |
validates :${1:attribute}, exclusion: { in: ${0:%w( mov avi )} } | |
snippet vf | |
validates :${1:attribute}, format: { with: /${0:regex}/ } | |
snippet vi | |
validates :${1:attribute}, inclusion: { in: %w(${0: mov avi }) } | |
snippet vl | |
validates :${1:attribute}, length: { in: ${2:3}..${0:20} } | |
snippet vn | |
validates :${0:attribute}, numericality: true | |
snippet vp | |
validates :${0:attribute}, presence: true | |
snippet vu | |
validates :${0:attribute}, uniqueness: true | |
snippet format | |
format.${1:js|xml|html} { ${0} } | |
snippet wc | |
where(${1:'conditions'}${0:, bind_var}) | |
snippet wf | |
where(${1:field}: ${0:value}) | |
snippet xdelete | |
xhr :delete, :${1:destroy}, id: ${2:1} | |
snippet xget | |
xhr :get, :${1:show}, id: ${2:1} | |
snippet xpost | |
xhr :post, :${1:create}, ${2:object}: ${3:object} | |
snippet xput | |
xhr :put, :${1:update}, id: ${2:1}, ${3:object}: ${4:object} | |
snippet test | |
test 'should ${1:do something}' do | |
${0} | |
end | |
########################### | |
# migrations snippets # | |
########################### | |
snippet mac | |
add_column :${1:table_name}, :${2:column_name}, :${0:data_type} | |
snippet mai | |
add_index :${1:table_name}, :${0:column_name} | |
snippet mrc | |
remove_column :${1:table_name}, :${0:column_name} | |
snippet mrnc | |
rename_column :${1:table_name}, :${2:old_column_name}, :${0:new_column_name} | |
snippet mcc | |
change_column :${1:table}, :${2:column}, :${0:type} | |
snippet mnc | |
t.${1:string} :${2:title}${3:, null: false} | |
snippet mct | |
create_table :${1:table_name} do |t| | |
${0} | |
end | |
snippet migration class .. < ActiveRecord::Migration .. def up .. def down .. end | |
class `substitute( substitute(vim_snippets#Filename(), '^\d\+_', '',''), '\(_\|^\)\(.\)', '\u\2', 'g')` < ActiveRecord::Migration | |
def up | |
${0} | |
end | |
def down | |
end | |
end | |
snippet migration class .. < ActiveRecord::Migration .. def change .. end | |
class `substitute( substitute(vim_snippets#Filename(), '^\d\+_', '',''), '\(_\|^\)\(.\)', '\u\2', 'g')` < ActiveRecord::Migration | |
def change | |
${0} | |
end | |
end | |
snippet trc | |
t.remove :${0:column} | |
snippet tre | |
t.rename :${1:old_column_name}, :${2:new_column_name} | |
${0} | |
snippet tref | |
t.references :${0:model} | |
snippet tcb | |
t.boolean :${1:title} | |
${0} | |
snippet tcbi | |
t.binary :${1:title}, limit: ${2:2}.megabytes | |
${0} | |
snippet tcd | |
t.decimal :${1:title}, precision: ${2:10}, scale: ${3:2} | |
${0} | |
snippet tcda | |
t.date :${1:title} | |
${0} | |
snippet tcdt | |
t.datetime :${1:title} | |
${0} | |
snippet tcf | |
t.float :${1:title} | |
${0} | |
snippet tch | |
t.change :${1:name}, :${2:string}, ${3:limit}: ${4:80} | |
${0} | |
snippet tci | |
t.integer :${1:title} | |
${0} | |
snippet tcl | |
t.integer :lock_version, null: false, default: 0 | |
${0} | |
snippet tcr | |
t.references :${1:taggable}, polymorphic: { default: '${2:Photo}' } | |
${0} | |
snippet tcs | |
t.string :${1:title} | |
${0} | |
snippet tct | |
t.text :${1:title} | |
${0} | |
snippet tcti | |
t.time :${1:title} | |
${0} | |
snippet tcts | |
t.timestamp :${1:title} | |
${0} | |
snippet tctss | |
t.timestamps | |
${0} | |
########################## | |
# Rspec snippets # | |
########################## | |
#ShouldaMatchers#ActionController | |
snippet isfp | |
it { should filter_param :${0:key} } | |
snippet isrt | |
it { should redirect_to ${0:url} } | |
snippet isrtp | |
it { should render_template ${0} } | |
snippet isrwl | |
it { should render_with_layout ${0} } | |
snippet isrf | |
it { should rescue_from ${0:exception} } | |
snippet isrw | |
it { should respond_with ${0:status} } | |
snippet isr | |
it { should route(:${1:method}, '${0:path}') } | |
snippet isss | |
it { should set_session :${0:key} } | |
snippet issf | |
it { should set_the_flash('${0}') } | |
#ShouldaMatchers#ActiveModel | |
snippet isama | |
it { should allow_mass_assignment_of :${0} } | |
snippet isav | |
it { should allow_value(${1}).for :${0} } | |
snippet isee | |
it { should ensure_exclusion_of :${0} } | |
snippet isei | |
it { should ensure_inclusion_of :${0} } | |
snippet isel | |
it { should ensure_length_of :${0} } | |
snippet isva | |
it { should validate_acceptance_of :${0} } | |
snippet isvc | |
it { should validate_confirmation_of :${0} } | |
snippet isvn | |
it { should validate_numericality_of :${0} } | |
snippet isvp | |
it { should validate_presence_of :${0} } | |
snippet isvu | |
it { should validate_uniqueness_of :${0} } | |
#ShouldaMatchers#ActiveRecord | |
snippet isana | |
it { should accept_nested_attributes_for :${0} } | |
snippet isbt | |
it { should belong_to :${0} } | |
snippet isbtcc | |
it { should belong_to(:${1}).counter_cache ${0:true} } | |
snippet ishbtm | |
it { should have_and_belong_to_many :${0} } | |
snippet isbv | |
it { should be_valid } | |
snippet ishc | |
it { should have_db_column :${0} } | |
snippet ishi | |
it { should have_db_index :${0} } | |
snippet ishm | |
it { should have_many :${0} } | |
snippet ishmt | |
it { should have_many(:${1}).through :${0} } | |
snippet isho | |
it { should have_one :${0} } | |
snippet ishro | |
it { should have_readonly_attribute :${0} } | |
snippet iss | |
it { should serialize :${0} } | |
snippet isres | |
it { should respond_to :${0} } | |
snippet isresw | |
it { should respond_to(:${1}).with(${0}).arguments } | |
snippet super_call | |
${1:super_class}.instance_method(:${0:method}).bind(self).call |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment