class HtmlToHaml::Erb::BasicConversionUseCase
Public Class Methods
new(erb)
click to toggle source
# File lib/html_to_haml/use_cases/erb/basic_conversion_use_case.rb, line 9 def initialize(erb) @erb = erb end
Public Instance Methods
convert()
click to toggle source
# File lib/html_to_haml/use_cases/erb/basic_conversion_use_case.rb, line 13 def convert sanitized_erb = remove_newlines_within_erb_statements(erb: @erb) erb = convert_syntax(erb: sanitized_erb) haml = convert_indentation(erb: erb) remove_haml_whitespace(haml: haml) end
Private Instance Methods
convert_indentation(erb:)
click to toggle source
# File lib/html_to_haml/use_cases/erb/basic_conversion_use_case.rb, line 35 def convert_indentation(erb:) IndentationConversionUseCase.instance.convert_indentation(erb: erb) end
convert_syntax(erb:)
click to toggle source
# File lib/html_to_haml/use_cases/erb/basic_conversion_use_case.rb, line 28 def convert_syntax(erb:) erb.gsub(/\s*?\n?(<%=|<%-|<%)\s?/) do |erb_selector| erb_selector_index = erb_selector =~ /-|=/ erb_selector_index ? "\n#{erb_selector[erb_selector_index]} " : "\n- " end.gsub(/\s?(-%>|%>)/, "\n") end
remove_newlines_within_erb_statements(erb:)
click to toggle source
# File lib/html_to_haml/use_cases/erb/basic_conversion_use_case.rb, line 22 def remove_newlines_within_erb_statements(erb:) erb.gsub(/<%(.*?)\n(.*?)%>/) do |erb_statement| erb_statement.gsub("\n", " ") end end