Skip to content

Commit

Permalink
Merge pull request #271 from youpy/fix-lint-error
Browse files Browse the repository at this point in the history
fix lint error
  • Loading branch information
Floppy authored Dec 19, 2022
2 parents 869b1cc + 61ca649 commit 14c433c
Show file tree
Hide file tree
Showing 8 changed files with 16 additions and 19 deletions.
1 change: 0 additions & 1 deletion csvlint.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ Gem::Specification.new do |spec|

spec.files = `git ls-files`.split($/)
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
spec.require_paths = ["lib"]

spec.required_ruby_version = [">= 2.5", "< 3.2"]
Expand Down
3 changes: 1 addition & 2 deletions features/support/env.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@

class CustomWorld
def default_csv_options
{
}
{}
end
end

Expand Down
1 change: 0 additions & 1 deletion lib/csvlint/cli.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
require "rainbow"
require "active_support/json"
require "json"
require "pp"
require "thor"

require "active_support/inflector"
Expand Down
10 changes: 5 additions & 5 deletions lib/csvlint/csvw/date_format.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ def initialize(pattern, datatype = nil)
regexp = regexp.sub("mm", FIELDS["mm"].to_s)
if /ss\.S+/.match?(@pattern)
max_fractional_seconds = @pattern.split(".")[-1].length
regexp = regexp.sub(/ss\.S+$/, "(?<second>#{FIELDS["ss"]}(\.[0-9]{1,#{max_fractional_seconds}})?)")
regexp = regexp.sub(/ss\.S+$/, "(?<second>#{FIELDS["ss"]}(.[0-9]{1,#{max_fractional_seconds}})?)")
else
regexp = regexp.sub("ss", "(?<second>#{FIELDS["ss"]})")
end
Expand Down Expand Up @@ -95,7 +95,7 @@ def parse(value)
end
when "http://www.w3.org/2001/XMLSchema#dateTime"
begin
value[:dateTime] = DateTime.new(match["year"].to_i, match["month"].to_i, match["day"].to_i, match["hour"].to_i, match["minute"].to_i, (match.names.include?("second") ? match["second"].to_f : 0), match.names.include?("timezone") && match["timezone"] ? match["timezone"] : "")
value[:dateTime] = DateTime.new(match["year"].to_i, match["month"].to_i, match["day"].to_i, match["hour"].to_i, match["minute"].to_i, (match.names.include?("second") ? match["second"].to_f : 0), (match.names.include?("timezone") && match["timezone"]) ? match["timezone"] : "")
rescue ArgumentError
return nil
end
Expand Down Expand Up @@ -189,9 +189,9 @@ def parse(value)
"http://www.w3.org/2001/XMLSchema#date" =>
Regexp.new("^#{FIELDS["yyyy"]}-#{FIELDS["MM"]}-#{FIELDS["dd"]}#{FIELDS["XXX"]}?$"),
"http://www.w3.org/2001/XMLSchema#dateTime" =>
Regexp.new("^#{FIELDS["yyyy"]}-#{FIELDS["MM"]}-#{FIELDS["dd"]}T#{FIELDS["HH"]}:#{FIELDS["mm"]}:(?<second>#{FIELDS["ss"]}(\.[0-9]+)?)#{FIELDS["XXX"]}?$"),
Regexp.new("^#{FIELDS["yyyy"]}-#{FIELDS["MM"]}-#{FIELDS["dd"]}T#{FIELDS["HH"]}:#{FIELDS["mm"]}:(?<second>#{FIELDS["ss"]}(.[0-9]+)?)#{FIELDS["XXX"]}?$"),
"http://www.w3.org/2001/XMLSchema#dateTimeStamp" =>
Regexp.new("^#{FIELDS["yyyy"]}-#{FIELDS["MM"]}-#{FIELDS["dd"]}T#{FIELDS["HH"]}:#{FIELDS["mm"]}:(?<second>#{FIELDS["ss"]}(\.[0-9]+)?)#{FIELDS["XXX"]}$"),
Regexp.new("^#{FIELDS["yyyy"]}-#{FIELDS["MM"]}-#{FIELDS["dd"]}T#{FIELDS["HH"]}:#{FIELDS["mm"]}:(?<second>#{FIELDS["ss"]}(.[0-9]+)?)#{FIELDS["XXX"]}$"),
"http://www.w3.org/2001/XMLSchema#gDay" =>
Regexp.new("^---#{FIELDS["dd"]}#{FIELDS["XXX"]}?$"),
"http://www.w3.org/2001/XMLSchema#gMonth" =>
Expand All @@ -203,7 +203,7 @@ def parse(value)
"http://www.w3.org/2001/XMLSchema#gYearMonth" =>
Regexp.new("^#{FIELDS["yyyy"]}-#{FIELDS["MM"]}#{FIELDS["XXX"]}?$"),
"http://www.w3.org/2001/XMLSchema#time" =>
Regexp.new("^#{FIELDS["HH"]}:#{FIELDS["mm"]}:(?<second>#{FIELDS["ss"]}(\.[0-9]+)?)#{FIELDS["XXX"]}?$")
Regexp.new("^#{FIELDS["HH"]}:#{FIELDS["mm"]}:(?<second>#{FIELDS["ss"]}(.[0-9]+)?)#{FIELDS["XXX"]}?$")
}
end

