Skip to content

Commit 4db10fd

Browse files
authored
Add support for model name without namespace in resolver (#93)
This PR adds a new wildcard that can be used in the `additional_file_patterns` options. When specifying additional files to get annotated, such as in tests or specs, you can use `%MODEL_NAME_WITHOUT_NS%` as a wild card. Example: ```yaml :additional_file_patterns: - spec/components/%MODEL_NAME_WITHOUT_NS%_spec.rb ```
1 parent ccc620c commit 4db10fd

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

lib/annotate_rb/model_annotator/file_name_resolver.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,13 @@ module ModelAnnotator
55
class FileNameResolver
66
class << self
77
def call(filename_template, model_name, table_name)
8+
# e.g. with a model file name like "app/models/collapsed/example/test_model.rb"
9+
# and using a collapsed `model_name` such as "collapsed/test_model"
10+
model_name_without_namespace = model_name.split("/").last
11+
812
filename_template
913
.gsub("%MODEL_NAME%", model_name)
14+
.gsub("%MODEL_NAME_WITHOUT_NS%", model_name_without_namespace)
1015
.gsub("%PLURALIZED_MODEL_NAME%", model_name.pluralize)
1116
.gsub("%TABLE_NAME%", table_name || model_name.pluralize)
1217
end

spec/lib/annotate_rb/model_annotator/file_name_resolver_spec.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,5 +53,18 @@
5353
end
5454
end
5555
end
56+
57+
context 'When model_name is "collapsed/test_model" and table_name is "collapsed_test_model"' do
58+
let(:model_name) { "collapsed/test_model" }
59+
let(:table_name) { "collapsed_test_models" }
60+
61+
context "when filename_template is 'spec/models/collapsed/example/%MODEL_NAME_WITHOUT_NS%_spec.rb'" do
62+
let(:filename_template) { "spec/models/collapsed/example/%MODEL_NAME_WITHOUT_NS%_spec.rb" }
63+
64+
it "returns the custom spec path for a collapsed model" do
65+
is_expected.to eq "spec/models/collapsed/example/test_model_spec.rb"
66+
end
67+
end
68+
end
5669
end
5770
end

0 commit comments

Comments
 (0)