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…
	
	Add table
		Add a link
		
	
		Reference in a new issue