mirror of
https://gitea.invidious.io/iv-org/shard-ameba.git
synced 2024-08-15 00:53:29 +00:00
Revert "Merge pull request #394 from stufro/388-raise-on-invalid-file-path"
This reverts commit18d193bd08
, reversing changes made to7b8316f061
.
This commit is contained in:
parent
47088b10ca
commit
26d9bc0bd0
7 changed files with 22 additions and 63 deletions
|
@ -5,7 +5,7 @@ module Ameba::Cli
|
||||||
describe "Cmd" do
|
describe "Cmd" do
|
||||||
describe ".run" do
|
describe ".run" do
|
||||||
it "runs ameba" do
|
it "runs ameba" do
|
||||||
r = Cli.run %w[-f silent -c spec/fixtures/config.yml spec/fixtures/source.cr]
|
r = Cli.run %w[-f silent file.cr]
|
||||||
r.should be_nil
|
r.should be_nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -43,12 +43,12 @@ module Ameba::Cli
|
||||||
end
|
end
|
||||||
|
|
||||||
it "defaults rules? flag to false" do
|
it "defaults rules? flag to false" do
|
||||||
c = Cli.parse_args %w[spec/fixtures/source.cr]
|
c = Cli.parse_args %w[file.cr]
|
||||||
c.rules?.should be_false
|
c.rules?.should be_false
|
||||||
end
|
end
|
||||||
|
|
||||||
it "defaults skip_reading_config? flag to false" do
|
it "defaults skip_reading_config? flag to false" do
|
||||||
c = Cli.parse_args %w[spec/fixtures/source.cr]
|
c = Cli.parse_args %w[file.cr]
|
||||||
c.skip_reading_config?.should be_false
|
c.skip_reading_config?.should be_false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ module Ameba::Cli
|
||||||
end
|
end
|
||||||
|
|
||||||
it "defaults all? flag to false" do
|
it "defaults all? flag to false" do
|
||||||
c = Cli.parse_args %w[spec/fixtures/source.cr]
|
c = Cli.parse_args %w[file.cr]
|
||||||
c.all?.should be_false
|
c.all?.should be_false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -95,35 +95,35 @@ module Ameba::Cli
|
||||||
|
|
||||||
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 spec/fixtures/source.cr:3:5]
|
c = Cli.parse_args %w[--explain src/file.cr:3:5]
|
||||||
|
|
||||||
location_to_explain = c.location_to_explain.should_not be_nil
|
location_to_explain = c.location_to_explain.should_not be_nil
|
||||||
location_to_explain[:file].should eq "spec/fixtures/source.cr"
|
location_to_explain[:file].should eq "src/file.cr"
|
||||||
location_to_explain[:line].should eq 3
|
location_to_explain[:line].should eq 3
|
||||||
location_to_explain[:column].should eq 5
|
location_to_explain[:column].should eq 5
|
||||||
end
|
end
|
||||||
|
|
||||||
it "raises an error if location is not valid" do
|
it "raises an error if location is not valid" do
|
||||||
expect_raises(Exception, "location should have PATH:line:column") do
|
expect_raises(Exception, "location should have PATH:line:column") do
|
||||||
Cli.parse_args %w[--explain spec/fixtures/source.cr:3]
|
Cli.parse_args %w[--explain src/file.cr:3]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it "raises an error if line number is not valid" do
|
it "raises an error if line number is not valid" do
|
||||||
expect_raises(Exception, "location should have PATH:line:column") do
|
expect_raises(Exception, "location should have PATH:line:column") do
|
||||||
Cli.parse_args %w[--explain spec/fixtures/source.cr:a:3]
|
Cli.parse_args %w[--explain src/file.cr:a:3]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it "raises an error if column number is not valid" do
|
it "raises an error if column number is not valid" do
|
||||||
expect_raises(Exception, "location should have PATH:line:column") do
|
expect_raises(Exception, "location should have PATH:line:column") do
|
||||||
Cli.parse_args %w[--explain spec/fixtures/source.cr:3:&]
|
Cli.parse_args %w[--explain src/file.cr:3:&]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it "raises an error if line/column are missing" do
|
it "raises an error if line/column are missing" do
|
||||||
expect_raises(Exception, "location should have PATH:line:column") do
|
expect_raises(Exception, "location should have PATH:line:column") do
|
||||||
Cli.parse_args %w[--explain spec/fixtures/source.cr]
|
Cli.parse_args %w[--explain src/file.cr]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -9,21 +9,10 @@ module Ameba
|
||||||
end
|
end
|
||||||
|
|
||||||
describe ".new" do
|
describe ".new" do
|
||||||
context "when config is empty" do
|
it "loads default globs when config is empty" do
|
||||||
it "loads default globs" do
|
yml = YAML.parse "{}"
|
||||||
yml = YAML.parse "{}"
|
config = Config.new(yml)
|
||||||
config = Config.new(yml)
|
config.globs.should eq Config::DEFAULT_GLOBS
|
||||||
config.globs.should eq ["**/*.cr"]
|
|
||||||
end
|
|
||||||
|
|
||||||
it "sets !lib as a default glob when there are .cr files in lib" do
|
|
||||||
File.touch "lib/shard.cr"
|
|
||||||
yml = YAML.parse "{}"
|
|
||||||
config = Config.new(yml)
|
|
||||||
config.globs.should eq ["**/*.cr", "!lib"]
|
|
||||||
ensure
|
|
||||||
File.delete "lib/shard.cr"
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "initializes globs as string" do
|
it "initializes globs as string" do
|
||||||
|
@ -113,7 +102,7 @@ module Ameba
|
||||||
config = Config.load config_sample
|
config = Config.load config_sample
|
||||||
|
|
||||||
it "holds source globs" do
|
it "holds source globs" do
|
||||||
config.globs.should eq ["**/*.cr"]
|
config.globs.should eq Config::DEFAULT_GLOBS
|
||||||
end
|
end
|
||||||
|
|
||||||
it "allows to set globs" do
|
it "allows to set globs" do
|
||||||
|
|
|
@ -45,30 +45,6 @@ module Ameba
|
||||||
subject.expand(["**/#{current_file_basename}", "**/#{current_file_basename}"])
|
subject.expand(["**/#{current_file_basename}", "**/#{current_file_basename}"])
|
||||||
.should eq [current_file_path]
|
.should eq [current_file_path]
|
||||||
end
|
end
|
||||||
|
|
||||||
it "raises an ArgumentError when the glob doesn't match any files" do
|
|
||||||
expect_raises(ArgumentError, "No files found matching foo/*") do
|
|
||||||
subject.expand(["foo/*"])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
it "raises an ArgumentError when given a missing file" do
|
|
||||||
expect_raises(ArgumentError, "No files found matching foo.cr") do
|
|
||||||
subject.expand(["foo.cr"])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
it "raises an ArgumentError when given a missing directory" do
|
|
||||||
expect_raises(ArgumentError, "No files found matching foo/") do
|
|
||||||
subject.expand(["foo/"])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
it "raises an ArgumentError when given multiple arguments, one of which is missing" do
|
|
||||||
expect_raises(ArgumentError, "No files found matching foo.cr") do
|
|
||||||
subject.expand(["**/#{current_file_basename}", "foo.cr"])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
6
spec/fixtures/config.yml
vendored
6
spec/fixtures/config.yml
vendored
|
@ -1,4 +1,2 @@
|
||||||
Ameba/PerfRule:
|
Lint/ComparisonToBoolean:
|
||||||
Enabled: false
|
Enabled: true
|
||||||
Ameba/ErrorRule:
|
|
||||||
Enabled: false
|
|
||||||
|
|
0
spec/fixtures/source.cr
vendored
0
spec/fixtures/source.cr
vendored
|
@ -55,7 +55,10 @@ class Ameba::Config
|
||||||
Path[XDG_CONFIG_HOME] / "ameba/config.yml",
|
Path[XDG_CONFIG_HOME] / "ameba/config.yml",
|
||||||
}
|
}
|
||||||
|
|
||||||
SOURCES_GLOB = "**/*.cr"
|
DEFAULT_GLOBS = %w(
|
||||||
|
**/*.cr
|
||||||
|
!lib
|
||||||
|
)
|
||||||
|
|
||||||
getter rules : Array(Rule::Base)
|
getter rules : Array(Rule::Base)
|
||||||
property severity = Severity::Convention
|
property severity = Severity::Convention
|
||||||
|
@ -92,7 +95,7 @@ class Ameba::Config
|
||||||
@rules = Rule.rules.map &.new(config).as(Rule::Base)
|
@rules = Rule.rules.map &.new(config).as(Rule::Base)
|
||||||
@rule_groups = @rules.group_by &.group
|
@rule_groups = @rules.group_by &.group
|
||||||
@excluded = load_array_section(config, "Excluded")
|
@excluded = load_array_section(config, "Excluded")
|
||||||
@globs = load_array_section(config, "Globs", default_globs)
|
@globs = load_array_section(config, "Globs", DEFAULT_GLOBS)
|
||||||
|
|
||||||
return unless formatter_name = load_formatter_name(config)
|
return unless formatter_name = load_formatter_name(config)
|
||||||
self.formatter = formatter_name
|
self.formatter = formatter_name
|
||||||
|
@ -236,12 +239,6 @@ class Ameba::Config
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
private def default_globs
|
|
||||||
[SOURCES_GLOB].tap do |globs|
|
|
||||||
globs.push("!lib") unless Dir["lib/**/*.cr"].empty?
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# :nodoc:
|
# :nodoc:
|
||||||
module RuleConfig
|
module RuleConfig
|
||||||
# Define rule properties
|
# Define rule properties
|
||||||
|
|
|
@ -22,7 +22,6 @@ module Ameba
|
||||||
def expand(globs)
|
def expand(globs)
|
||||||
globs.flat_map do |glob|
|
globs.flat_map do |glob|
|
||||||
glob += "/**/*.cr" if File.directory?(glob)
|
glob += "/**/*.cr" if File.directory?(glob)
|
||||||
raise ArgumentError.new("No files found matching #{glob}") if Dir[glob].empty?
|
|
||||||
Dir[glob]
|
Dir[glob]
|
||||||
end.uniq!
|
end.uniq!
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue