Sha256: 362bab8589f33832b4e1c61a621f6af76ae4917f787dc38e2cfc49dbbf0525f6
Contents?: true
Size: 877 Bytes
Versions: 3
Compression:
Stored size: 877 Bytes
Contents
# typed: true # frozen_string_literal: true require "singleton" require "packwerk/parsers" module Packwerk module Parsers class Factory include Singleton RUBY_REGEX = %r{ # Although not important for regex, these are ordered from most likely to match to least likely. \.(rb|rake|builder|gemspec|ru)\Z | (Gemfile|Rakefile)\Z }x private_constant :RUBY_REGEX ERB_REGEX = /\.erb\Z/ private_constant :ERB_REGEX def for_path(path) case path when RUBY_REGEX @ruby_parser ||= Ruby.new when ERB_REGEX @erb_parser ||= erb_parser_class.new end end def erb_parser_class @erb_parser_class ||= Erb end def erb_parser_class=(klass) @erb_parser_class = klass @erb_parser = nil end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
packwerk-1.1.3 | lib/packwerk/parsers/factory.rb |
packwerk-1.1.2 | lib/packwerk/parsers/factory.rb |
packwerk-1.1.1 | lib/packwerk/parsers/factory.rb |