diff options
Diffstat (limited to 'vim/bundle/vim-snippets/snippets/rails.snippets')
-rw-r--r-- | vim/bundle/vim-snippets/snippets/rails.snippets | 490 |
1 files changed, 490 insertions, 0 deletions
diff --git a/vim/bundle/vim-snippets/snippets/rails.snippets b/vim/bundle/vim-snippets/snippets/rails.snippets new file mode 100644 index 0000000..e834222 --- /dev/null +++ b/vim/bundle/vim-snippets/snippets/rails.snippets @@ -0,0 +1,490 @@ +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 |