Sha256: 836d04e8b0549db54be209d449e4b5967b60802edfd02d5500af919cd0afc491

Contents?: true

Size: 1.19 KB

Versions: 8

Compression:

Stored size: 1.19 KB

Contents

class PluginManager
  class PluginDefinition
    attr_accessor :name,
                  :version,
                  :object_string,
                  :file,
                  :dependencies,
                  :definition_file
                  
    def inspect1              
      "<Plugin #{name} #{version} depends:[#{(dependencies||[]).map{|dep| dep.join("")}.join(", ")}] #{required_files.length} files>"
    end
    
    def inspect
      inspect1
    end
    
    def required_files
      @required_files ||= []
    end
    
    def load_time
      @load_time
    end
    
    def load
      s = Time.now
      required_files.each {|file| $".delete(file) }
      load_file = File.expand_path(File.join(File.dirname(definition_file), file))
      $:.unshift(File.dirname(load_file))
      new_files = log_requires do
        require load_file
      end
      required_files.unshift(*new_files)
      if object.respond_to?(:loaded)
        object.loaded
      end
      @load_time = Time.now - s
    end
    
    def object
      eval(object_string)
    end
    
    private
    
    def log_requires
      before = $".dup 
      yield
      after = $".dup
      result = after - before
      result
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
redcar-0.5.2dev lib/plugin_manager/lib/plugin_manager/plugin_definition.rb
redcar-0.5.1dev lib/plugin_manager/lib/plugin_manager/plugin_definition.rb
redcar-0.4.1 lib/plugin_manager/lib/plugin_manager/plugin_definition.rb
redcar-0.4 lib/plugin_manager/lib/plugin_manager/plugin_definition.rb
redcar-0.3.10.1dev lib/plugin_manager/lib/plugin_manager/plugin_definition.rb
redcar-0.3.10.0dev lib/plugin_manager/lib/plugin_manager/plugin_definition.rb
redcar-0.3.9 lib/plugin_manager/lib/plugin_manager/plugin_definition.rb
redcar-0.3.9.0dev lib/plugin_manager/lib/plugin_manager/plugin_definition.rb