lib/veewee/provider/core/provider.rb in veewee-0.3.0.alpha6 vs lib/veewee/provider/core/provider.rb in veewee-0.3.0.alpha7

- old
+ new

@@ -10,10 +10,17 @@ attr_accessor :type attr_accessor :name include ::Veewee::Provider::Core::Helper::Shell + def ui + return @_ui if defined?(@_ui) + @_ui = @env.ui.dup + @_ui.resource = @name + @_ui + end + def initialize(name,options,env) @env=env @name=name @options=options @@ -27,11 +34,11 @@ require require_path # Get a real box object from the Provider box=Object.const_get("Veewee").const_get("Provider").const_get(type.to_s.capitalize).const_get("Box").new(name,env) rescue Error => ex - env.ui.error "Could not instante the box #{name} with provider #{type} ,#{ex}" + ui.error "Could not instante the box #{name} with provider #{type} ,#{ex}" raise end end def self.available? @@ -42,22 +49,22 @@ return false end end def gem_available?(gemname) - env.logger.info "Checking for gem #{gemname}" + env.logger.info "Checking for gem #{gemname}" + available=false + begin + available=true unless Gem::Specification::find_by_name("#{gemname}").nil? + rescue Gem::LoadError + env.logger.info "Error loading gem #{gemname}" available=false - begin - available=true unless Gem::Specification::find_by_name("#{gemname}").nil? - rescue Gem::LoadError - env.logger.info "Error loading gem #{gemname}" - available=false - rescue - env.logger.info "Falling back to old syntax for #{gemname}" - available=Gem.available?("#{gemname}") - env.logger.info "Old syntax #{gemname}.available? #{available}" - end - return available + rescue + env.logger.info "Falling back to old syntax for #{gemname}" + available=Gem.available?("#{gemname}") + env.logger.info "Old syntax #{gemname}.available? #{available}" + end + return available end def gems_available?(names) names.each do |gemname| return false if !gem_available?(gemname)