Miniparser/lib/Miniparser.rb

39 lines
1.0 KiB
Ruby
Raw Permalink Normal View History

2023-08-24 06:26:44 -06:00
# frozen_string_literal: true
require_relative 'Miniparser/version'
2023-08-24 06:26:44 -06:00
require_relative 'lang_detect'
require_relative 'lang_minify'
require_relative 'lang_validate'
module Miniparser
2023-08-24 06:26:44 -06:00
class Error < StandardError; end
class Processor
def self.type_file(file_path)
code = File.read(file_path)
result = process_code(code)
if result[:valid]
output_file_path = file_path.gsub(/(\.\w+)$/, '_minified\1')
File.write(output_file_path, result[:minified_code])
result[:minified_code] = output_file_path
end
result
end
def self.type_string(code_string)
process_code(code_string)
end
def self.process_code(code)
language_detector = LanguageDetector.new
language = language_detector.detect(code)
validator = Validator.new(language)
valid, errors = validator.validate(code)
minifier = Minifier.new(language)
minified_code = minifier.minify(code) if valid
{ valid:, errors:, minified_code: }
end
end
end