Class: ViewComponent::ScopedStyles::CssClassPrefix
- Inherits:
-
Object
- Object
- ViewComponent::ScopedStyles::CssClassPrefix
- Defined in:
- lib/view_component/scoped_styles/css_class_prefix.rb
Overview
Interpolates css_class_prefix template variables and escapes scoped class names for use in compiled CSS selectors.
Constant Summary collapse
- VARIABLES =
%w[component_name class_name].freeze
- VARIABLE_PATTERN =
/\{(#{VARIABLES.join("|")})\}/
Class Method Summary collapse
-
.escape_for_css_selector(class_name) ⇒ String
Escapes characters that are invalid in unescaped CSS class selectors.
-
.interpolate(template, component_name:, class_name:) ⇒ String
Replaces {component_name} and {class_name} in
template.
Class Method Details
.escape_for_css_selector(class_name) ⇒ String
Escapes characters that are invalid in unescaped CSS class selectors.
32 33 34 |
# File 'lib/view_component/scoped_styles/css_class_prefix.rb', line 32 def escape_for_css_selector(class_name) class_name.gsub("/", '\/') end |
.interpolate(template, component_name:, class_name:) ⇒ String
Replaces {component_name} and {class_name} in template.
19 20 21 22 23 24 25 26 |
# File 'lib/view_component/scoped_styles/css_class_prefix.rb', line 19 def interpolate(template, component_name:, class_name:) template.gsub(VARIABLE_PATTERN) do case ::Regexp.last_match(1) when "component_name" then component_name when "class_name" then class_name end end end |