Class: MetaCommit::Factories::ParserFactory
- Inherits:
-
Object
- Object
- MetaCommit::Factories::ParserFactory
- Defined in:
- lib/meta_commit/factories/parser_factory.rb
Overview
Parser factory
Instance Attribute Summary collapse
-
#available_parser_classes ⇒ Array<Class>
parser classes that factory can build.
Instance Method Summary collapse
- #create_parser_for(filename, content) ⇒ MetaCommit::Contracts::Parser, Nil
-
#initialize(parser_classes) ⇒ ParserFactory
constructor
A new instance of ParserFactory.
- #parser_supports(parser, filename, content) ⇒ Boolean
Constructor Details
#initialize(parser_classes) ⇒ ParserFactory
Returns a new instance of ParserFactory.
8 9 10 |
# File 'lib/meta_commit/factories/parser_factory.rb', line 8 def initialize(parser_classes) @available_parser_classes = parser_classes end |
Instance Attribute Details
#available_parser_classes ⇒ Array<Class>
parser classes that factory can build
4 5 6 |
# File 'lib/meta_commit/factories/parser_factory.rb', line 4 def available_parser_classes @available_parser_classes end |
Instance Method Details
#create_parser_for(filename, content) ⇒ MetaCommit::Contracts::Parser, Nil
15 16 17 18 19 20 |
# File 'lib/meta_commit/factories/parser_factory.rb', line 15 def create_parser_for(filename, content) @available_parser_classes.each do |parser| return parser.new if parser_supports(parser, filename, content) end nil end |
#parser_supports(parser, filename, content) ⇒ Boolean
26 27 28 |
# File 'lib/meta_commit/factories/parser_factory.rb', line 26 def parser_supports(parser, filename, content) (parser.supported_file_extensions.any? {|ext| filename.end_with?(ext)}) && (parser.supports_syntax?(content)) end |