Expand Down
6 changes: 3 additions & 3 deletions lib/csvlint/csvw/number_format.rb
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ def initialize(pattern = nil, grouping_separator = nil, decimal_separator = ".",
secondary_groups = "([0-9]{#{@secondary_grouping_size}}#{Regexp.escape(@grouping_separator)})*"
if min_integer_digits > @primary_grouping_size
remaining_req_digits = min_integer_digits - @primary_grouping_size
req_secondary_groups = remaining_req_digits / @secondary_grouping_size > 0 ? "([0-9]{#{@secondary_grouping_size}}#{Regexp.escape(@grouping_separator)}){#{remaining_req_digits / @secondary_grouping_size}}" : ""
req_secondary_groups = (remaining_req_digits / @secondary_grouping_size > 0) ? "([0-9]{#{@secondary_grouping_size}}#{Regexp.escape(@grouping_separator)}){#{remaining_req_digits / @secondary_grouping_size}}" : ""
if remaining_req_digits % @secondary_grouping_size > 0
final_req_digits = "[0-9]{#{@secondary_grouping_size - (remaining_req_digits % @secondary_grouping_size)}}"
final_opt_digits = "[0-9]{0,#{@secondary_grouping_size - (remaining_req_digits % @secondary_grouping_size)}}"
Expand All @@ -87,8 +87,8 @@ def initialize(pattern = nil, grouping_separator = nil, decimal_separator = ".",
integer_regexp = "(#{leading_regexp}#{secondary_groups})?#{req_secondary_groups}[0-9]{#{@primary_grouping_size}}"
end
else
final_req_digits = @primary_grouping_size > min_integer_digits ? "[0-9]{#{@primary_grouping_size - min_integer_digits}}" : ""
final_opt_digits = @primary_grouping_size > min_integer_digits ? "[0-9]{0,#{@primary_grouping_size - min_integer_digits}}" : ""
final_req_digits = (@primary_grouping_size > min_integer_digits) ? "[0-9]{#{@primary_grouping_size - min_integer_digits}}" : ""
final_opt_digits = (@primary_grouping_size > min_integer_digits) ? "[0-9]{0,#{@primary_grouping_size - min_integer_digits}}" : ""
integer_regexp = "((#{leading_regexp}#{secondary_groups}#{final_req_digits})|#{final_opt_digits})[0-9]{#{min_integer_digits}}"
end
end
Expand Down
6 changes: 3 additions & 3 deletions lib/csvlint/csvw/table.rb
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ def validate_row(values, row = nil, validate = false)
if validate
unless @primary_key.nil?
key = @primary_key.map { |column| column.validate(values[column.number - 1], row) }
colnum = primary_key.length == 1 ? primary_key[0].number : nil
colnum = (primary_key.length == 1) ? primary_key[0].number : nil
build_errors(:duplicate_key, :schema, row, colnum, key.join(","), @primary_key_values[key]) if @primary_key_values.include?(key)
@primary_key_values[key] = row
end
Expand Down Expand Up @@ -105,7 +105,7 @@ def validate_foreign_key_references(foreign_key, remote_url, remote)
reset
local = @foreign_key_reference_values[foreign_key]
context = {"from" => {"url" => remote_url.to_s.split("/")[-1], "columns" => foreign_key["columnReference"]}, "to" => {"url" => @url.to_s.split("/")[-1], "columns" => foreign_key["reference"]["columnReference"]}}
colnum = foreign_key["referencing_columns"].length == 1 ? foreign_key["referencing_columns"][0].number : nil
colnum = (foreign_key["referencing_columns"].length == 1) ? foreign_key["referencing_columns"][0].number : nil
remote.each_with_index do |r, i|
if local[r]
build_errors(:multiple_matched_rows, :schema, i + 1, colnum, r, context) if local[r].length > 1
Expand Down Expand Up @@ -209,7 +209,7 @@ def self.from_json(table_desc, base_url = nil, lang = "und", common_properties =
dialect: table_properties["dialect"],
foreign_keys: foreign_keys || [],
notes: table_properties["notes"] || [],
primary_key: primary_key_valid && !primary_key_columns.empty? ? primary_key_columns : nil,
primary_key: (primary_key_valid && !primary_key_columns.empty?) ? primary_key_columns : nil,
row_title_columns: row_title_columns,
schema: table_schema ? table_schema["@id"] : nil,
suppress_output: table_properties["suppressOutput"] || false,
Expand Down
2 changes: 1 addition & 1 deletion lib/csvlint/validate.rb
Original file line number Diff line number Diff line change
Expand Up @@ -612,7 +612,7 @@ def get_line_break(line)
ANCHOR_REGEXP = Regexp.new("(?<anchor>\\s*anchor\\s*=\\s*\\<#{URI_REGEXP}\\>)")
LINK_EXTENSION_REGEXP = Regexp.new("(?<link-extension>(?<param>#{TOKEN_REGEXP})(\\s*=\\s*(?<param-value>#{TOKEN_REGEXP}|#{QUOTED_STRING_REGEXP}))?)")
LINK_PARAM_REGEXP = Regexp.new("(#{REL_REGEXP}|#{REV_REGEXP}|#{TITLE_REGEXP}|#{ANCHOR_REGEXP}|#{LINK_EXTENSION_REGEXP})")
LINK_HEADER_REGEXP = Regexp.new("\<#{URI_REGEXP}\>(\\s*;\\s*#{LINK_PARAM_REGEXP})*")
LINK_HEADER_REGEXP = Regexp.new("<#{URI_REGEXP}>(\\s*;\\s*#{LINK_PARAM_REGEXP})*")
POSSIBLE_DATE_REGEXP = Regexp.new("\\A(\\d|\\s\\d#{Date::ABBR_MONTHNAMES.join("|")}#{Date::MONTHNAMES.join("|")})")
end
end
6 changes: 3 additions & 3 deletions spec/field_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,15 @@
end

it "should validate against regex" do
field = Csvlint::Field.new("test", {"pattern" => "\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}"})
field = Csvlint::Field.new("test", {"pattern" => "{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}}"})
expect(field.validate_column("abc")).to be(false)
expect(field.validate_column("{3B0DA29C-C89A-4FAA-918A-0000074FA0E0}")).to be(true)
end

it "should apply combinations of constraints" do
field = Csvlint::Field.new("test", {"required" => true, "pattern" => "\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}"})
field = Csvlint::Field.new("test", {"required" => true, "pattern" => "{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}}"})
expect(field.validate_column("abc")).to be(false)
expect(field.errors.first.constraints).to eql({"pattern" => "\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}"})
expect(field.errors.first.constraints).to eql({"pattern" => "{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}}"})

expect(field.validate_column(nil)).to be(false)
expect(field.errors.first.constraints).to eql({"required" => true})
Expand Down

0 comments on commit 14c433c

Please sign in to comment.