Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Rufo and Rubocop #3

Merged
merged 3 commits into from
May 11, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
311 changes: 311 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,311 @@
# Relaxed.Ruby.Style

AllCops:
TargetRubyVersion: 2.4
Exclude:
- 'bin/rspec'
- 'vendor/**/*'
- 'spec/dummy/db/**/*'
- 'spec/dummy/config/**/*'
- 'alchemy_cms.gemspec'
- 'Rakefile'
- 'node_modules/**/*'

# Really, rubocop?
Bundler/OrderedGems:
Enabled: false

Style/EmptyLiteral:
Enabled: false

# We use class vars and will have to continue doing so for compatability
Style/ClassVars:
Enabled: false

Style/FloatDivision:
EnforcedStyle: left_coerce

# This has been used for customization
Style/MutableConstant:
Enabled: false

Style/ClassAndModuleChildren:
Enabled: false

Style/GuardClause:
Enabled: false

# We support older versions of Ruby (2.1) that do not have the %i syntax
Style/SymbolArray:
Enabled: false

Style/SymbolProc:
Exclude:
- 'lib/alchemy/permissions.rb'

Style/WordArray:
Enabled: false

Style/ConditionalAssignment:
Enabled: false

Style/MixinUsage:
Exclude:
- spec/**/*

Layout/ArgumentAlignment:
Enabled: false

Layout/HashAlignment:
Enabled: false

Layout/ParameterAlignment:
Enabled: false

Layout/ClosingParenthesisIndentation:
Enabled: false

Layout/DotPosition:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styledotposition

Layout/ElseAlignment:
Enabled: false

Layout/EmptyLineAfterMagicComment:
Enabled: false

Layout/EmptyLinesAroundAccessModifier:
Exclude:
- lib/alchemy/test_support/factories/*.rb

Layout/FirstArrayElementIndentation:
Enabled: false

Layout/FirstHashElementIndentation:
Enabled: false

Layout/IndentationWidth:
Enabled: false

Layout/LineLength:
Enabled: false

Layout/MultilineHashBraceLayout:
Enabled: false

Layout/MultilineMethodCallBraceLayout:
Enabled: false

Layout/MultilineMethodCallIndentation:
Enabled: false

Layout/MultilineOperationIndentation:
EnforcedStyle: indented

Layout/SpaceBeforeBlockBraces:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylespacebeforeblockbraces

Layout/SpaceInsideHashLiteralBraces:
Enabled: false

Layout/SpaceInsideParens:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylespaceinsideparens

Layout/EndAlignment:
Enabled: false

Layout/RescueEnsureAlignment:
Enabled: false

Lint/SuppressedException:
Exclude:
- 'config/initializers/mini_profiler.rb'

Style/CollectionMethods:
Enabled: false

Style/Alias:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylealias

Style/BeginBlock:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylebeginblock

Style/BlockDelimiters:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleblockdelimiters

Style/Documentation:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styledocumentation

Style/DoubleNegation:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styledoublenegation

Style/EmptyMethod:
Enabled: false

Style/EndBlock:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleendblock

Style/FormatString:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleformatstring

Style/IfUnlessModifier:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleifunlessmodifier

Style/Lambda:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylelambda

Style/ModuleFunction:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylemodulefunction

Style/MultilineBlockChain:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylemultilineblockchain

Style/NegatedIf:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylenegatedif

Style/NegatedWhile:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylenegatedwhile

Style/NumericLiteralPrefix:
Enabled: false

Style/ParallelAssignment:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleparallelassignment

Style/PercentLiteralDelimiters:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylepercentliteraldelimiters

Style/PerlBackrefs:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleperlbackrefs

Style/RegexpLiteral:
Enabled: false

Style/Semicolon:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylesemicolon

Style/SignalException:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylesignalexception

Style/SingleLineBlockParams:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylesinglelineblockparams

Style/SingleLineMethods:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylesinglelinemethods

Style/SpecialGlobalVars:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylespecialglobalvars

Style/StringLiterals:
EnforcedStyle: double_quotes

Style/StringLiteralsInInterpolation:
EnforcedStyle: double_quotes

Style/TrailingCommaInArguments:
EnforcedStyleForMultiline: comma

Style/TrailingCommaInArrayLiteral:
EnforcedStyleForMultiline: comma

Style/TrailingCommaInHashLiteral:
EnforcedStyleForMultiline: consistent_comma

Style/WhileUntilModifier:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylewhileuntilmodifier

# We use a lot of
#
# expect {
# something
# }.to { happen }
#
# syntax in the specs files.
Lint/AmbiguousBlockAssociation:
Exclude:
- 'spec/**/*'

