Browse files

Remove the duplication when creating Converters and Generators

Encapsulate it in a method and give the method the class to walk the
subclass tree for to create new objects.
  • Loading branch information...
1 parent 7425b2c commit 10ee5c8999626ce91746c3720f6051475e3e58d0 @mattr- mattr- committed with parkr Mar 16, 2013
Showing with 17 additions and 11 deletions.
  1. +17 −11 lib/jekyll/site.rb
View
28 lib/jekyll/site.rb
@@ -88,17 +88,8 @@ def setup
end
end
- self.converters = Jekyll::Converter.subclasses.select do |c|
- !self.safe || c.safe
- end.map do |c|
- c.new(self.config)
- end
-
- self.generators = Jekyll::Generator.subclasses.select do |c|
- !self.safe || c.safe
- end.map do |c|
- c.new(self.config)
- end
+ self.converters = instantiate_subclasses(Jekyll::Converter)
+ self.generators = instantiate_subclasses(Jekyll::Generator)
end
# Internal: Setup the plugin search path
@@ -388,6 +379,21 @@ def getConverterImpl(klass)
end
end
+ # Create array of instances of the subclasses of the class or module
+ # passed in as argument.
+ #
+ # klass - class or module containing the subclasses which should be
+ # instantiated
+ #
+ # Returns array of instances of subclasses of parameter
+ def instantiate_subclasses(klass)
+ klass.subclasses.select do |c|
+ !self.safe || c.safe
+ end.map do |c|
+ c.new(self.config)
+ end
+ end
+
# Read the entries from a particular directory for processing
#
# dir - The String relative path of the directory to read

0 comments on commit 10ee5c8

Please sign in to comment.