Merge pull request #363 from zw963/master

Skip all config when use with --gen-config.
This commit is contained in:
Vitalii Elenhaupt 2023-03-09 08:34:47 +02:00 committed by GitHub
commit adac90c7c6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 37 additions and 20 deletions

View file

@ -7,7 +7,7 @@ module Ameba::AST
node = as_node("return 22") node = as_node("return 22")
flow_expression = FlowExpression.new node, false flow_expression = FlowExpression.new node, false
flow_expression.node.should_not be_nil flow_expression.node.should_not be_nil
flow_expression.in_loop?.should eq false flow_expression.in_loop?.should be_false
end end
describe "#delegation" do describe "#delegation" do

View file

@ -93,7 +93,7 @@ module Ameba::AST
it "returns false if this is a break out of loop" do it "returns false if this is a break out of loop" do
node = as_node("break") node = as_node("break")
subject.flow_command?(node, false).should eq false subject.flow_command?(node, false).should be_false
end end
it "returns true if this is a next in a loop" do it "returns true if this is a next in a loop" do
@ -103,7 +103,7 @@ module Ameba::AST
it "returns false if this is a next out of loop" do it "returns false if this is a next out of loop" do
node = as_node("next") node = as_node("next")
subject.flow_command?(node, false).should eq false subject.flow_command?(node, false).should be_false
end end
it "returns true if this is raise" do it "returns true if this is raise" do
@ -123,7 +123,7 @@ module Ameba::AST
it "returns false otherwise" do it "returns false otherwise" do
node = as_node("foobar") node = as_node("foobar")
subject.flow_command?(node, false).should eq false subject.flow_command?(node, false).should be_false
end end
end end
@ -195,7 +195,7 @@ module Ameba::AST
break break
end end
CRYSTAL CRYSTAL
subject.flow_expression?(node).should eq false subject.flow_expression?(node).should be_false
end end
it "returns true if this until consumed by flow expressions" do it "returns true if this until consumed by flow expressions" do
@ -213,7 +213,7 @@ module Ameba::AST
break break
end end
CRYSTAL CRYSTAL
subject.flow_expression?(node).should eq false subject.flow_expression?(node).should be_false
end end
it "returns true if this expressions consumed by flow expressions" do it "returns true if this expressions consumed by flow expressions" do
@ -230,7 +230,7 @@ module Ameba::AST
exp1 exp1
exp2 exp2
CRYSTAL CRYSTAL
subject.flow_expression?(node).should eq false subject.flow_expression?(node).should be_false
end end
end end
@ -242,12 +242,12 @@ module Ameba::AST
it "returns false if it has a receiver" do it "returns false if it has a receiver" do
node = as_node "obj.raise e" node = as_node "obj.raise e"
subject.raise?(node).should eq false subject.raise?(node).should be_false
end end
it "returns false if size of the arguments doesn't match" do it "returns false if size of the arguments doesn't match" do
node = as_node "raise" node = as_node "raise"
subject.raise?(node).should eq false subject.raise?(node).should be_false
end end
end end
@ -264,12 +264,12 @@ module Ameba::AST
it "returns false if it has a receiver" do it "returns false if it has a receiver" do
node = as_node "obj.exit" node = as_node "obj.exit"
subject.exit?(node).should eq false subject.exit?(node).should be_false
end end
it "returns false if size of the arguments doesn't match" do it "returns false if size of the arguments doesn't match" do
node = as_node "exit 1, 1" node = as_node "exit 1, 1"
subject.exit?(node).should eq false subject.exit?(node).should be_false
end end
end end
@ -291,12 +291,12 @@ module Ameba::AST
it "returns false if it has a receiver" do it "returns false if it has a receiver" do
node = as_node "obj.abort" node = as_node "obj.abort"
subject.abort?(node).should eq false subject.abort?(node).should be_false
end end
it "returns false if size of the arguments doesn't match" do it "returns false if size of the arguments doesn't match" do
node = as_node "abort 1, 1, 1" node = as_node "abort 1, 1, 1"
subject.abort?(node).should eq false subject.abort?(node).should be_false
end end
end end
@ -308,12 +308,12 @@ module Ameba::AST
it "returns false if it has a receiver" do it "returns false if it has a receiver" do
node = as_node "obj.loop" node = as_node "obj.loop"
subject.loop?(node).should eq false subject.loop?(node).should be_false
end end
it "returns false if size of the arguments doesn't match" do it "returns false if size of the arguments doesn't match" do
node = as_node "loop 1" node = as_node "loop 1"
subject.loop?(node).should eq false subject.loop?(node).should be_false
end end
end end

