Skip to content

Commit b283c2d

Browse files
committed
Enhance underscore method to filter invalid characters and update test file naming convention
1 parent 2b6c97d commit b283c2d

2 files changed

Lines changed: 8 additions & 4 deletions

File tree

bin/generate

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ def exercises
99
.select { |file| File.directory? File.join('./exercises/practice', file) }
1010
end
1111

12+
def underscore(str)
13+
str.gsub(/[^a-zA-Z0-9_-]/, '').gsub(/[-\s]/, '_').downcase
14+
end
15+
1216
class VerificationError < StandardError
1317
MESSAGE = 'The result generated for %<exercise>s, does not match the current file'
1418

@@ -39,7 +43,7 @@ end
3943
parser.on('--verify', 'Verify all exercises') do
4044
exercises.each do |exercise|
4145
if File.exist?("./exercises/practice/#{exercise}/.meta/test_template.erb")
42-
current_code = File.read("./exercises/practice/#{exercise}/#{exercise}_test.rb")
46+
current_code = File.read("./exercises/practice/#{exercise}/#{underscore(exercise)}_test.rb")
4347
f = File.new("./exercises/practice/#{exercise}/temp_test.rb", 'w+')
4448
Generator.new(exercise).generate(f.path)
4549
generated_code = f.read

generatorv2/lib/generator.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,17 @@ def generate(result_path = "./exercises/practice/#{@exercise}/#{underscore(@exer
2121
additional_json(json)
2222
json["cases"] = remove_tests(uuid, json)
2323
status = proc { status }
24-
template = ERB.new File.read("./exercises/practice/#{@exercise}/.meta/test_template.erb")
24+
template = ERB.new(File.read("./exercises/practice/#{@exercise}/.meta/test_template.erb"), trim_mode: '-')
2525

2626
result = template.result(binding)
2727

2828
File.write(result_path, result)
2929
RuboCop::CLI.new.
30-
run(['-x', '-c', '.rubocop.yml', '-o', NullDevice.path, result_path])
30+
run(['-a', '-c', '.rubocop.yml', '-o', NullDevice.path, result_path])
3131
end
3232

3333
def underscore(str)
34-
str.gsub(/[-\s]/, '_').downcase
34+
str.gsub(/[^a-zA-Z0-9_\- ]/, '').gsub(/[-\s]/, '_').downcase
3535
end
3636

3737
def camel_case(str)

0 commit comments

Comments
 (0)