Skip to content

Commit c23543b

Browse files
committed
Fix bug with touching file in a directory that doesn't exist
1 parent 5f9d0b6 commit c23543b

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

generators/exercise_generator.rb

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ def initialize(namespace, exercise_group_name, exercise_name)
1010
TEMPLATE_DIR_PATH = "generators/exercise_template".freeze
1111

1212
def generate
13-
unless Dir.exist?(exercise_directory_path)
13+
unless Dir.exist?(exercise_group_path)
1414
make_exercise_directory
1515
make_solutions_directory
1616
end
@@ -23,16 +23,20 @@ def generate
2323

2424
attr_reader :namespace, :exercise_group_name, :exercise_name
2525

26-
def exercise_directory_path
26+
def exercise_group_path
2727
File.join(namespace, exercise_group_name)
2828
end
2929

30+
def exercise_directory_path
31+
File.join(exercise_group_path, "exercises")
32+
end
33+
3034
def exercise_file_path
31-
File.join(exercise_directory_path, "exercises", "#{exercise_name}.rb")
35+
File.join(exercise_directory_path, "#{exercise_name}.rb")
3236
end
3337

3438
def spec_file_path
35-
File.join(exercise_directory_path, "spec", "#{exercise_name}_spec.rb")
39+
File.join(exercise_group_path, "spec", "#{exercise_name}_spec.rb")
3640
end
3741

3842
def spec_template
@@ -47,13 +51,14 @@ def spec_template
4751

4852
def make_exercise_directory
4953
FileUtils::mkdir_p(exercise_directory_path)
50-
FileUtils::copy_entry(TEMPLATE_DIR_PATH, exercise_directory_path)
54+
FileUtils::copy_entry(TEMPLATE_DIR_PATH, exercise_group_path)
5155
end
5256

5357
def make_solutions_directory
54-
solutions_directory_path = File.join("solutions", exercise_directory_path)
58+
solutions_group_path = File.join("solutions", exercise_group_path)
59+
solutions_exercise_path = File.join("solutions", exercise_directory_path)
5560

56-
FileUtils::mkdir_p(solutions_directory_path)
57-
FileUtils::copy_entry(TEMPLATE_DIR_PATH, solutions_directory_path)
61+
FileUtils::mkdir_p(solutions_exercise_path)
62+
FileUtils::copy_entry(TEMPLATE_DIR_PATH, solutions_group_path)
5863
end
5964
end

generators/spec/exercise_generator_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
it "sends a `::mkdir_p` message to `FileUtils` to create exercise path" do
4242
generator.generate
4343

44-
expected_path = "test_namespace/1_test_group"
44+
expected_path = "test_namespace/1_test_group/exercises"
4545
expect(FileUtils).to have_received(:mkdir_p).with(expected_path)
4646
end
4747

@@ -56,7 +56,7 @@
5656
it "sends a `::mkdir_p` message to `FileUtils` to create solutions path" do
5757
generator.generate
5858

59-
expected_path = "solutions/test_namespace/1_test_group"
59+
expected_path = "solutions/test_namespace/1_test_group/exercises"
6060
expect(FileUtils).to have_received(:mkdir_p).with(expected_path)
6161
end
6262

0 commit comments

Comments
 (0)