Lint/AmbiguousRegexpLiteral:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#lintambiguousregexpliteral

Lint/AssignmentInCondition:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#lintassignmentincondition

# We use eval to get the correct url proxy object of engines in:
# - app/helpers/alchemy/admin/navigation_helper.rb:139
# - lib/alchemy/resources_helper.rb:24
Security/Eval:
Exclude:
- app/helpers/alchemy/admin/navigation_helper.rb
- lib/alchemy/resources_helper.rb

Metrics/AbcSize:
Enabled: false

Metrics/BlockLength:
Enabled: false

Metrics/BlockNesting:
Enabled: false

Metrics/ClassLength:
Enabled: false

Metrics/ModuleLength:
Enabled: false

Metrics/CyclomaticComplexity:
Enabled: false

Metrics/MethodLength:
Enabled: false

Metrics/ParameterLists:
Enabled: false

Metrics/PerceivedComplexity:
Enabled: false

Naming/AccessorMethodName:
Enabled: false

Naming/HeredocDelimiterNaming:
Enabled: false

# This cop is great but has no config option to support the style `@_method_name` we are using.
Naming/MemoizedInstanceVariableName:
Enabled: false

# We need these names for backwards compatability
Naming/PredicateName:
Enabled: false

Naming/VariableNumber:
Enabled: false
5 changes: 4 additions & 1 deletion Gemfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

Expand All @@ -15,4 +16,6 @@ gemspec
# gem 'byebug', group: [:development, :test]
gem "sqlite3"

gem "alchemy_cms", github: 'AlchemyCMS/alchemy_cms', branch: "master"
gem "alchemy_cms", github: "AlchemyCMS/alchemy_cms", branch: "master"
gem "rufo"
gem "rubocop"
14 changes: 7 additions & 7 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
#!/usr/bin/env rake
begin
require 'bundler/setup'
require "bundler/setup"
rescue LoadError
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
puts "You must `gem install bundler` and `bundle install` to run rake tasks"
end
Bundler::GemHelper.install_tasks

require 'rspec/core'
require 'rspec/core/rake_task'
require "rspec/core"
require "rspec/core/rake_task"
RSpec::Core::RakeTask.new(:spec)

task default: [:test_setup, :spec]

require 'active_support/core_ext/string'
require "active_support/core_ext/string"

desc 'Setup test app'
desc "Setup test app"
task :test_setup do
Dir.chdir('spec/dummy') do
Dir.chdir("spec/dummy") do
system <<-SETUP.strip_heredoc
export RAILS_ENV=test && \
bin/rake db:environment:set db:drop && \
Expand Down
5 changes: 3 additions & 2 deletions alchemy-json_api.gemspec
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# frozen_string_literal: true
$:.push File.expand_path("lib", __dir__)

# Maintain your gem's version:
Expand Down Expand Up @@ -26,10 +27,10 @@ Gem::Specification.new do |spec|
spec.files = Dir["{app,config,db,lib}/**/*", "MIT-LICENSE", "Rakefile", "README.md"]

spec.add_dependency "alchemy_cms"
spec.add_dependency "jsonapi.rb"
spec.add_dependency "fast_jsonapi", "~> 1.5"
spec.add_dependency "jsonapi.rb"

spec.add_development_dependency "rspec-rails"
spec.add_development_dependency "factory_bot"
spec.add_development_dependency "jsonapi-rspec"
spec.add_development_dependency "rspec-rails"
end
1 change: 1 addition & 0 deletions app/controllers/alchemy/json_api/base_controller.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# frozen_string_literal: true
module Alchemy
module JsonApi
class BaseController < ::ApplicationController
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# frozen_string_literal: true
module Alchemy
module JsonApi
class LayoutPagesController < JsonApi::PagesController
Expand Down
Loading