Loading lib/jsduck/meta_tag_loader.rb 0 → 100644 +48 −0 Original line number Diff line number Diff line require "jsduck/meta_tag" require 'jsduck/author_tag' require 'jsduck/doc_author_tag' module JsDuck # Loads user-defined meta-tags class MetaTagLoader # instatiates builtin meta tags def initialize @classes = MetaTag.descendants @meta_tags = @classes.map {|cls| cls.new } end # Loads user-defined meta-tags from given paths. # Returns list of meta-tag instances. def load(paths) paths.each do |path| if File.directory?(path) Dir[path+"/**/*.rb"].each do |file| require(file) init_remaining end else require(path) init_remaining end end @meta_tags end # Instantiates meta tag classes that haven't been instantiated # already. This is called after each meta-tags file is loaded so # that the list of meta-tags will be in order specified from # command line. def init_remaining MetaTag.descendants.each do |cls| if !@classes.include?(cls) @classes << cls newtag = cls.new @meta_tags = @meta_tags.find_all {|t| t.name != newtag.name } @meta_tags << newtag end end end end end lib/jsduck/options.rb +2 −41 Original line number Diff line number Diff line require 'optparse' require 'jsduck/meta_tag' require 'jsduck/author_tag' require 'jsduck/doc_author_tag' require 'jsduck/meta_tag_loader' module JsDuck Loading Loading @@ -118,44 +116,7 @@ module JsDuck def parse!(argv) create_option_parser.parse!(argv).each {|fname| read_filenames(fname) } validate load_meta_tags end # Instanciate all loaded MetaTag implementations def load_meta_tags # instantiate builtin meta tags @meta_tag_classes = MetaTag.descendants @meta_tag_classes.each do |cls| @meta_tags << cls.new end # Load user-defined meta-tags @meta_tag_paths.each do |path| if File.directory?(path) Dir[path+"/**/*.rb"].each do |file| require(file) init_remaining_meta_tags end else require(path) init_remaining_meta_tags end end end # Instantiates meta tag classes that haven't been instantiated # already. This is called after each meta-tags file is loaded so # that the list of meta-tags will be in order specified from # command line. def init_remaining_meta_tags MetaTag.descendants.each do |cls| if !@meta_tag_classes.include?(cls) @meta_tag_classes << cls newtag = cls.new @meta_tags = @meta_tags.find_all {|t| t.name != newtag.name } @meta_tags << newtag end end @meta_tags = MetaTagLoader.new.load(@meta_tag_paths) end def create_option_parser Loading Loading
lib/jsduck/meta_tag_loader.rb 0 → 100644 +48 −0 Original line number Diff line number Diff line require "jsduck/meta_tag" require 'jsduck/author_tag' require 'jsduck/doc_author_tag' module JsDuck # Loads user-defined meta-tags class MetaTagLoader # instatiates builtin meta tags def initialize @classes = MetaTag.descendants @meta_tags = @classes.map {|cls| cls.new } end # Loads user-defined meta-tags from given paths. # Returns list of meta-tag instances. def load(paths) paths.each do |path| if File.directory?(path) Dir[path+"/**/*.rb"].each do |file| require(file) init_remaining end else require(path) init_remaining end end @meta_tags end # Instantiates meta tag classes that haven't been instantiated # already. This is called after each meta-tags file is loaded so # that the list of meta-tags will be in order specified from # command line. def init_remaining MetaTag.descendants.each do |cls| if !@classes.include?(cls) @classes << cls newtag = cls.new @meta_tags = @meta_tags.find_all {|t| t.name != newtag.name } @meta_tags << newtag end end end end end
lib/jsduck/options.rb +2 −41 Original line number Diff line number Diff line require 'optparse' require 'jsduck/meta_tag' require 'jsduck/author_tag' require 'jsduck/doc_author_tag' require 'jsduck/meta_tag_loader' module JsDuck Loading Loading @@ -118,44 +116,7 @@ module JsDuck def parse!(argv) create_option_parser.parse!(argv).each {|fname| read_filenames(fname) } validate load_meta_tags end # Instanciate all loaded MetaTag implementations def load_meta_tags # instantiate builtin meta tags @meta_tag_classes = MetaTag.descendants @meta_tag_classes.each do |cls| @meta_tags << cls.new end # Load user-defined meta-tags @meta_tag_paths.each do |path| if File.directory?(path) Dir[path+"/**/*.rb"].each do |file| require(file) init_remaining_meta_tags end else require(path) init_remaining_meta_tags end end end # Instantiates meta tag classes that haven't been instantiated # already. This is called after each meta-tags file is loaded so # that the list of meta-tags will be in order specified from # command line. def init_remaining_meta_tags MetaTag.descendants.each do |cls| if !@meta_tag_classes.include?(cls) @meta_tag_classes << cls newtag = cls.new @meta_tags = @meta_tags.find_all {|t| t.name != newtag.name } @meta_tags << newtag end end @meta_tags = MetaTagLoader.new.load(@meta_tag_paths) end def create_option_parser Loading