lib/leftovers/file.rb in leftovers-0.5.5 vs lib/leftovers/file.rb in leftovers-0.6.0

- old
+ new

@@ -12,22 +12,64 @@ return @test if defined?(@test) @test = Leftovers.config.test_paths.allowed?(relative_path) end - def ruby - precompiler&.precompile(read, self) || read + def ruby # rubocop:disable Metrics/MethodLength, Metrics/AbcSize + precompiled = [] + precompile = false + + if haml? + precompiled << ::Leftovers::Haml.precompile(read, self) + precompile = true + end + + if json? + precompiled << ::Leftovers::JSON.precompile(read, self) + precompile = true + end + + if erb? + precompiled << ::Leftovers::ERB.precompile(read, self) + precompile = true + end + + if slim? + precompiled << ::Leftovers::Slim.precompile(read, self) + precompile = true + end + + if yaml? + precompiled << ::Leftovers::YAML.precompile(read, self) + precompile = true + end + + if precompile + precompiled.join("\n") + else + read + end end private - def precompiler - if Leftovers.config.haml_paths.allowed?(relative_path) - ::Leftovers::Haml - elsif Leftovers.config.slim_paths.allowed?(relative_path) - ::Leftovers::Slim - elsif Leftovers.config.erb_paths.allowed?(relative_path) - ::Leftovers::ERB - end + def erb? + Leftovers.config.erb_paths.allowed?(relative_path) + end + + def haml? + Leftovers.config.haml_paths.allowed?(relative_path) + end + + def yaml? + Leftovers.config.yaml_paths.allowed?(relative_path) + end + + def json? + Leftovers.config.json_paths.allowed?(relative_path) + end + + def slim? + Leftovers.config.slim_paths.allowed?(relative_path) end end end