Sha256: c97005baa034170be57b1aea35c6050649d4b51342eca703f2a481853c9dabdf
Contents?: true
Size: 1.06 KB
Versions: 2
Compression:
Stored size: 1.06 KB
Contents
module Murdoc module Languages # Base language module # # Any new language module should inherit from Base, redefine .extensions # and .comment_symbols methods, if needed, and add itself to Languages.map # map. class Base def self.applies_for?(filename) if extensions.include?(File.extname(filename).sub(/^\./, '')) true else false end end def self.annotation_only? false end def self.extensions [] end def self.comment_symbols { single_line: nil, multiline: nil } end def self.name super.sub(/^(.*::)?([^:]+)$/, '\\2'). gsub(/([a-z])([A-Z])/, '\\1_\\2'). downcase.to_sym end end def self.map @map ||= {} end def self.list map.values end def self.get(name) map.fetch(name, Base) end def self.detect(filename) name, lang = map.detect {|name, lang| lang.applies_for?(filename) } name end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
murdoc-0.2.1 | lib/murdoc/languages/base.rb |
murdoc-0.2.0 | lib/murdoc/languages/base.rb |