original_string: public static function blueprint( $data, $path ) 
  	{
  		
  		if ( !is_array( $data ) )
  		{
  			throw new \InvalidArgumentException( "CCOrbit_Ship::blueprint - first argument has to be an array." );
  		}
  		
  		$ship = new static();
  		
  		$name = $data['name'];
  		$namespace = $data['namespace'];
  		
  		// check if we have a name if not use dir name
  		if ( is_null( $name ) ) {
  			$name = basename( $path );
  		}
  		
  		// get ship namespace
  		if ( $namespace === true ) {
  			$namespace = $name;
  		}
  		
  		// try to load other ship class
  		if ( is_string( $namespace ) ) 
  		{
  			
  			// register the namespace
  			\CCFinder::bundle( $namespace, $path );
  			
  			$class = $namespace.'\\Ship';
  			
  			if ( class_exists( $class ) ) 
  			{
  				$ship = new $class();
  			}
  		}
  		
  		// set the path
  		$ship->name = $name;
  		$ship->path = $path;
  		$ship->namespace = $namespace;
  		
  		// assign the data
  		foreach( $data as $key => $item ) 
  		{
  			if ( property_exists( $ship, $key ) ) 
  			{
  				$ship->$key = $item;
  			}
  		}
  		
  		// check the namespace
  		if ( $ship->namespace === false ) 
  		{
  			if ( is_null( $ship->wake ) ) 
  			{
  				$ship->wake = 'shipyard/wake'.EXT;
  			}
  			if ( is_null( $ship->install ) ) 
  			{
  				$ship->install = 'shipyard/install'.EXT;
  			}
  			if ( is_null( $ship->uninstall ) ) 
  			{
  				$ship->uninstall = 'shipyard/uninstall'.EXT;
  			}
  		} 
  		elseif ( is_string( $ship->namespace ) ) 
  		{
  			if ( is_null( $ship->wake ) ) 
  			{
  				$ship->wake = 'Ship::wake';
  			}
  			if ( is_null( $ship->install ) ) 
  			{
  				$ship->install = 'Ship::install';
  			}
  			if ( is_null( $ship->uninstall ) ) 
  			{
  				$ship->uninstall = 'Ship::uninstall';
  			}
  		}
  		
  		return $ship;
  	}
code: public static function blueprint( $data, $path ) 
  	{
  		
  		if ( !is_array( $data ) )
  		{
  			throw new \InvalidArgumentException( "CCOrbit_Ship::blueprint - first argument has to be an array." );
  		}
  		
  		$ship = new static();
  		
  		$name = $data['name'];
  		$namespace = $data['namespace'];
  		
  		// check if we have a name if not use dir name
  		if ( is_null( $name ) ) {
  			$name = basename( $path );
  		}
  		
  		// get ship namespace
  		if ( $namespace === true ) {
  			$namespace = $name;
  		}
  		
  		// try to load other ship class
  		if ( is_string( $namespace ) ) 
  		{
  			
  			// register the namespace
  			\CCFinder::bundle( $namespace, $path );
  			
  			$class = $namespace.'\\Ship';
  			
  			if ( class_exists( $class ) ) 
  			{
  				$ship = new $class();
  			}
  		}
  		
  		// set the path
  		$ship->name = $name;
  		$ship->path = $path;
  		$ship->namespace = $namespace;
  		
  		// assign the data
  		foreach( $data as $key => $item ) 
  		{
  			if ( property_exists( $ship, $key ) ) 
  			{
  				$ship->$key = $item;
  			}
  		}
  		
  		// check the namespace
  		if ( $ship->namespace === false ) 
  		{
  			if ( is_null( $ship->wake ) ) 
  			{
  				$ship->wake = 'shipyard/wake'.EXT;
  			}
  			if ( is_null( $ship->install ) ) 
  			{
  				$ship->install = 'shipyard/install'.EXT;
  			}
  			if ( is_null( $ship->uninstall ) ) 
  			{
  				$ship->uninstall = 'shipyard/uninstall'.EXT;
  			}
  		} 
  		elseif ( is_string( $ship->namespace ) ) 
  		{
  			if ( is_null( $ship->wake ) ) 
  			{
  				$ship->wake = 'Ship::wake';
  			}
  			if ( is_null( $ship->install ) ) 
  			{
  				$ship->install = 'Ship::install';
  			}
  			if ( is_null( $ship->uninstall ) ) 
  			{
  				$ship->uninstall = 'Ship::uninstall';
  			}
  		}
  		
  		return $ship;
  	}
code_tokens: public static function blueprint ( $ data , $ path ) { if ( ! is_array ( $ data ) ) { throw new \ InvalidArgumentException ( "CCOrbit_Ship::blueprint - first argument has to be an array." ) ; } $ ship = new static ( ) ; $ name = $ data [ 'name' ] ; $ namespace = $ data [ 'namespace' ] ; // check if we have a name if not use dir name if ( is_null ( $ name ) ) { $ name = basename ( $ path ) ; } // get ship namespace if ( $ namespace === true ) { $ namespace = $ name ; } // try to load other ship class if ( is_string ( $ namespace ) ) { // register the namespace \ CCFinder :: bundle ( $ namespace , $ path ) ; $ class = $ namespace . '\\Ship' ; if ( class_exists ( $ class ) ) { $ ship = new $ class ( ) ; } } // set the path $ ship -> name = $ name ; $ ship -> path = $ path ; $ ship -> namespace = $ namespace ; // assign the data foreach ( $ data as $ key => $ item ) { if ( property_exists ( $ ship , $ key ) ) { $ ship -> $ key = $ item ; } } // check the namespace if ( $ ship -> namespace === false ) { if ( is_null ( $ ship -> wake ) ) { $ ship -> wake = 'shipyard/wake' . EXT ; } if ( is_null ( $ ship -> install ) ) { $ ship -> install = 'shipyard/install' . EXT ; } if ( is_null ( $ ship -> uninstall ) ) { $ ship -> uninstall = 'shipyard/uninstall' . EXT ; } } elseif ( is_string ( $ ship -> namespace ) ) { if ( is_null ( $ ship -> wake ) ) { $ ship -> wake = 'Ship::wake' ; } if ( is_null ( $ ship -> install ) ) { $ ship -> install = 'Ship::install' ; } if ( is_null ( $ ship -> uninstall ) ) { $ ship -> uninstall = 'Ship::uninstall' ; } } return $ ship ; }
docstring: create new ship with given data
  
  @param array 				$data
  @return CCOrbit_Ship
docstring_tokens: create new ship with given data