get_file_data() public static method

Like core's get_file_data implementation, but caches the result.
public static get_file_data ( $file, $headers )
 /**
  * Load module data from module file. Headers differ from WordPress
  * plugin headers to avoid them being identified as standalone
  * plugins on the WordPress plugins page.
  */
 public static function get_module($module)
 {
     $headers = array('name' => 'Module Name', 'description' => 'Module Description', 'jumpstart_desc' => 'Jumpstart Description', 'sort' => 'Sort Order', 'recommendation_order' => 'Recommendation Order', 'introduced' => 'First Introduced', 'changed' => 'Major Changes In', 'deactivate' => 'Deactivate', 'free' => 'Free', 'requires_connection' => 'Requires Connection', 'auto_activate' => 'Auto Activate', 'module_tags' => 'Module Tags', 'feature' => 'Feature', 'additional_search_queries' => 'Additional Search Queries');
     $file = Jetpack::get_module_path(Jetpack::get_module_slug($module));
     $mod = Jetpack::get_file_data($file, $headers);
     if (empty($mod['name'])) {
         return false;
     }
     $mod['sort'] = empty($mod['sort']) ? 10 : (int) $mod['sort'];
     $mod['recommendation_order'] = empty($mod['recommendation_order']) ? 20 : (int) $mod['recommendation_order'];
     $mod['deactivate'] = empty($mod['deactivate']);
     $mod['free'] = empty($mod['free']);
     $mod['requires_connection'] = !empty($mod['requires_connection']) && 'No' == $mod['requires_connection'] ? false : true;
     if (empty($mod['auto_activate']) || !in_array(strtolower($mod['auto_activate']), array('yes', 'no', 'public'))) {
         $mod['auto_activate'] = 'No';
     } else {
         $mod['auto_activate'] = (string) $mod['auto_activate'];
     }
     if ($mod['module_tags']) {
         $mod['module_tags'] = explode(',', $mod['module_tags']);
         $mod['module_tags'] = array_map('trim', $mod['module_tags']);
         $mod['module_tags'] = array_map(array(__CLASS__, 'translate_module_tag'), $mod['module_tags']);
     } else {
         $mod['module_tags'] = array(self::translate_module_tag('Other'));
     }
     if ($mod['feature']) {
         $mod['feature'] = explode(',', $mod['feature']);
         $mod['feature'] = array_map('trim', $mod['feature']);
     } else {
         $mod['feature'] = array(self::translate_module_tag('Other'));
     }
     /**
      * Filters the feature array on a module.
      *
      * This filter allows you to control where each module is filtered: Recommended,
      * Jumpstart, and the default "Other" listing.
      *
      * @since 3.5.0
      *
      * @param array   $mod['feature'] The areas to feature this module:
      *     'Jumpstart' adds to the "Jumpstart" option to activate many modules at once.
      *     'Recommended' shows on the main Jetpack admin screen.
      *     'Other' should be the default if no other value is in the array.
      * @param string  $module The slug of the module, e.g. sharedaddy.
      * @param array   $mod All the currently assembled module data.
      */
     $mod['feature'] = apply_filters('jetpack_module_feature', $mod['feature'], $module, $mod);
     /**
      * Filter the returned data about a module.
      *
      * This filter allows overriding any info about Jetpack modules. It is dangerous,
      * so please be careful.
      *
      * @since 3.6.0
      *
      * @param array   $mod    The details of the requested module.
      * @param string  $module The slug of the module, e.g. sharedaddy
      * @param string  $file   The path to the module source file.
      */
     return apply_filters('jetpack_get_module', $mod, $module, $file);
 }
 /**
  * Load module data from module file. Headers differ from WordPress
  * plugin headers to avoid them being identified as standalone
  * plugins on the WordPress plugins page.
  */
 public static function get_module($module)
 {
     $headers = array('name' => 'Module Name', 'description' => 'Module Description', 'sort' => 'Sort Order', 'introduced' => 'First Introduced', 'changed' => 'Major Changes In', 'deactivate' => 'Deactivate', 'free' => 'Free', 'requires_connection' => 'Requires Connection', 'auto_activate' => 'Auto Activate', 'module_tags' => 'Module Tags');
     $file = Jetpack::get_module_path(Jetpack::get_module_slug($module));
     $mod = Jetpack::get_file_data($file, $headers);
     if (empty($mod['name'])) {
         return false;
     }
     $mod['name'] = translate($mod['name'], 'jetpack');
     $mod['description'] = translate($mod['description'], 'jetpack');
     $mod['sort'] = empty($mod['sort']) ? 10 : (int) $mod['sort'];
     $mod['deactivate'] = empty($mod['deactivate']);
     $mod['free'] = empty($mod['free']);
     $mod['requires_connection'] = !empty($mod['requires_connection']) && 'No' == $mod['requires_connection'] ? false : true;
     if (empty($mod['auto_activate']) || !in_array(strtolower($mod['auto_activate']), array('yes', 'no', 'public'))) {
         $mod['auto_activate'] = 'No';
     } else {
         $mod['auto_activate'] = (string) $mod['auto_activate'];
     }
     if ($mod['module_tags']) {
         $mod['module_tags'] = explode(',', $mod['module_tags']);
         $mod['module_tags'] = array_map('trim', $mod['module_tags']);
         $mod['module_tags'] = array_map(array(__CLASS__, 'translate_module_tag'), $mod['module_tags']);
     } else {
         $mod['module_tags'] = array(self::translate_module_tag('Other'));
     }
     return $mod;
 }