Browse Source

Merge remote-tracking branch 'digitalkaoz/issue_397'

Jordi Boggiano 12 years ago
parent
commit
c694bd57a3

+ 36 - 0
res/composer-schema.json

@@ -206,6 +206,42 @@
                     "description": "Occurs after a package has been uninstalled, contains one or more Class::method callables."
                 }
             }
+        },
+        "support": {
+            "type": "object",
+            "additionalProperties": true,
+            "properties": {
+                "email": {
+                    "type": "string",
+                    "description": "Email address of the community.",
+                    "format": "email"
+                },
+                "issues": {
+                    "type": "string",
+                    "description": "URL to the Issue Tracker.",
+                    "format": "uri"
+                },
+                "forum": {
+                    "type": "string",
+                    "description": "URL to the Forum.",
+                    "format": "uri"
+                },
+                "wiki": {
+                    "type": "string",
+                    "description": "URL to the Wiki.",
+                    "format": "uri"
+                },
+                "irc": {
+                    "type": "string",
+                    "description": "Irc support channel"
+                },
+                "source": {
+                    "type": "string",
+                    "description": "URL to the sources",
+                    "format": "uri"
+                }
+            }
         }
+
     }
 }

+ 7 - 0
src/Composer/Command/ShowCommand.php

@@ -170,6 +170,13 @@ EOT
         $output->writeln('<info>dist</info>     : ' . sprintf('[%s] <comment>%s</comment> %s', $package->getDistType(), $package->getDistUrl(), $package->getDistReference()));
         $output->writeln('<info>names</info>    : ' . implode(', ', $package->getNames()));
 
+        if ($package->getSupport()) {
+            $output->writeln("\n<info>support</info>");
+            foreach ($package->getSupport() as $type => $url) {
+                $output->writeln('<comment>' . $type . '</comment> : '.$url);
+            }
+        }
+
         if ($package->getAutoload()) {
             $output->writeln("\n<info>autoload</info>");
             foreach ($package->getAutoload() as $type => $autoloads) {

+ 4 - 0
src/Composer/Package/AliasPackage.php

@@ -303,6 +303,10 @@ class AliasPackage extends BasePackage
     {
         return $this->aliasOf->getAuthors();
     }
+    public function getSupport()
+    {
+        return $this->aliasOf->getSupport();
+    }
     public function __toString()
     {
         return parent::__toString().' (alias of '.$this->aliasOf->getVersion().')';

+ 1 - 0
src/Composer/Package/Dumper/ArrayDumper.php

@@ -37,6 +37,7 @@ class ArrayDumper
             'autoload',
             'repositories',
             'includePaths' => 'include-path',
+            'support',
         );
 
         $data = array();

+ 4 - 0
src/Composer/Package/Loader/ArrayLoader.php

@@ -184,6 +184,10 @@ class ArrayLoader
             $package->setIncludePaths($config['include-path']);
         }
 
+        if (isset($config['support'])) {
+            $package->setSupport($config['support']);
+        }
+
         return $package;
     }
 

+ 21 - 0
src/Composer/Package/MemoryPackage.php

@@ -61,6 +61,7 @@ class MemoryPackage extends BasePackage
     protected $suggests = array();
     protected $autoload = array();
     protected $includePaths = array();
+    protected $support = array();
 
     /**
      * Creates a new in memory package.
@@ -691,4 +692,24 @@ class MemoryPackage extends BasePackage
     {
         return $this->includePaths;
     }
+
+    /**
+     * Set the support information
+     *
+     * @param array $support
+     */
+    public function setSupport(array $support)
+    {
+        $this->support = $support;
+    }
+
+    /**
+     * Returns the support information
+     *
+     * @return array
+     */
+    public function getSupport()
+    {
+        return $this->support;
+    }
 }