public static function populateFromAsset(AssetFileModel $asset)
 {
     if ($asset->kind === 'json' && strpos($asset->filename, EmbeddedAssetsPlugin::getFileNamePrefix(), 0) === 0) {
         try {
             $rawData = craft()->embeddedAssets->readAssetFile($asset);
             if ($rawData) {
                 $data = JsonHelper::decode($rawData);
                 if ($data['__embeddedasset__']) {
                     unset($data['__embeddedasset__']);
                     $embed = new EmbeddedAssetsModel();
                     $embed->id = $asset->id;
                     foreach ($embed->attributeNames() as $key) {
                         if (isset($data[$key])) {
                             $embed->{$key} = $data[$key];
                         }
                     }
                     // For embedded assets saved with version 0.2.1 or below, this will provide a usable fallback
                     if (empty($embed->requestUrl)) {
                         $embed->requestUrl = $embed->url;
                     }
                     return $embed;
                 }
             }
         } catch (\Exception $e) {
             EmbeddedAssetsPlugin::log("Error reading embedded asset data on asset {$asset->id} (\"{$e->getMessage()}\")", LogLevel::Error);
             return null;
         }
     }
     return null;
 }