class Crabfarm::Strategies::Loader
Public Class Methods
new(_name, _klass, _options={})
click to toggle source
# File lib/crabfarm/strategies.rb, line 5 def initialize(_name, _klass, _options={}) @name = _name @klass = _klass @pkg = if _options.key? :require _options[:require] elsif @klass.is_a? String Utils::Naming.route_from_constant(@klass).join('/') else nil end @requirements = Array(_options[:dependencies]) if _options.key? :dependencies end
Public Instance Methods
load()
click to toggle source
# File lib/crabfarm/strategies.rb, line 18 def load load_requirements unless @requirements.nil? require @pkg if @pkg if @klass.is_a? String then Object.const_get @klass else @klass end end
Private Instance Methods
load_requirements()
click to toggle source
# File lib/crabfarm/strategies.rb, line 26 def load_requirements @requirements.each do |dep| begin require dep # TODO: check dependency version! rescue LoadError raise ConfigurationError.new "Could not find #{@name} dependency, maybe you forgot to add `gem \"#{dep}\"` to the crawler's Gemfile?" end end end