Hello community,

here is the log from the commit of package php5-pear-Horde_Service_Twitter for 
openSUSE:Factory checked in at 2015-01-20 19:02:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/php5-pear-Horde_Service_Twitter (Old)
 and      /work/SRC/openSUSE:Factory/.php5-pear-Horde_Service_Twitter.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "php5-pear-Horde_Service_Twitter"

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/php5-pear-Horde_Service_Twitter/php5-pear-Horde_Service_Twitter.changes
  2012-11-28 14:54:52.000000000 +0100
+++ 
/work/SRC/openSUSE:Factory/.php5-pear-Horde_Service_Twitter.new/php5-pear-Horde_Service_Twitter.changes
     2015-01-20 19:02:51.000000000 +0100
@@ -1,0 +2,38 @@
+Sun Jan 18 11:42:17 UTC 2015 - Ralf Lang <l...@b1-systems.de>
+
+- Version 2.1.2
+
+- [jan] Add Composer definition.
+
+-------------------------------------------------------------------
+Tue Jul 16 21:14:07 UTC 2013 - Ralf Lang <l...@b1-systems.de>
+
+- Version 2.1.1
+- [mjr] Fix fetching user mentions.
+
+-------------------------------------------------------------------
+Wed Jul  3 11:33:32 UTC 2013 - Ralf Lang <l...@b1-systems.de>
+
+- Version 2.1.0
+- [mjr] Use API version 1.1
+- [mjr] Add support for favorites.
+
+-------------------------------------------------------------------
+Thu May  2 07:03:05 UTC 2013 - Ralf Lang <l...@b1-systems.de>
+
+- Version 2.0.3
+- [mjr] Fix initial authentication for recently changed Twitter API 
requirements (Bug #12165).
+
+-------------------------------------------------------------------
+Tue Mar  5 19:52:52 UTC 2013 - Ralf Lang <l...@b1-systems.de>
+
+- Version 2.0.2
+- [jan] Fix examples location.
+
+-------------------------------------------------------------------
+Wed Jan  9 17:11:51 UTC 2013 - Ralf Lang <l...@b1-systems.de>
+
+- Version 2.0.1
+- [jan] Re-packaged 2.0.0 release.
+
+-------------------------------------------------------------------

Old:
----
  Horde_Service_Twitter-2.0.0.tgz

New:
----
  Horde_Service_Twitter-2.1.2.tgz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ php5-pear-Horde_Service_Twitter.spec ++++++
--- /var/tmp/diff_new_pack.U9YjwP/_old  2015-01-20 19:02:52.000000000 +0100
+++ /var/tmp/diff_new_pack.U9YjwP/_new  2015-01-20 19:02:52.000000000 +0100
@@ -24,7 +24,7 @@
 Group:          Development/Libraries/PHP
 
 Name:           php5-pear-Horde_Service_Twitter
-Version:        2.0.0
+Version:        2.1.2
 Release:        0
 Source0:        http://pear.horde.org/get/Horde_Service_Twitter-%{version}.tgz
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build

++++++ Horde_Service_Twitter-2.0.0.tgz -> Horde_Service_Twitter-2.1.2.tgz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/COPYING 
new/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/COPYING
--- old/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/COPYING   
1970-01-01 01:00:00.000000000 +0100
+++ new/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/COPYING   
2015-01-09 12:30:55.000000000 +0100
@@ -0,0 +1,24 @@
+        Copyright 1999-2015 Horde LLC.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ - Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE HORDE PROJECT
+OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/examples/twitter_browser.php
 
new/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/examples/twitter_browser.php
--- 
old/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/examples/twitter_browser.php
      1970-01-01 01:00:00.000000000 +0100
+++ 
new/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/examples/twitter_browser.php
      2015-01-09 12:30:55.000000000 +0100
@@ -0,0 +1,84 @@
+<?php
+/**
+ * Callback page for Twitter integration.
+ *
+ * Copyright 2009-2015 Horde LLC (http://www.horde.org/)
+ *
+ * @author   Jan Schneider <j...@horde.org>
+ * @author   Michael J. Rubinsky <mrubi...@horde.org>
+ * @license  http://www.horde.org/licenses/bsd BSD
+ * @category Horde
+ * @package  Service_Twitter
+ */
+
+require_once __DIR__ . '/../lib/base.php';
+
+/* Keys - these are obtained when registering for the service */
+$consumer_key = '********';
+$consumer_secret = '*********';
+
+/* Used to obtain an unprivileged request token */
+$token_url = 'http://twitter.com/oauth/request_token';
+
+/* Used for allowing the user to allow/deny access to the application */
+// (User is redirected to this URL if needed).
+$auth_url = 'http://twitter.com/oauth/authorize';
+
+// Used to obtain an access token after user authorizes the application
+$accessToken_url = 'http://twitter.com/oauth/access_token';
+
+/* Parameters required for the Horde_Oauth_Consumer */
+$params = array('key' => $consumer_key,
+                'secret' => $consumer_secret,
+                'requestTokenUrl' => $token_url,
+                'authorizeTokenUrl' => $auth_url,
+                'accessTokenUrl' => $accessToken_url,
+                'signatureMethod' => new 
Horde_Oauth_SignatureMethod_HmacSha1());
+
+/* Create the Consumer */
+$oauth = new Horde_Oauth_Consumer($params);
+
+/* Create the Twitter client */
+$twitter = new Horde_Service_Twitter(array('oauth' => $oauth,
+                                           'request' => new 
Horde_Controller_Request_Http()));
+/* At this point we would check for an existing, valid authorization token */
+// $auth_token should be a Horde_Oauth_Token object
+// $auth_token = getTokenFromStorage();
+
+// Do we have a good auth token? Keep in mind this is example code, and in a 
true
+// callback page we probably wouldn't be doing anything if we already have a 
token,
+// but for testing purposes....
+if (!empty($auth_token)) {
+    /* Have a token, tell the Twitter client about it */
+    $twitter->auth->setToken($auth_token);
+
+    // Do something cool....
+    // $twitter->statuses->update('Testing Horde/Twitter integration');
+
+} elseif (!empty($_SESSION['twitter_request_secret'])) {
+    /* No existing auth token, maybe we are in the process of getting it? */
+    $a_token = $twitter->auth->getAccessToken(new 
Horde_Controller_Request_Http(),
+                                              
$_SESSION['twitter_request_secret']);
+
+    // Clear the request secret from the session now that we're done with it,
+    // again, using _SESSION for simplicity for this example
+    $_SESSION['twitter_request_secret'] = '';
+
+    if ($a_token === false || empty($a_token)) {
+        // We had a request secret, but something went wrong. maybe navigated
+        // back here between requests?
+        echo 'error';
+        die;
+    } else {
+        // We have a good token, save it to DB etc....
+        var_dump($a_token);
+        die;
+    }
+}
+
+// No auth token, not in the process of getting one...ask user to verify
+$results = $twitter->auth->getRequestToken();
+$_SESSION['twitter_request_secret'] = $results->secret;
+
+// Redirect to auth url
+Horde::externalUrl($twitter->auth->getUserAuthorizationUrl($results), 
false)->redirect();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/examples/twitter_cli.php
 
new/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/examples/twitter_cli.php
--- 
old/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/examples/twitter_cli.php
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/examples/twitter_cli.php
  2015-01-09 12:30:55.000000000 +0100
@@ -0,0 +1,36 @@
+#!/usr/bin/env php
+<?php
+/**
+ * Simple Twitter client.
+ *
+ * Copyright 2009-2015 Horde LLC (http://www.horde.org/)
+ *
+ * @author   Jan Schneider <j...@horde.org>
+ * @author   Michael J. Rubinsky <mrubi...@horde.org>
+ * @license  http://www.horde.org/licenses/bsd BSD
+ * @category Horde
+ * @package  Service_Twitter
+ */
+
+/* Keys - these are obtained when registering for the service */
+$keys = array(
+    'consumer_key'        => '*****',
+    'consumer_secret'     => '*****',
+    'access_token'        => '*****-*****',
+    'access_token_secret' => '*****'
+);
+
+/* Enable autoloading. */
+require 'Horde/Autoloader/Default.php';
+
+/* Create the Twitter client */
+$twitter = Horde_Service_Twitter::create(array('oauth' => $keys));
+
+/* Do something cool.... */
+try {
+    $result = $twitter->statuses->update('Testing Horde/Twitter integration 
2');
+    print_r(Horde_Serialize::unserialize($result, Horde_Serialize::JSON));
+} catch (Horde_Service_Twitter_Exception $e) {
+    $error = Horde_Serialize::unserialize($e->getMessage(), 
Horde_Serialize::JSON);
+    echo "$error->error\n";
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Account.php 
new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Account.php
--- old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Account.php       
1970-01-01 01:00:00.000000000 +0100
+++ new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Account.php       
2015-01-09 12:30:55.000000000 +0100
@@ -0,0 +1,105 @@
+<?php
+/**
+ * Horde_Service_Twitter_Account class for calling account methods
+ *
+ * Copyright 2009-2015 Horde LLC (http://www.horde.org/)
+ *
+ * @author Michael J. Rubinsky <mrubi...@horde.org>
+ * @license  http://www.horde.org/licenses/bsd BSD
+ * @category Horde
+ * @package Service_Twitter
+ */
+class Horde_Service_Twitter_Account
+{
+    /**
+     * Twitter endpoint for account api calls
+     *
+     * @var string
+     */
+    protected $_endpoint = 'https://api.twitter.com/1.1/account/';
+
+    /**
+     * The request/response format to use, xml or json.
+     *
+     * @var string
+     */
+    protected $_format = 'json';
+
+    /**
+     *
+     * @param Horde_Service_Twitter $twitter
+     */
+    public function __construct($twitter)
+    {
+        $this->_twitter = $twitter;
+    }
+
+    /**
+     * Used to verify current credentials, and obtain some basic profile
+     * information about the current user.
+     *
+     * 
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-account%C2%A0verify_credentials
+     *
+     * @return string  JSON reprentation of profile.
+     * @throws Horde_Service_Twitter_Exception
+     */
+    public function verifyCredentials()
+    {
+        $url = $this->_endpoint . 'verify_credentials.' . $this->_format;
+        return $this->_twitter->request->get($url);
+    }
+
+    /**
+     * Obtain the current user's (if authenticated) or IP address' (if not
+     * authenticated) remaining number of requests left for the hour.
+     *
+     * 
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-account%C2%A0rate_limit_status
+     *
+     * @return string  JSON representation of result object.
+     */
+    public function rateLimitStatus()
+    {
+        $url = $this->_endpoint . 'rate_limit_status.' . $this->_format;
+        return $this->_twitter->request->get($url);
+    }
+
+    /**
+     * Ends the current session, invalidates the current auth token if using
+     * OAuth.
+     *
+     * @return string
+     */
+    public function endSession()
+    {
+        $url = $this->_endpoint . 'end_session.' . $this->_format;
+        return $this->_twitter->request->post($url);
+    }
+
+    /**
+     * Update/reset where twitter sends automatic updates to
+     * (im/sms etc...)
+     *
+     * @TODO
+     * @param string $device
+     *
+     * @return void
+     */
+    public function updateDeliveryDevice($device = '')
+    {
+    }
+
+    /**
+     * Update user's profile data.
+     *
+     * 
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-account%C2%A0update_profile
+     *
+     * @TODO
+     * @param array $profile  Profile data see API docs for key-values
+     *
+     * @return string  JSON representation of user's updated profile data
+     */
+    public function updateProfile($profile)
+    {
+    }
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Auth/Oauth.php 
new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Auth/Oauth.php
--- old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Auth/Oauth.php    
1970-01-01 01:00:00.000000000 +0100
+++ new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Auth/Oauth.php    
2015-01-09 12:30:55.000000000 +0100
@@ -0,0 +1,96 @@
+<?php
+/**
+ * Horde_Service_Twitter_Auth class to abstract all auth related tasks
+ *
+ * Basically implements Horde_Oauth_Client and passes the calls along to the
+ * protected oauth object.
+ *
+ * Copyright 2009-2015 Horde LLC (http://www.horde.org/)
+ *
+ * @author Michael J. Rubinsky <mrubi...@horde.org>
+ * @license  http://www.horde.org/licenses/bsd BSD
+ * @category Horde
+ * @package Service_Twitter
+ */
+class Horde_Service_Twitter_Auth_Oauth extends Horde_Service_Twitter_Auth
+{
+    /**
+     *
+     * @var Horde_OAuth_Token
+     */
+    protected $_token;
+
+    public function __construct(Horde_OAuth_Consumer $oauth)
+    {
+        $this->_config['oauth'] = $oauth;
+    }
+
+    /**
+     * Obtain the URL used to get an authorization token.
+     *
+     * @param Horde_Oauth_Token $requestToken The request token
+     *
+     * @return string  The Url
+     */
+    public function getUserAuthorizationUrl($requestToken)
+    {
+        return $this->oauth->getUserAuthorizationUrl($requestToken);
+    }
+
+    /**
+     * Set the access token
+     *
+     * @param Horde_OAuth_Token $token
+     */
+    public function setToken(Horde_OAuth_Token $token)
+    {
+        $this->_token = $token;
+    }
+
+    /**
+     * Obtain the access token. This is the token that should be persisted to
+     * storage.
+     *
+     * @param Horde_Controller_Request_Http     Http request object
+     * @param string $requestSecret             The token secret returned by
+     *                                          Twitter after the user 
authorizes
+     *                                          the application.
+     * @return Horde_Oauth_Token
+     * @throws Horde_Service_Twitter_Exception
+     */
+    public function getAccessToken(Horde_Controller_Request_Http $request, 
$requestSecret = null)
+    {
+        if (!empty($this->_token)) {
+            return $this->_token;
+        }
+
+        $params = $request->getGetVars();
+        if (empty($params['oauth_token'])) {
+            return false;
+        }
+        $token = new Horde_Oauth_Token($params['oauth_token'], $requestSecret);
+        try {
+            return $this->oauth->getAccessToken($token, array('oauth_verifier' 
=> $requestSecret));
+        } catch (Horde_Oauth_Exception $e) {
+            throw new Horde_Service_Twitter_Exception($e->getMessage());
+        }
+    }
+
+    /**
+     * Obtain the OAuth request token
+     *
+     * @param array $params
+     *
+     * @return  Horde_OAuth_Token  The request token
+     * @throws Horde_Service_Twitter_Exception
+     */
+    public function getRequestToken($params = array())
+    {
+        try {
+            return $this->oauth->getRequestToken($params);
+        } catch (Horde_Oauth_Exception $e) {
+            throw new Horde_Service_Twitter_Exception($e->getMessage());
+        }
+    }
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Auth.php 
new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Auth.php
--- old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Auth.php  
1970-01-01 01:00:00.000000000 +0100
+++ new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Auth.php  
2015-01-09 12:30:55.000000000 +0100
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Horde_Service_Twitter_Auth_* classes to abstract all auth related tasks for
+ * various auth mechanisms.
+ *
+ * Copyright 2009-2015 Horde LLC (http://www.horde.org/)
+ *
+ * @author Michael J. Rubinsky <mrubi...@horde.org>
+ * @license  http://www.horde.org/licenses/bsd BSD
+ * @category Horde
+ * @package Service_Twitter
+ */
+abstract class Horde_Service_Twitter_Auth
+{
+    /**
+     *
+     * @var Horde_Service_Twitter
+     */
+    protected $_twitter;
+
+    /**
+     * Configuration parameters
+     *
+     * @param array
+     */
+    protected $_config;
+
+
+    public function setTwitter(Horde_Service_Twitter $twitter)
+    {
+        $this->_twitter = $twitter;
+    }
+
+    /**
+     * Getter
+     *
+     * @param string $value
+     *
+     * @return mixed  The value of the requested property.
+     * @throws Horde_Service_Twitter_Exception
+     */
+    public function __get($value)
+    {
+        if (!empty($this->_config[$value])) {
+            return $this->_config[$value];
+        }
+
+        throw new Horde_Service_Twitter_Exception(sprintf("The property %s 
does not exist", $value));
+    }
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Exception.php 
new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Exception.php
--- old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Exception.php     
1970-01-01 01:00:00.000000000 +0100
+++ new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Exception.php     
2015-01-09 12:30:55.000000000 +0100
@@ -0,0 +1,13 @@
+<?php
+/**
+ *
+ * Copyright 2009-2015 Horde LLC (http://www.horde.org/)
+ *
+ * @author Michael J. Rubinsky <mrubi...@horde.org>
+ * @license  http://www.horde.org/licenses/bsd BSD
+ * @category Horde
+ * @package Service_Twitter
+ */
+class Horde_Service_Twitter_Exception extends Horde_Exception_Wrapped
+{
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Favorites.php 
new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Favorites.php
--- old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Favorites.php     
1970-01-01 01:00:00.000000000 +0100
+++ new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Favorites.php     
2015-01-09 12:30:55.000000000 +0100
@@ -0,0 +1,75 @@
+<?php
+/**
+ * Horde_Service_Twitter_Favorites class for updating favorite tweets.
+ *
+ * Copyright 2009-2015 Horde LLC (http://www.horde.org/)
+ *
+ * @author Michael J Rubinsky <mrubi...@horde.org>
+ * @license  http://www.horde.org/licenses/bsd BSD
+ * @category Horde
+ * @package Service_Twitter
+ */
+class Horde_Service_Twitter_Favorites
+{
+    /**
+     * Endpoint for status api requests
+     *
+     * @var string
+     */
+    private $_endpoint = 'https://api.twitter.com/1.1/favorites/';
+
+    /**
+     * Format to use json or xml
+     *
+     * @var string
+     */
+    private $_format = 'json';
+
+    /**
+     * Constructor
+     *
+     * @param Horde_Service_Twitter $twitter
+     */
+    public function __construct($twitter)
+    {
+        $this->_twitter = $twitter;
+    }
+
+    /**
+     * Obtain the requested status
+     *
+     * @return string  The method call results.
+     */
+    public function get()
+    {
+        $url = $this->_endpoint . 'list.' . $this->_format;
+        return $this->_twitter->request->post($url);
+    }
+
+    /**
+     * Destroy the specified favorite.
+     *
+     * @param string $id  The status id
+     *
+     * @return string
+     */
+    public function destroy($id)
+    {
+        $url = $this->_endpoint . 'destroy.' . $this->_format;
+        return $this->_twitter->request->post($url, array('id' => $id));
+    }
+
+    /**
+     * Add a new favorite
+     *
+     * @param string $id  The status id
+     *
+     * @return string  The favorited tweet.
+     */
+    public function create($id)
+    {
+        $url = $this->_endpoint . 'create.' . $this->_format;
+        return $this->_twitter->request->post($url, array('id' => $id));
+    }
+
+}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Request/Oauth.php 
new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Request/Oauth.php
--- old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Request/Oauth.php 
1970-01-01 01:00:00.000000000 +0100
+++ new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Request/Oauth.php 
2015-01-09 12:30:55.000000000 +0100
@@ -0,0 +1,84 @@
+<?php
+/**
+ * Horde_Service_Twitter_Request_Oauth class wraps sending requests to 
Twitter's
+ * REST API using OAuth authentication.
+ *
+ * Copyright 2009-2015 Horde LLC (http://www.horde.org/)
+ *
+ * @author Michael J. Rubinsky <mrubi...@horde.org>
+ * @license  http://www.horde.org/licenses/bsd BSD
+ * @category Horde
+ * @package Service_Twitter
+ */
+class Horde_Service_Twitter_Request_Oauth extends Horde_Service_Twitter_Request
+{
+    /**
+     * Perform a GET request with OAuth authorization.
+     *
+     * @param mixed (string | Horde_Url) $url  The url to request.
+     * @param array  $params                   URL parameters.
+     *
+     * @return string  Call results.
+     * @throws Horde_Service_Twitter_Exception
+     */
+    public function get($url, array $params = array())
+    {
+        $key = md5($url . 'get' . serialize($params) . 
serialize($this->_twitter->auth->getAccessToken($this->_request)));
+        $cache = $this->_twitter->responseCache;
+        if (!empty($cache) && $results = $cache->get($key, 
$this->_twitter->cacheLifetime)) {
+            return $results;
+        }
+        $request = new Horde_Oauth_Request($url, $params, 'GET');
+        $request->sign($this->_twitter->auth->oauth->signatureMethod,
+                       $this->_twitter->auth->oauth,
+                       $this->_twitter->auth->getAccessToken($this->_request));
+        $url = ($url instanceof Horde_Url) ? $url : new Horde_Url($url);
+        $url->add($params);
+        try {
+            $response = 
$this->_twitter->getHttpClient()->get($url->setRaw(true), array('Authorization' 
=> $request->buildAuthorizationHeader('Twitter API')));
+        } catch (Horde_Http_Exception $e) {
+            throw new Horde_Service_Twitter_Exception($e);
+        }
+
+        // Looks like some of the http clients (like Fopen) will thrown an
+        // exception if we try to read an empty stream. Ignore this.
+        try {
+            $body = $response->getBody();
+            if ($response->code >= 400 && $response->code <= 500) {
+                throw new Horde_Service_Twitter_Exception($body);
+            }
+        } catch (Horde_Http_Exception $e) {}
+
+        if (!empty($cache)) {
+            $cache->set($key, $body);
+        }
+
+        return $body;
+    }
+
+    /**
+     * Send a POST request to the twitter API. Purposely do not cache results
+     * from these since POST requests alter data on the server.
+     *
+     * @see self::get
+     */
+    public function post($url, array $params = array())
+    {
+        $request = new Horde_Oauth_Request($url, $params);
+        $request->sign($this->_twitter->auth->oauth->signatureMethod,
+                       $this->_twitter->auth->oauth,
+                       $this->_twitter->auth->getAccessToken($this->_request));
+        $url = ($url instanceof Horde_Url) ? $url : new Horde_Url($url);
+        try {
+            $response = 
$this->_twitter->getHttpClient()->post($url->setRaw(true), $params, 
array('Authorization' => $request->buildAuthorizationHeader('Twitter API')));
+        } catch (Horde_Http_Exception $e) {
+            throw new Horde_Service_Twitter_Exception($e);
+        }
+
+        if ($response->code >= 400 && $response->code <= 500) {
+            throw new Horde_Service_Twitter_Exception($response->getBody());
+        }
+        return $response->getBody();
+    }
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Request.php 
new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Request.php
--- old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Request.php       
1970-01-01 01:00:00.000000000 +0100
+++ new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Request.php       
2015-01-09 12:30:55.000000000 +0100
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Horde_Service_Twitter_Request_* classes wrap sending requests to Twitter's
+ * REST API using various authentication mechanisms.
+ *
+ * Copyright 2009-2015 Horde LLC (http://www.horde.org/)
+ *
+ * @author Michael J. Rubinsky <mrubi...@horde.org>
+ * @license  http://www.horde.org/licenses/bsd BSD
+ * @category Horde
+ * @package Service_Twitter
+ */
+abstract class Horde_Service_Twitter_Request
+{
+    /**
+     *
+     * @var Horde_Service_Twitter
+     */
+    protected $_twitter;
+
+    /**
+     *
+     * @var Horde_Controller_Request_Http
+     */
+    protected $_request;
+
+    public function __construct(Horde_Controller_Request_Http $request)
+    {
+        $this->_request = $request;
+    }
+
+    public function setTwitter(Horde_Service_Twitter $twitter)
+    {
+        $this->_twitter = $twitter;
+    }
+
+    abstract public function get($url, array $params = array());
+    abstract public function post($url, array $params = array());
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Statuses.php 
new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Statuses.php
--- old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Statuses.php      
1970-01-01 01:00:00.000000000 +0100
+++ new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Statuses.php      
2015-01-09 12:30:55.000000000 +0100
@@ -0,0 +1,329 @@
+<?php
+/**
+ * Horde_Service_Twitter_Statuses class for updating, retrieving user statuses.
+ *
+ * Copyright 2009-2015 Horde LLC (http://www.horde.org/)
+ *
+ * @author Michael J. Rubinsky <mrubi...@horde.org>
+ * @license  http://www.horde.org/licenses/bsd BSD
+ * @category Horde
+ * @package Service_Twitter
+ */
+class Horde_Service_Twitter_Statuses
+{
+    /**
+     * Endpoint for status api requests
+     *
+     * @var string
+     */
+    private $_endpoint = 'https://api.twitter.com/1.1/statuses/';
+
+    /**
+     * Format to use json or xml
+     *
+     * @var string
+     */
+    private $_format = 'json';
+
+    /**
+     * Constructor
+     *
+     * @param Horde_Service_Twitter $twitter
+     */
+    public function __construct($twitter)
+    {
+        $this->_twitter = $twitter;
+    }
+
+    /**
+     * Obtain the requested status
+     *
+     * @return string  The method call results.
+     */
+    public function show($id)
+    {
+        $url = $this->_endpoint . 'show.' . $this->_format;
+        return $this->_twitter->request->post($url, array('id' => $id));
+    }
+
+    /**
+     * Destroy the specified status update, obviously only if the current user
+     * is the author of the update.
+     *
+     * 
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses%C2%A0destroy
+     *
+     * @param string $id  The status id
+     *
+     * @return string
+     */
+    public function destroy($id)
+    {
+        $url = $this->_endpoint . 'destroy.' . $this->_format;
+        return $this->_twitter->request->post($url, array('id' => $id));
+    }
+
+    /**
+     * Update the current user's status.
+     *
+     * @param string $status  The new status text.
+     * @param array $params   Any additional parameters.
+     *   <pre>
+     *     in_reply_to_status_id  - the status id this tweet is in response to.
+     *   </pre>
+     *
+     * @return string
+     */
+    public function update($status, $params = array())
+    {
+        $url = $this->_endpoint . 'update.' . $this->_format;
+        $params['status'] = $status;
+
+        return $this->_twitter->request->post($url, $params);
+    }
+
+    /**
+     * Obtain the friendsTimeline.
+     *
+     * 
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses-friends_timeline
+     *
+     * NOTE: According to the API docs, this method is deprecated and will be
+     * going away in a future version of the API. This is to be replaced by
+     * home_timeline.
+     *
+     * 
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses-home_timeline
+     *
+     * @param array $params  Parameters for the friends_timeline call
+     *   <pre>
+     *     since_id         - Only tweets more recent the indicated tweet id
+     *     max_id           - Only tweets older then the indeicated tweet id
+     *     count            - Only return this many tweets (twitter limit = 
200)
+     *     page             - The page number to return (note there are
+     *                        pagination limits)
+     *     include_rts      - Include retweets
+     *     include_entities - Include twitter entities (will be mandatory in
+     *                        future twitter api release).
+     *   </pre>
+     *
+     * @return string
+     */
+    public function friendsTimeline($params = array())
+    {
+        $url = $this->_endpoint . 'friends_timeline.' . $this->_format;
+        return $this->_twitter->request->get($url, $params);
+    }
+
+    /**
+     * Returns the 20 most recent statuses, including retweets, posted by the
+     * authenticating user and that user's friends. This is the equivalent of
+     * /timeline/home on the Web.
+     *
+     * 
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses-home_timeline
+     *
+     * @param array $params  Parameters for the friends_timeline call
+     *   <pre>
+     *     since_id   - Only tweets more recent the indicated tweet id
+     *     max_id     - Only tweets older then the indeicated tweet id
+     *     count      - Only return this many tweets (twitter limit = 200)
+     *     page       - The page number to return (note there are pagination 
limits)
+     *   </pre>
+     *
+     * @return string
+     */
+    public function homeTimeline($params = array())
+    {
+        $url = $this->_endpoint . 'home_timeline.' . $this->_format;
+        return $this->_twitter->request->get($url, $params);
+    }
+
+    /**
+     * Returns the 20 most recent retweets posted by the authenticating user.
+     *
+     * @param array $params  Parameters for the friends_timeline call
+     *   <pre>
+     *     since_id   - Only tweets more recent the indicated tweet id
+     *     max_id     - Only tweets older then the indeicated tweet id
+     *     count      - Only return this many tweets (twitter limit = 200)
+     *     page       - The page number to return (note there are pagination 
limits)
+     *   </pre>
+     *
+     * @return string
+     */
+    public function retweetedByMe($params = array())
+    {
+        $url = $this->_endpoint . 'retweeted_by_me.' . $this->_format;
+        return $this->_twitter->request->get($url, $params);
+    }
+
+    /**
+     * Returns the 20 most recent retweets posted by the authenticating user's
+     * friends.
+     *
+     * @param array $params  Parameters for the friends_timeline call
+     *   <pre>
+     *     since_id   - Only tweets more recent the indicated tweet id
+     *     max_id     - Only tweets older then the indeicated tweet id
+     *     count      - Only return this many tweets (twitter limit = 200)
+     *     page       - The page number to return (note there are pagination 
limits)
+     *   </pre>
+     *
+     * @return string
+     */
+    public function retweetedToMe($params = array())
+    {
+        $url = $this->_endpoint . 'retweetedToMe.' . $this->_format;
+        return $this->_twitter->request->get($url, $params);
+    }
+
+    /**
+     * Returns the 20 most recent tweets of the authenticated user that have
+     * been retweeted by others.
+     *
+     * @param array $params  Parameters for the friends_timeline call
+     *   <pre>
+     *     since_id   - Only tweets more recent the indicated tweet id
+     *     max_id     - Only tweets older then the indeicated tweet id
+     *     count      - Only return this many tweets (twitter limit = 200)
+     *     page       - The page number to return (note there are pagination 
limits)
+     *   </pre>
+     *
+     * @return string
+     */
+    public function retweetsOfMe($params = array())
+    {
+        $url = $this->_endpoint . 'retweets_of_me.' . $this->_format;
+        return $this->_twitter->request->get($url, $params);
+    }
+
+    /**
+     * Retweets a tweet. Requires the id parameter of the tweet you are
+     * retweeting. Request must be a POST or PUT.
+     * Returns the original tweet with retweet details embedded.
+     *
+     * @params string id  The id for the tweet that is being retweeted.
+     *
+     * @return string
+     */
+    public function retweet($id)
+    {
+        $url = $this->_endpoint . 'retweet/' . $id .  '.' . $this->_format;
+
+        return $this->_twitter->request->post($url, array());
+    }
+
+    /**
+     * Obtain the last 20 tweets from the public timeline. This is cached every
+     * 60 seconds on Twitter's servers so we should eventually ensure this is
+     * only actually requested every 60 seconds or greater.
+     *
+     * @return string
+     */
+    public function publicTimeline()
+    {
+        $url = $this->_endpoint . 'public_timeline.' . $this->_format;
+        return $this->_twitter->request->get($url);
+    }
+
+    /**
+     * Obtain the friendsTimeline.
+     *
+     * 
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses-user_timeline
+     *
+     * @param array $params  Parameters for the friends_timeline call
+     *   <pre>
+     *     id         - For this user id or screen name.
+     *                  Current user if left out.
+     *     user_id    - Specfies the ID of the user for whom to return the
+     *                  user_timeline. Helpful for disambiguating when a valid
+     *                  user ID is also a valid screen name.
+     *     screen_id  - Specfies the screen name of the user for whom to return
+     *                  the user_timeline. Helpful for disambiguating when a
+     *                  valid screen name is also a user ID.
+     *     since_id   - Only tweets more recent the indicated tweet id
+     *     max_id     - Only tweets older then the indeicated tweet id
+     *     count      - Only return this many tweets (twitter limit = 200)
+     *     page       - The page number to return (note there are pagination 
limits)
+     *   </pre>
+     *
+     * @return string
+     */
+    public function userTimeline($params = array())
+    {
+        $url = $this->_endpoint . 'user_timeline.' . $this->_format;
+        return $this->_twitter->request->get($url, $params);
+    }
+
+    /**
+     * Obtain most recent 'mentions' for the current user. (i.e. all messages
+     * that contain @username in the text).
+     *
+     * http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses-mentions
+     *
+     * @param array $params  Parameters for the friends_timeline call
+     *   <pre>
+     *     since_id   - Only tweets more recent the indicated tweet id
+     *     max_id     - Only tweets older then the indeicated tweet id
+     *     count      - Only return this many tweets (twitter limit = 200)
+     *     page       - The page number to return (note there are pagination 
limits)
+     *   </pre>
+     *
+     * @return string
+     */
+    public function mentions($params = array())
+    {
+        $url = $this->_endpoint . 'mentions_timeline.' . $this->_format;
+        return $this->_twitter->request->get($url, $params);
+    }
+
+    /**
+     * Returns a user's friends, each with current status inline. They are
+     * ordered by the order in which they were added as friends, 100 at a time.
+     *
+     * 
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses%C2%A0friends
+     *
+     * @param array $params  Parameters for the friends_timeline call
+     *   <pre>
+     *     id         - For this user id or screen name.
+     *                  Current user if left out.
+     *     user_id    - Specfies the ID of the user for whom to return the
+     *                  user_timeline. Helpful for disambiguating when a valid
+     *                  user ID is also a valid screen name.
+     *     screen_id  - Specfies the screen name of the user for whom to return
+     *                  the user_timeline. Helpful for disambiguating when a
+     *                  valid screen name is also a user ID.
+     *     page       - The page number to return (note there are pagination 
limits)
+     *   </pre>
+     * @return unknown_type
+     */
+    public function friends($params = array())
+    {
+        $url = $this->_endpoint . 'friends.' . $this->_format;
+        return $this->_twitter->request->get($url, $params);
+    }
+
+    /**
+     * Returns a user's followers, each with current status inline. They are
+     * ordered by the order in which they were added as friends, 100 at a time.
+     *
+     * 
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses%C2%A0friends
+     *
+     * @param array $params  Parameters for the friends_timeline call
+     *   <pre>
+     *     id         - For this user id or screen name.
+     *                  Current user if left out.
+     *     user_id    - Specfies the ID of the user for whom to return the
+     *                  user_timeline. Helpful for disambiguating when a valid
+     *                  user ID is also a valid screen name.
+     *     screen_id  - Specfies the screen name of the user for whom to return
+     *                  the user_timeline. Helpful for disambiguating when a
+     *                  valid screen name is also a user ID.
+     *     page       - The page number to return (note there are pagination 
limits)
+     *   </pre>
+     * @return unknown_type
+     */
+    public function followers($params = array())
+    {
+        $url = $this->_endpoint . 'followers.' . $this->_format;
+        return $this->_twitter->request->get($url, $params);
+    }
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter.php 
new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter.php
--- old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter.php       
1970-01-01 01:00:00.000000000 +0100
+++ new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter.php       
2015-01-09 12:30:55.000000000 +0100
@@ -0,0 +1,227 @@
+<?php
+/**
+ * Horde_Service_Twitter class abstracts communication with Twitter's
+ * rest interface.
+ *
+ * Copyright 2009-2015 Horde LLC (http://www.horde.org/)
+ *
+ * @property-read Horde_Service_Twitter_Account $account
+ *                The twitter account object for calling account methods.
+ * @property-read Horde_Service_Twitter_Statuses $statuses
+ *                The twitter status object for updating and retrieving user
+ *                statuses.
+ * @property-read Horde_Service_Twitter_Auth $auth
+ *                The twitter authentication object.
+ * @property-read Horde_Service_Twitter_Request $request
+ *                The twitter request object that wraps sending requests to
+ *                Twitter's REST API.
+ * @property-read Horde_Cache $responseCache
+ *                The cache object.
+ * @property-read integer $cacheLifetime
+ *                The default cache lifetime.
+ *
+ * @author Michael J. Rubinsky <mrubi...@horde.org>
+ * @license  http://www.horde.org/licenses/bsd BSD
+ * @category Horde
+ * @package Service_Twitter
+ */
+class Horde_Service_Twitter
+{
+    /* Constants */
+    const REQUEST_TOKEN_URL = 'https://api.twitter.com/oauth/request_token';
+    const USER_AUTHORIZE_URL = 'https://api.twitter.com/oauth/authorize';
+    const ACCESS_TOKEN_URL = 'https://api.twitter.com/oauth/access_token';
+
+    /**
+     * Cache for the various objects we lazy load in __get()
+     *
+     * @var hash of Horde_Service_Twitter_* objects
+     */
+    protected $_objCache = array();
+
+    /**
+     * (Optional) Cache object.
+     *
+     * @var Horde_Cache
+     */
+    protected $_responseCache;
+
+    /**
+     * Default cache lifetime.
+     *
+     * @var integer
+     */
+    protected $_cacheLifetime = 300;
+
+    /**
+     * Optional logger.
+     *
+     * @var Horde_Log_Logger
+     */
+    protected $_logger;
+
+    /**
+     * Can't lazy load the auth or request class since we need to know early if
+     * we are OAuth or Basic
+     *
+     * @var Horde_Service_Twitter_Auth
+     */
+    protected $_auth;
+
+    /**
+     * The twitter request object.
+     *
+     * @var Horde_Service_Twitter_Request
+     */
+    protected $_request;
+
+    /**
+     * The http client.
+     *
+     * @var Horde_Http_Client
+     */
+     protected $_httpClient;
+
+    /**
+     * Constructor.
+     *
+     * @param Horde_Service_Twitter_Auth $auth        An authentication object
+     * @param Horde_Service_Twitter_Request $request  A request object.
+     */
+    public function __construct(Horde_Service_Twitter_Auth $auth,
+                                Horde_Service_Twitter_Request $request)
+    {
+        $this->_auth = $auth;
+        $this->_auth->setTwitter($this);
+        $this->_request = $request;
+        $this->_request->setTwitter($this);
+    }
+
+    /**
+     * Factory method to easily build a working Twitter client object.
+     *
+     * @param array $params  Configuration parameters, with the following keys:
+     *                       - 'oauth' (required):
+     *                       - 'consumer_key' (required): The application's
+     *                         consumer key
+     *                       - 'consumer_secret' (required): The application's
+     *                         consumer secret
+     *                       - 'access_token' (optional): The user's access
+     *                         token
+     *                       - 'access_token_secret' (optional): The user's
+     *                         access token secret.
+     *                       - 'http' (optional): any configuration parameters
+     *                         for Horde_Http_Client, e.g. proxy settings.
+     *
+     * @return Horde_Service_Twitter  A twitter object that can be used
+     *                                immediately to update and receive
+     *                                statuses etc.
+     */
+    public static function create($params)
+    {
+        if (!isset($params['oauth'])) {
+            throw new Horde_Service_Twitter_Exception('Only OAuth 
authentication is supported.');
+        }
+
+        /* Parameters required for the Horde_Oauth_Consumer */
+        $consumer_params = array(
+            'key' => $params['oauth']['consumer_key'],
+            'secret' => $params['oauth']['consumer_secret'],
+            'requestTokenUrl' => self::REQUEST_TOKEN_URL,
+            'authorizeTokenUrl' => self::USER_AUTHORIZE_URL,
+            'accessTokenUrl' => self::ACCESS_TOKEN_URL,
+            'signatureMethod' => new Horde_Oauth_SignatureMethod_HmacSha1());
+
+        /* Create the Consumer */
+        $oauth = new Horde_Oauth_Consumer($consumer_params);
+
+        /* Create the Twitter client */
+        $twitter = new Horde_Service_Twitter(
+            new Horde_Service_Twitter_Auth_Oauth($oauth),
+            new Horde_Service_Twitter_Request_Oauth(
+                new Horde_Controller_Request_Http()));
+
+        /* Create HTTP client. */
+        $http_params = isset($params['http']) ? $params['http'] : array();
+        $twitter->setHttpClient(new Horde_Http_Client($http_params));
+
+        /* Check for an existing token */
+        if (!empty($params['oauth']['access_token']) &&
+            !empty($params['oauth']['access_token_secret'])) {
+            $auth_token = new Horde_Oauth_Token(
+                $params['oauth']['access_token'],
+                $params['oauth']['access_token_secret']);
+            $twitter->auth->setToken($auth_token);
+        }
+
+        return $twitter;
+    }
+
+    public function setCache(Horde_Cache $cache)
+    {
+        $this->_responseCache = $cache;
+    }
+
+    public function setLogger(Horde_Log_Logger $logger)
+    {
+        $this->_logger = $logger;
+    }
+
+    /**
+     * Set the http client.
+     *
+     * @param Horde_Http_Client $client  The http client
+     */
+    public function setHttpClient(Horde_Http_Client $client)
+    {
+        $this->_httpClient = $client;
+    }
+
+    /**
+     * Get the http client.
+     *
+     * @return Horde_Http_Client
+     */
+    public function getHttpClient()
+    {
+        return $this->_httpClient;
+    }
+
+    /**
+     * Lazy load the twitter classes.
+     *
+     * @param string $value  The lowercase representation of the subclass.
+     *
+     * @throws Horde_Service_Twitter_Exception
+     * @return Horde_Service_Twitter_* object.
+     */
+    public function __get($value)
+    {
+        // First, see if it's an allowed protected value.
+        switch ($value) {
+        case 'auth':
+            return $this->_auth;
+        case 'request':
+            return $this->_request;
+        case 'responseCache':
+            return $this->_responseCache;
+        case 'cacheLifetime':
+            return $this->_cacheLifetime;
+        }
+
+        // If not, assume it's a method/action class...
+        $class = 'Horde_Service_Twitter_' . ucfirst($value);
+        if (!empty($this->_objCache[$class])) {
+            return $this->_objCache[$class];
+        }
+
+        if (!class_exists($class)) {
+            throw new Horde_Service_Twitter_Exception(sprintf("%s class not 
found", $class));
+        }
+
+
+        $this->_objCache[$class] = new $class($this);
+        return $this->_objCache[$class];
+    }
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/package.xml new/package.xml
--- old/package.xml     2012-10-30 19:48:21.000000000 +0100
+++ new/package.xml     2015-01-09 12:30:55.000000000 +0100
@@ -10,11 +10,11 @@
   <email>mrubi...@horde.org</email>
   <active>yes</active>
  </lead>
- <date>2012-10-30</date>
- <time>19:48:21</time>
+ <date>2015-01-09</date>
+ <time>12:30:55</time>
  <version>
-  <release>2.0.0</release>
-  <api>1.1.0</api>
+  <release>2.1.2</release>
+  <api>2.1.0</api>
  </version>
  <stability>
   <release>stable</release>
@@ -22,27 +22,30 @@
  </stability>
  <license uri="http://www.horde.org/licenses/bsd";>BSD-2-Clause</license>
  <notes>
-* First stable release for Horde 5.
+* [jan] Add Composer definition.
  </notes>
  <contents>
   <dir baseinstalldir="/" name="/">
-   <file baseinstalldir="/" md5sum="03dc05714e363d71bd24f3fae5ed5903" 
name="doc/Horde/Service/Twitter/COPYING" role="doc" />
-   <file baseinstalldir="/" md5sum="36a54bf1f734b55ec37fe5c7a1c3264b" 
name="doc/Horde/Service/Twitter/twitter_browser.php" role="doc" />
-   <file baseinstalldir="/" md5sum="eb0c932990582434abb5824f0d67ae83" 
name="doc/Horde/Service/Twitter/twitter_cli.php" role="doc" />
-   <file baseinstalldir="/" md5sum="2964669068a91b0f544946159f013d5a" 
name="lib/Horde/Service/Twitter/Auth/Oauth.php" role="php" />
-   <file baseinstalldir="/" md5sum="f4a1d265e2c785856a0d1394d63aa3f9" 
name="lib/Horde/Service/Twitter/Request/Oauth.php" role="php" />
-   <file baseinstalldir="/" md5sum="6517c39b0917fdef6bc0dd6a4bb2c947" 
name="lib/Horde/Service/Twitter/Account.php" role="php" />
-   <file baseinstalldir="/" md5sum="9695ebc63f23ccbb46ec54e7671e2602" 
name="lib/Horde/Service/Twitter/Auth.php" role="php" />
-   <file baseinstalldir="/" md5sum="f0e0a4b35735d315280f94dfaf582778" 
name="lib/Horde/Service/Twitter/Exception.php" role="php" />
-   <file baseinstalldir="/" md5sum="02e5951910d6b2a9799990a629234933" 
name="lib/Horde/Service/Twitter/Request.php" role="php" />
-   <file baseinstalldir="/" md5sum="04f22391e23f285b4bf0b9c9e2b9fb0f" 
name="lib/Horde/Service/Twitter/Statuses.php" role="php" />
-   <file baseinstalldir="/" md5sum="7400263d0d76ebe280ccec6f52616a97" 
name="lib/Horde/Service/Twitter.php" role="php" />
+   <file baseinstalldir="/" md5sum="e2b30d99b3092722430a6aeb457c4db8" 
name="doc/Horde/Service/Twitter/examples/twitter_browser.php" role="doc" />
+   <file baseinstalldir="/" md5sum="25d8c3e777c081e59d18c67f49e4441d" 
name="doc/Horde/Service/Twitter/examples/twitter_cli.php" role="doc" />
+   <file baseinstalldir="/" md5sum="5dee577470a920508ad14b3458db79a5" 
name="doc/Horde/Service/Twitter/COPYING" role="doc" />
+   <file baseinstalldir="/" md5sum="21129453441dabde840f3d0fc9cebdc2" 
name="lib/Horde/Service/Twitter/Auth/Oauth.php" role="php" />
+   <file baseinstalldir="/" md5sum="587ba0f88b5fc75e405bda90ba9c9c15" 
name="lib/Horde/Service/Twitter/Request/Oauth.php" role="php" />
+   <file baseinstalldir="/" md5sum="89c024bd61c5c8b634f34d79d08f3e82" 
name="lib/Horde/Service/Twitter/Account.php" role="php" />
+   <file baseinstalldir="/" md5sum="209f8a549ea475f0276937a51ae0e94f" 
name="lib/Horde/Service/Twitter/Auth.php" role="php" />
+   <file baseinstalldir="/" md5sum="19c08960305ea86765f7dcd108792656" 
name="lib/Horde/Service/Twitter/Exception.php" role="php" />
+   <file baseinstalldir="/" md5sum="b7077c9f73bf652df414e21ad7c52481" 
name="lib/Horde/Service/Twitter/Favorites.php" role="php" />
+   <file baseinstalldir="/" md5sum="774a51f134443de3394e2ce1ca75aaaf" 
name="lib/Horde/Service/Twitter/Request.php" role="php" />
+   <file baseinstalldir="/" md5sum="0bab0cd07162e392ed20c5b409deca6a" 
name="lib/Horde/Service/Twitter/Statuses.php" role="php" />
+   <file baseinstalldir="/" md5sum="61e7c053aa74562aa02065b0d62e72e2" 
name="lib/Horde/Service/Twitter.php" role="php" />
   </dir>
  </contents>
  <dependencies>
   <required>
    <php>
     <min>5.3.0</min>
+    <max>6.0.0alpha1</max>
+    <exclude>6.0.0alpha1</exclude>
    </php>
    <pearinstaller>
     <min>1.7.0</min>
@@ -87,12 +90,13 @@
  <phprelease>
   <filelist>
    <install as="COPYING" name="doc/Horde/Service/Twitter/COPYING" />
-   <install as="twitter_browser.php" 
name="doc/Horde/Service/Twitter/twitter_browser.php" />
-   <install as="twitter_cli.php" 
name="doc/Horde/Service/Twitter/twitter_cli.php" />
+   <install as="examples/twitter_browser.php" 
name="doc/Horde/Service/Twitter/examples/twitter_browser.php" />
+   <install as="examples/twitter_cli.php" 
name="doc/Horde/Service/Twitter/examples/twitter_cli.php" />
    <install as="Horde/Service/Twitter.php" 
name="lib/Horde/Service/Twitter.php" />
    <install as="Horde/Service/Twitter/Account.php" 
name="lib/Horde/Service/Twitter/Account.php" />
    <install as="Horde/Service/Twitter/Auth.php" 
name="lib/Horde/Service/Twitter/Auth.php" />
    <install as="Horde/Service/Twitter/Exception.php" 
name="lib/Horde/Service/Twitter/Exception.php" />
+   <install as="Horde/Service/Twitter/Favorites.php" 
name="lib/Horde/Service/Twitter/Favorites.php" />
    <install as="Horde/Service/Twitter/Request.php" 
name="lib/Horde/Service/Twitter/Request.php" />
    <install as="Horde/Service/Twitter/Statuses.php" 
name="lib/Horde/Service/Twitter/Statuses.php" />
    <install as="Horde/Service/Twitter/Auth/Oauth.php" 
name="lib/Horde/Service/Twitter/Auth/Oauth.php" />
@@ -297,5 +301,96 @@
 * First stable release for Horde 5.
    </notes>
   </release>
+  <release>
+   <version>
+    <release>2.0.1</release>
+    <api>1.1.0</api>
+   </version>
+   <stability>
+    <release>stable</release>
+    <api>stable</api>
+   </stability>
+   <date>2012-11-22</date>
+   <license uri="http://www.horde.org/licenses/bsd";>BSD-2-Clause</license>
+   <notes>
+* [jan] Re-packaged 2.0.0 release.
+   </notes>
+  </release>
+  <release>
+   <version>
+    <release>2.0.2</release>
+    <api>1.1.0</api>
+   </version>
+   <stability>
+    <release>stable</release>
+    <api>stable</api>
+   </stability>
+   <date>2013-03-05</date>
+   <license uri="http://www.horde.org/licenses/bsd";>BSD-2-Clause</license>
+   <notes>
+* [jan] Fix examples location.
+   </notes>
+  </release>
+  <release>
+   <version>
+    <release>2.0.3</release>
+    <api>1.1.0</api>
+   </version>
+   <stability>
+    <release>stable</release>
+    <api>stable</api>
+   </stability>
+   <date>2013-03-05</date>
+   <license uri="http://www.horde.org/licenses/bsd";>BSD-2-Clause</license>
+   <notes>
+* [mjr] Fix initial authentication for recently changed Twitter API 
requirements (Bug #12165).
+   </notes>
+  </release>
+  <release>
+   <version>
+    <release>2.1.0</release>
+    <api>2.1.0</api>
+   </version>
+   <stability>
+    <release>stable</release>
+    <api>stable</api>
+   </stability>
+   <date>2013-06-17</date>
+   <license uri="http://www.horde.org/licenses/bsd";>BSD-2-Clause</license>
+   <notes>
+* [mjr] Use API version 1.1
+* [mjr] Add support for favorites.
+   </notes>
+  </release>
+  <release>
+   <version>
+    <release>2.1.1</release>
+    <api>2.1.0</api>
+   </version>
+   <stability>
+    <release>stable</release>
+    <api>stable</api>
+   </stability>
+   <date>2013-07-07</date>
+   <license uri="http://www.horde.org/licenses/bsd";>BSD-2-Clause</license>
+   <notes>
+* [mjr] Fix fetching user mentions.
+   </notes>
+  </release>
+  <release>
+   <version>
+    <release>2.1.2</release>
+    <api>2.1.0</api>
+   </version>
+   <stability>
+    <release>stable</release>
+    <api>stable</api>
+   </stability>
+   <date>2015-01-09</date>
+   <license uri="http://www.horde.org/licenses/bsd";>BSD-2-Clause</license>
+   <notes>
+* [jan] Add Composer definition.
+   </notes>
+  </release>
  </changelog>
 </package>

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to