formulary: remove consts if loading failed
This commit is contained in:
		
							parent
							
								
									da9e42f312
								
							
						
					
					
						commit
						90e9d17789
					
				@ -60,6 +60,7 @@ module Formulary
 | 
				
			|||||||
      mod.const_set(:BUILD_FLAGS, flags)
 | 
					      mod.const_set(:BUILD_FLAGS, flags)
 | 
				
			||||||
      mod.module_eval(contents, path)
 | 
					      mod.module_eval(contents, path)
 | 
				
			||||||
    rescue NameError, ArgumentError, ScriptError, MethodDeprecatedError => e
 | 
					    rescue NameError, ArgumentError, ScriptError, MethodDeprecatedError => e
 | 
				
			||||||
 | 
					      remove_const(namespace)
 | 
				
			||||||
      raise FormulaUnreadableError.new(name, e)
 | 
					      raise FormulaUnreadableError.new(name, e)
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
    class_name = class_s(name)
 | 
					    class_name = class_s(name)
 | 
				
			||||||
@ -71,6 +72,7 @@ module Formulary
 | 
				
			|||||||
                      .map { |const_name| mod.const_get(const_name) }
 | 
					                      .map { |const_name| mod.const_get(const_name) }
 | 
				
			||||||
                      .select { |const| const.is_a?(Class) }
 | 
					                      .select { |const| const.is_a?(Class) }
 | 
				
			||||||
      new_exception = FormulaClassUnavailableError.new(name, path, class_name, class_list)
 | 
					      new_exception = FormulaClassUnavailableError.new(name, path, class_name, class_list)
 | 
				
			||||||
 | 
					      remove_const(namespace)
 | 
				
			||||||
      raise new_exception, "", e.backtrace
 | 
					      raise new_exception, "", e.backtrace
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user