Skip to content

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Example .vimrc projections, including projections for Active Model Serializers, Draper, and FactoryGirl
let g:rails_projections = {
\ "config/projections.json": {
\ "command": "projections"
\ },
\ "spec/features/*_spec.rb": {
\ "command": "feature",
\ "template": "require 'spec_helper'\n\nfeature '%h' do\n\nend",
\ }}
let g:rails_gem_projections = {
\ "active_model_serializers": {
\ "app/serializers/*_serializer.rb": {
\ "command": "serializer",
\ "affinity": "model",
\ "test": "spec/serializers/%s_spec.rb",
\ "related": "app/models/%s.rb",
\ "template": "class %SSerializer < ActiveModel::Serializer\nend"
\ }
\ },
\ "draper": {
\ "app/decorators/*_decorator.rb": {
\ "command": "decorator",
\ "affinity": "model",
\ "test": "spec/decorators/%s_spec.rb",
\ "related": "app/models/%s.rb",
\ "template": "class %SDecorator < Draper::Decorator\nend"
\ }
\ },
\ "factory_girl_rails": {
\ "spec/factories.rb": {
\ "command": "factories",
\ "template": "FactoryGirl.define do\nend"
\ }
\ }}
@pjg

For FactoryGirl I recommend a much more useful configuration:

let g:rails_projections = {
      \ "test/factories/*.rb": {
      \   "command":   "factory",
      \   "affinity":  "collection",
      \   "alternate": "app/models/%i.rb",
      \   "related":   "db/schema.rb#%s",
      \   "test":      "test/models/%i_test.rb",
      \   "template":  "FactoryGirl.define do\n  factory :%i do\n  end\nend",
      \   "keywords":  "factory sequence"
      \ },
      \ "spec/factories/*.rb": {
      \   "command":   "factory",
      \   "affinity":  "collection",
      \   "alternate": "app/models/%i.rb",
      \   "related":   "db/schema.rb#%s",
      \   "test":      "spec/models/%i_test.rb",
      \   "template":  "FactoryGirl.define do\n  factory :%i do\n  end\nend",
      \   "keywords":  "factory sequence"
      \ }
      \}

Reference: https://github.com/pjg/dotfiles/blob/ee204acfb3bcf21823ba75d8b738a05b30f26d55/.vimrc#L282-302

@henrik

@pjg Does "related": "db/schema.rb#%s" work as expected? I assume it's meant to jump to that line.

I'm trying

  "app/models/*.rb": {
    "command": "model",
    "affinity": "model",
    "alternate": ["unit/models/%s_spec.rb", "spec/models/%s_spec.rb"],
    "related": "db/schema.rb#%s",
    "template": "class %S\nend"
  },

because I want custom test paths. :R opens schema.rb but doesn't jump to any line in particular.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.