rails_best_practices

Set up rails_best_practices
Icons/chart bar
Used 45 times
Created by
T TobiasBales

Usage

Run this command in your Rails app directory in the terminal:

rails app:template LOCATION="https://railsbytes.com/script/VZgsY7"
Template Source

Review the code before running this template on your machine.

def create_bin(name, command = nil)
  create_file "bin/#{name}" do <<~EOF
    #!/usr/bin/env ruby
    APP_ROOT = File.expand_path('..', __dir__)
    Dir.chdir(APP_ROOT) do
      begin
        exec '#{command || name}'
      rescue Errno::ENOENT
        $stderr.puts "#{name} executable was not detected in the system."
        exit 1
      end
    end
  EOF
  end
  `chmod +x bin/#{name}`
end

gem_group :development do
  gem 'rails_best_practices'
end

Bundler.with_unbundled_env { run 'bundle install' }

create_file 'rails_best_practices.yml' do <<~YAML
    AddModelVirtualAttributeCheck: { }
    AlwaysAddDbIndexCheck: { }
    CheckSaveReturnValueCheck: { }
    CheckDestroyReturnValueCheck: { }
    DefaultScopeIsEvilCheck: { }
    DryBundlerInCapistranoCheck: { }
    HashSyntaxCheck: { }
    IsolateSeedDataCheck: { }
    KeepFindersOnTheirOwnModelCheck: { }
    LawOfDemeterCheck: { }
    MoveCodeIntoControllerCheck: { }
    MoveCodeIntoHelperCheck: { array_count: 3 }
    MoveCodeIntoModelCheck: { use_count: 2 }
    MoveFinderToNamedScopeCheck: { }
    MoveModelLogicIntoModelCheck: { use_count: 4 }
    NeedlessDeepNestingCheck: { nested_count: 2 }
    NotRescueExceptionCheck: { }
    NotUseDefaultRouteCheck: { }
    NotUseTimeAgoInWordsCheck: { }
    OveruseRouteCustomizationsCheck: { customize_count: 3 }
    ProtectMassAssignmentCheck: { }
    RemoveEmptyHelpersCheck: { }
    RemoveTabCheck: { }
    RemoveTrailingWhitespaceCheck: { }
    RemoveUnusedMethodsInControllersCheck: { except_methods: [] }
    RemoveUnusedMethodsInHelpersCheck: { except_methods: [] }
    RemoveUnusedMethodsInModelsCheck: {
      except_methods: [ ] 
    }
    ReplaceComplexCreationWithFactoryMethodCheck: { attribute_assignment_count: 2 }
    ReplaceInstanceVariableWithLocalVariableCheck: { }
    RestrictAutoGeneratedRoutesCheck: { }
    SimplifyRenderInControllersCheck: { }
    SimplifyRenderInViewsCheck: { }
    UseBeforeFilterCheck: { customize_count: 2 }
    UseModelAssociationCheck: { }
    UseMultipartAlternativeAsContentTypeOfEmailCheck: { }
    UseParenthesesInMethodDefCheck: { }
    UseObserverCheck: { }
    UseQueryAttributeCheck: { }
    UseSayWithTimeInMigrationsCheck: { }
    UseScopeAccessCheck: { }
    UseTurboSprocketsRails3Check: { }
  YAML
end

create_bin 'rails_best_practices', 'rails_best_practices --config rails_best_practices.yml'
Comments

Sign up or Login to leave a comment.