Skip to content

Commit 02ed4da

Browse files
committed
Merge pull request #255 from plicjo/develop
Annotate fixtures for nested models
2 parents c479e5a + f89bbf2 commit 02ed4da

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

lib/annotate/annotate_models.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ module AnnotateModels
4848
FIXTURE_PATTERNS = [
4949
File.join(FIXTURE_TEST_DIR, "%TABLE_NAME%.yml"),
5050
File.join(FIXTURE_SPEC_DIR, "%TABLE_NAME%.yml"),
51+
File.join(FIXTURE_TEST_DIR, "%PLURALIZED_MODEL_NAME%.yml"),
52+
File.join(FIXTURE_SPEC_DIR, "%PLURALIZED_MODEL_NAME%.yml"),
5153
]
5254

5355
FACTORY_PATTERNS = [
@@ -527,6 +529,7 @@ def remove_annotations(options={})
527529
def resolve_filename(filename_template, model_name, table_name)
528530
return filename_template.
529531
gsub('%MODEL_NAME%', model_name).
532+
gsub('%PLURALIZED_MODEL_NAME%', model_name.pluralize).
530533
gsub('%TABLE_NAME%', table_name || model_name.pluralize)
531534
end
532535

spec/annotate/annotate_models_spec.rb

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,35 @@ class Foo < ActiveRecord::Base
435435
end
436436
end
437437

438+
describe '#resolve_filename' do
439+
440+
it 'should return the test path for a model' do
441+
filename_template = 'test/unit/%MODEL_NAME%_test.rb'
442+
model_name = 'example_model'
443+
table_name = 'example_models'
444+
445+
filename = AnnotateModels.resolve_filename(filename_template, model_name, table_name)
446+
expect(filename). to eq 'test/unit/example_model_test.rb'
447+
end
448+
449+
it 'should return the fixture path for a model' do
450+
filename_template = 'test/fixtures/%TABLE_NAME%.yml'
451+
model_name = 'example_model'
452+
table_name = 'example_models'
453+
454+
filename = AnnotateModels.resolve_filename(filename_template, model_name, table_name)
455+
expect(filename). to eq 'test/fixtures/example_models.yml'
456+
end
457+
458+
it 'should return the fixture path for a nested model' do
459+
filename_template = 'test/fixtures/%PLURALIZED_MODEL_NAME%.yml'
460+
model_name = 'parent/child'
461+
table_name = 'parent_children'
462+
463+
filename = AnnotateModels.resolve_filename(filename_template, model_name, table_name)
464+
expect(filename). to eq 'test/fixtures/parent/children.yml'
465+
end
466+
end
438467
describe "annotating a file" do
439468
before do
440469
@model_dir = Dir.mktmpdir('annotate_models')

0 commit comments

Comments
 (0)