lib/slideshow/cli/runner.rb in slideshow-1.2.0.beta1 vs lib/slideshow/cli/runner.rb in slideshow-1.2.0.beta2

- old
+ new

@@ -1,9 +1,11 @@ module Slideshow class Runner + include PluginHelper + def initialize @logger = Logger.new(STDOUT) @logger.level = Logger::INFO @opts = Opts.new @@ -12,29 +14,10 @@ end attr_reader :logger, :opts, :config, :headers - def load_plugins - patterns = [] - patterns << "#{config.config_dir}/lib/**/*.rb" - patterns << 'lib/**/*.rb' unless Slideshow.root == File.expand_path( '.' ) # don't include lib if we are in repo (don't include slideshow/lib) - - patterns.each do |pattern| - pattern.gsub!( '\\', '/') # normalize path; make sure all path use / only - Dir.glob( pattern ) do |plugin| - begin - puts "Loading plugins in '#{plugin}'..." - require( plugin ) - rescue Exception => e - puts "** error: failed loading plugins in '#{plugin}': #{e}" - end - end - end - end # method load_plugins - - def find_file_with_known_extension( fn ) dirname = File.dirname( fn ) basename = File.basename( fn, '.*' ) extname = File.extname( fn ) logger.debug "dirname=#{dirname}, basename=#{basename}, extname=#{extname}" @@ -113,13 +96,14 @@ end cmd.on( '-g', '--generate', 'Generate Slide Show Templates (using built-in S6 Pack)' ) { opts.generate = true } ## fix:/todo: add generator for quickstart - cmd.on( '-q', '--quick', 'Generate Quickstart Slide Show Sample') { } - + cmd.on( '-q', '--quick', 'Generate Quickstart Slide Show Sample') { opts.quick = true } + cmd.on( '-p', '--plugins', '(Debug) List Plugin Scripts in Load Path' ) { opts.plugins = true } + cmd.on( '-v', '--version', "Show version" ) do puts Slideshow.generator exit end @@ -163,11 +147,15 @@ puts Slideshow.generator if opts.list? List.new( logger, opts, config ).run ### todo: remove opts (merge access into config) + elsif opts.plugins? + Plugins.new( logger, opts, config ).run ### todo: remove opts (merge access into config) elsif opts.generate? GenTemplates.new( logger, opts, config ).run ### todo: remove opts + elsif opts.quick? + Quick.new( logger, opts, config ).run ### todo: remove opts elsif opts.fetch? Fetch.new( logger, opts, config ).run ### todo: remove opts else load_plugins # check for optional plugins/extension in ./lib folder \ No newline at end of file