View file

@ -44,7 +44,12 @@ module Ameba::Cli
it "defaults rules? flag to false" do it "defaults rules? flag to false" do
c = Cli.parse_args %w(file.cr) c = Cli.parse_args %w(file.cr)
c.rules?.should eq false c.rules?.should be_false
end
it "defaults skip_reading_config? flag to false" do
c = Cli.parse_args %w(file.cr)
c.skip_reading_config?.should be_false
end end
it "accepts --rules flag" do it "accepts --rules flag" do
@ -54,7 +59,7 @@ module Ameba::Cli
it "defaults all? flag to false" do it "defaults all? flag to false" do
c = Cli.parse_args %w(file.cr) c = Cli.parse_args %w(file.cr)
c.all?.should eq false c.all?.should be_false
end end
it "accepts --all flag" do it "accepts --all flag" do
@ -82,6 +87,12 @@ module Ameba::Cli
c.colors?.should be_true c.colors?.should be_true
end end
it "ignores --config if --gen-config flag passed" do
c = Cli.parse_args %w(--gen-config --config my_config.yml)
c.formatter.should eq :todo
c.skip_reading_config?.should be_true
end
describe "-e/--explain" do describe "-e/--explain" do
it "configures file/line/column" do it "configures file/line/column" do
c = Cli.parse_args %w(--explain src/file.cr:3:5) c = Cli.parse_args %w(--explain src/file.cr:3:5)

View file

@ -14,7 +14,7 @@ module Ameba::Cli
raise "Invalid usage: Cannot explain an issue and autocorrect at the same time." raise "Invalid usage: Cannot explain an issue and autocorrect at the same time."
end end
config = Config.load opts.config, opts.colors? config = Config.load opts.config, opts.colors?, opts.skip_reading_config?
config.autocorrect = autocorrect config.autocorrect = autocorrect
if globs = opts.globs if globs = opts.globs
@ -51,6 +51,7 @@ module Ameba::Cli
property except : Array(String)? property except : Array(String)?
property location_to_explain : NamedTuple(file: String, line: Int32, column: Int32)? property location_to_explain : NamedTuple(file: String, line: Int32, column: Int32)?
property fail_level : Severity? property fail_level : Severity?
property? skip_reading_config = false
property? rules = false property? rules = false
property? all = false property? all = false
property? colors = true property? colors = true
@ -105,6 +106,7 @@ module Ameba::Cli
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
opts.skip_reading_config = true
end end
parser.on("--fail-level SEVERITY", parser.on("--fail-level SEVERITY",

View file

@ -106,9 +106,13 @@ class Ameba::Config
# ``` # ```
# config = Ameba::Config.load # config = Ameba::Config.load
# ``` # ```
def self.load(path = nil, colors = true) def self.load(path = nil, colors = true, skip_reading_config = false)
Colorize.enabled = colors Colorize.enabled = colors
content = read_config(path) || "{}" content = if skip_reading_config
"{}"
else
read_config(path) || "{}"
end
Config.new YAML.parse(content) Config.new YAML.parse(content)
rescue e rescue e
raise "Config file is invalid: #{e.message}" raise "Config file is invalid: #{e.message}"