class Middleman::Blog::SimilarExtension
Public Instance Methods
after_configuration()
click to toggle source
# File lib/middleman-blog-similar/extension.rb, line 14 def after_configuration require 'middleman-blog/blog_article' ::Middleman::Sitemap::Resource.send :include, Middleman::Blog::Similar::BlogArticleExtensions @taggers = [] case options.tagger when String, Symbol @taggers << [1, load_tagger(options.tagger)] when Hash options.tagger.each do |k, v| if v.is_a?(Array) k = v[1] v = v[0] end @taggers << [v, load_tagger(k)] end else raise "Invalid type for tagger option: #{options.tagger.class}" end db_path = options.db db_path = File.expand_path(options.db, app.root) if db_path != ':memory:' @db = Middleman::Blog::Similar::Database.new db_path, @taggers @resource_list_manipulator = Middleman::Blog::Similar::ResourceListManipulator.new app, @db @app.sitemap.register_resource_list_manipulator :blog_similar, @resource_list_manipulator end
load_tagger(tagger)
click to toggle source
# File lib/middleman-blog-similar/extension.rb, line 40 def load_tagger(tagger) return tagger unless tagger.is_a?(String) || tagger.is_a?(Symbol) require "middleman-blog-similar/tagger/#{tagger}" ns = ::Middleman::Blog::Similar::Tagger tagger.to_s.split('/').each do |n| ns = ns.const_get n.camelize end ns.new rescue LoadError => e app.logger.error "Requested similar tagger '#{tagger}' not found." raise e end