13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'app/helpers/preview_helper.rb', line 13
def find_template_data(lookup_context:, template_identifier:)
template = lookup_context.find_template(template_identifier)
if Rails.version.to_f >= 6.1 || template.source.present?
return {
source: template.source,
prism_language_name: prism_language_name_by_template(template: template)
}
else
all_template_paths = ViewComponent::Base.preview_paths.map do |preview_path|
Dir.glob("#{preview_path}/**/*")
end.flatten
matching_templates = all_template_paths.find_all do |path|
path =~ /#{template_identifier}*.(html)/
end
raise "found 0 matches for templates for #{template_identifier}." if matching_templates.empty?
raise "found multiple templates for #{template_identifier}." if matching_templates.size > 1
template_file_path = matching_templates.first
template_source = File.read(template_file_path)
prism_language_name = prism_language_name_by_template_path(template_file_path: template_file_path)
return {
source: template_source,
prism_language_name: prism_language_name
}
end
end
|