Skip to content

Commit 507c800

Browse files
authored
Merge pull request #57 from github/55/sidecar-css
Allow sidecar CSS files
2 parents b66fa08 + 8990b8d commit 507c800

File tree

5 files changed

+20
-4
lines changed

5 files changed

+20
-4
lines changed

lib/action_view/component/base.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,19 +117,19 @@ def template_file_path
117117

118118
filename = self.instance_method(:initialize).source_location[0]
119119
filename_without_extension = filename[0..-(File.extname(filename).length + 1)]
120-
sibling_files = Dir["#{filename_without_extension}.*"] - [filename]
120+
sibling_template_files = Dir["#{filename_without_extension}.????.{#{ActionView::Template.template_handler_extensions.join(',')}}"] - [filename]
121121

122-
if sibling_files.length > 1
122+
if sibling_template_files.length > 1
123123
raise StandardError.new("More than one template found for #{self}. There can only be one sidecar template file per component.")
124124
end
125125

126-
if sibling_files.length == 0
126+
if sibling_template_files.length == 0
127127
raise NotImplementedError.new(
128128
"Could not find a template file for #{self}."
129129
)
130130
end
131131

132-
sibling_files[0]
132+
sibling_template_files[0]
133133
end
134134
end
135135

test/action_view/component_test.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,12 @@ def test_renders_another_component
130130
assert_equal trim_result(result.css("div").first.to_html), "<div>hello,world!</div>"
131131
end
132132

133+
def test_renders_component_with_css_sidecar
134+
result = render_inline(CssSidecarFileComponent)
135+
136+
assert_equal trim_result(result.css("div").first.to_html), "<div>hello,world!</div>"
137+
end
138+
133139
def test_template_changes_are_not_reflected_in_production
134140
ActionView::Base.cache_template_loading = true
135141

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
div {
2+
font-weight: bold;
3+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<div>hello, world!</div>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# frozen_string_literal: true
2+
3+
class CssSidecarFileComponent < ActionView::Component::Base
4+
def initialize(*)
5+
end
6+
end

0 commit comments

Comments
 (0)