class Prettyp::FormatterService
Attributes
formatter_registry[R]
language_detection[R]
Public Class Methods
new(formatter_registry: FormatterRegistry.new, language_detection: LanguageDetectionService.new)
click to toggle source
# File lib/prettyp/formatter_service.rb, line 9 def initialize(formatter_registry: FormatterRegistry.new, language_detection: LanguageDetectionService.new) @formatter_registry = formatter_registry @language_detection = language_detection end
Public Instance Methods
format_as_language_from_file(language, file)
click to toggle source
# File lib/prettyp/formatter_service.rb, line 28 def format_as_language_from_file language, file format file, language end
format_as_language_from_stdin(language)
click to toggle source
# File lib/prettyp/formatter_service.rb, line 32 def format_as_language_from_stdin language input = $stdin.read with_tempfile input do |f| format f, language end end
format_from_file(file)
click to toggle source
# File lib/prettyp/formatter_service.rb, line 14 def format_from_file file language = language_detection.detect_from_file(file) format file, language end
format_from_stdin()
click to toggle source
# File lib/prettyp/formatter_service.rb, line 19 def format_from_stdin input = $stdin.read language = language_detection.detect_from_input(input) with_tempfile input do |f| format f, language end end
Private Instance Methods
format(file, language)
click to toggle source
# File lib/prettyp/formatter_service.rb, line 43 def format file, language formatter = formatter_registry.formatter_for(language) raise FormatError, "Cannot determine formatter for #{language} from #{formatter_registry.formatters}" unless formatter formatter.new.format(file, language) end
with_tempfile(input, &block)
click to toggle source
# File lib/prettyp/formatter_service.rb, line 49 def with_tempfile input, &block file = Tempfile.new('prettyp') file.write(input) begin file.rewind block.call(file) ensure file.close file.unlink end end