mirror of
https://gitea.invidious.io/iv-org/shard-ameba.git
synced 2024-08-15 00:53:29 +00:00
Add --all
cli flag that enables all available rules
This commit is contained in:
parent
970ca4be1b
commit
248c5a656b
5 changed files with 25 additions and 8 deletions
2
Makefile
2
Makefile
|
@ -16,4 +16,4 @@ bin: build
|
||||||
cp ./bin/ameba $(SHARD_BIN)
|
cp ./bin/ameba $(SHARD_BIN)
|
||||||
test: build
|
test: build
|
||||||
$(CRYSTAL_BIN) spec
|
$(CRYSTAL_BIN) spec
|
||||||
./bin/ameba
|
./bin/ameba --all
|
||||||
|
|
|
@ -42,6 +42,16 @@ module Ameba::Cli
|
||||||
c.except.should eq %w(RULE1 RULE2)
|
c.except.should eq %w(RULE1 RULE2)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "defaults all? flag to false" do
|
||||||
|
c = Cli.parse_args %w(file.cr)
|
||||||
|
c.all?.should eq false
|
||||||
|
end
|
||||||
|
|
||||||
|
it "accepts --all flag" do
|
||||||
|
c = Cli.parse_args %w(--all)
|
||||||
|
c.all?.should eq true
|
||||||
|
end
|
||||||
|
|
||||||
it "accepts --gen-config flag" do
|
it "accepts --gen-config flag" do
|
||||||
c = Cli.parse_args %w(--gen-config)
|
c = Cli.parse_args %w(--gen-config)
|
||||||
c.formatter.should eq :todo
|
c.formatter.should eq :todo
|
||||||
|
|
|
@ -2,20 +2,20 @@ require "../../../spec_helper"
|
||||||
|
|
||||||
module Ameba::Rule::Layout
|
module Ameba::Rule::Layout
|
||||||
subject = LineLength.new
|
subject = LineLength.new
|
||||||
long_line = "*" * 81
|
long_line = "*" * (subject.max_length + 1)
|
||||||
|
|
||||||
describe LineLength do
|
describe LineLength do
|
||||||
it "passes if all lines are shorter than 80 symbols" do
|
it "passes if all lines are shorter than MaxLength symbols" do
|
||||||
source = Source.new "short line"
|
source = Source.new "short line"
|
||||||
subject.catch(source).should be_valid
|
subject.catch(source).should be_valid
|
||||||
end
|
end
|
||||||
|
|
||||||
it "passes if line consists of 79 symbols" do
|
it "passes if line consists of MaxLength symbols" do
|
||||||
source = Source.new "*" * 80
|
source = Source.new "*" * subject.max_length
|
||||||
subject.catch(source).should be_valid
|
subject.catch(source).should be_valid
|
||||||
end
|
end
|
||||||
|
|
||||||
it "fails if there is at least one line longer than 79 symbols" do
|
it "fails if there is at least one line longer than MaxLength symbols" do
|
||||||
source = Source.new long_line
|
source = Source.new long_line
|
||||||
subject.catch(source).should_not be_valid
|
subject.catch(source).should_not be_valid
|
||||||
end
|
end
|
||||||
|
@ -26,7 +26,7 @@ module Ameba::Rule::Layout
|
||||||
|
|
||||||
issue = source.issues.first
|
issue = source.issues.first
|
||||||
issue.rule.should eq subject
|
issue.rule.should eq subject
|
||||||
issue.location.to_s.should eq "source.cr:1:81"
|
issue.location.to_s.should eq "source.cr:1:#{subject.max_length + 1}"
|
||||||
issue.message.should eq "Line too long"
|
issue.message.should eq "Line too long"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ module Ameba::Cli
|
||||||
property files : Array(String)?
|
property files : Array(String)?
|
||||||
property only : Array(String)?
|
property only : Array(String)?
|
||||||
property except : Array(String)?
|
property except : Array(String)?
|
||||||
|
property? all = false
|
||||||
end
|
end
|
||||||
|
|
||||||
def parse_args(args, opts = Opts.new)
|
def parse_args(args, opts = Opts.new)
|
||||||
|
@ -56,6 +57,10 @@ module Ameba::Cli
|
||||||
opts.except = rules.split ","
|
opts.except = rules.split ","
|
||||||
end
|
end
|
||||||
|
|
||||||
|
parser.on("--all", "Enables all available rules") do
|
||||||
|
opts.all = true
|
||||||
|
end
|
||||||
|
|
||||||
parser.on("--gen-config",
|
parser.on("--gen-config",
|
||||||
"Generate a configuration file acting as a TODO list") do
|
"Generate a configuration file acting as a TODO list") do
|
||||||
opts.formatter = :todo
|
opts.formatter = :todo
|
||||||
|
@ -70,6 +75,8 @@ module Ameba::Cli
|
||||||
if only = opts.only
|
if only = opts.only
|
||||||
config.rules.map! { |r| r.enabled = false; r }
|
config.rules.map! { |r| r.enabled = false; r }
|
||||||
config.update_rules(only, enabled: true)
|
config.update_rules(only, enabled: true)
|
||||||
|
elsif opts.all?
|
||||||
|
config.rules.map! { |r| r.enabled = true; r }
|
||||||
end
|
end
|
||||||
|
|
||||||
config.update_rules(opts.except, enabled: false)
|
config.update_rules(opts.except, enabled: false)
|
||||||
|
|
|
@ -13,7 +13,7 @@ module Ameba::Rule::Layout
|
||||||
properties do
|
properties do
|
||||||
enabled false
|
enabled false
|
||||||
description "Disallows lines longer than `MaxLength` number of symbols"
|
description "Disallows lines longer than `MaxLength` number of symbols"
|
||||||
max_length 80
|
max_length 140
|
||||||
end
|
end
|
||||||
|
|
||||||
MSG = "Line too long"
|
MSG = "Line too long"
|
||||||
|
|
Loading…
Reference in a new issue