You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2016/10/24 13:05:48 UTC
[03/83] [abbrv] usergrid git commit: Moving older SDKs to a
difference location and updating main README to link to new SDK locations.
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/src/Native/Facades/Usergrid.php
----------------------------------------------------------------------
diff --git a/sdks/php5/apache-usergrid/src/Native/Facades/Usergrid.php b/sdks/php5/apache-usergrid/src/Native/Facades/Usergrid.php
deleted file mode 100644
index fbfcffe..0000000
--- a/sdks/php5/apache-usergrid/src/Native/Facades/Usergrid.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-/**
- * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- * You may not use this file except in compliance with the License.
- * A copy of the License is located at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * or in the "license" file accompanying this file. This file is distributed
- * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-namespace Apache\Usergrid\Native\Facades;
-
-
-use Apache\Usergrid\Native\UsergridBootstrapper;
-
-/**
- * Class Usergrid
- *
- * @package Apache/Usergrid
- * @version 1.0.0
- * @author Jason Kristian <ja...@gmail.com>
- * @license Apache License, Version 2.0
- * @copyright (c) 2008-2014, Baas Platform Pty. Ltd
- * @link http://baas-platform.com
- */
-class Usergrid
-{
- /**
- * The Native Bootstrap instance.
- *
- * @var \Apache\Usergrid\Native\UsergridBootstrapper
- */
- protected static $instance;
- /**
- * The Usergrid API instance.
- *
- * @var \Apache\Usergrid\Api\Usergrid
- */
- protected $usergrid;
-
- /**
- * Constructor.
- *
- * @param \Apache\Usergrid\Native\UsergridBootstrapper $bootstraper
- * @return \Apache\Usergrid\Native\Facades\Usergrid
- */
- public function __construct(UsergridBootstrapper $bootstraper = null)
- {
- if (!$bootstraper) {
- $bootstraper = new UsergridBootstrapper;
- }
-
- $this->usergrid = $bootstraper->createUsergrid();
- }
-
- /**
- * Handle dynamic, static calls to the object.
- *
- * @param string $method
- * @param array $args
- * @return mixed
- */
- public static function __callStatic($method, $args)
- {
- $instance = static::instance()->getUsergrid();
-
- switch (count($args)) {
- case 0:
- return $instance->{$method}();
-
- case 1:
- return $instance->{$method}($args[0]);
-
- case 2:
- return $instance->{$method}($args[0], $args[1]);
-
- case 3:
- return $instance->{$method}($args[0], $args[1], $args[2]);
-
- case 4:
- return $instance->{$method}($args[0], $args[1], $args[2], $args[3]);
-
- default:
- return call_user_func_array([$instance, $method], $args);
- }
- }
-
- /**
- * Creates a new Native Bootstraper instance.
- *
- * @param \Apache\Usergrid\Native\UsergridBootstrapper $bootstrapper
- * @return static
- */
- public static function instance(UsergridBootstrapper $bootstrapper = null)
- {
- if (static::$instance === null) {
- static::$instance = new static($bootstrapper);
- }
-
- return static::$instance;
- }
-
- /**
- * Returns the Usergrid API instance.
- *
- * @return \Apache\Usergrid\Api\Usergrid
- */
- public function getUsergrid()
- {
- return $this->usergrid;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/src/Native/UsergridBootstrapper.php
----------------------------------------------------------------------
diff --git a/sdks/php5/apache-usergrid/src/Native/UsergridBootstrapper.php b/sdks/php5/apache-usergrid/src/Native/UsergridBootstrapper.php
deleted file mode 100644
index 0f71b78..0000000
--- a/sdks/php5/apache-usergrid/src/Native/UsergridBootstrapper.php
+++ /dev/null
@@ -1,150 +0,0 @@
-<?php
-/**
- * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- * You may not use this file except in compliance with the License.
- * A copy of the License is located at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * or in the "license" file accompanying this file. This file is distributed
- * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-namespace Apache\Usergrid\Native;
-
-
-use Apache\Usergrid\Api\Usergrid;
-use Apache\Usergrid\Guzzle\Plugin\Oauth2\GrantType\ClientCredentials;
-use Apache\Usergrid\Guzzle\Plugin\Oauth2\GrantType\PasswordCredentials;
-use Apache\Usergrid\Guzzle\Plugin\Oauth2\GrantType\RefreshToken;
-use Apache\Usergrid\Guzzle\Plugin\Oauth2\Oauth2Plugin;
-use Guzzle\Http\Client;
-
-/**
- * Class UsergridBootstrapper
- *
- * @package Apache/Usergrid
- * @version 1.0.0
- * @author Jason Kristian <ja...@gmail.com>
- * @license Apache License, Version 2.0
- * @copyright (c) 2008-2014, Baas Platform Pty. Ltd
- * @link http://baas-platform.com
- */
-class UsergridBootstrapper
-{
- /**
- * The Usergrid configuration.
- *
- * @var array
- */
- protected $config;
-
- /**
- * The Oauth2 Plugin.
- *
- * @var \Apache\Usergrid\Guzzle\Plugin\Oauth2\Oauth2Plugin
- */
- protected $oauth2Plugin = null;
-
- /**
- * Constructor.
- *
- * @param mixed $config
- * @return \Apache\Usergrid\Native\UsergridBootstrapper
- */
- public function __construct($config = null)
- {
- $this->config = $config ?: new ConfigRepository($config);
- }
-
- /**
- * Creates the Usergrid instance.
- *
- * @return \Apache\Usergrid\Api\Usergrid
- */
- public function createUsergrid()
- {
- $baseUrl = array_get($this->config, 'usergrid.url');
-
- $orgName = array_get($this->config, 'usergrid.orgName');
-
- $appName = array_get($this->config, 'usergrid.appName');
-
- $manifestPath = array_get($this->config, 'usergrid.manifestPath');
-
- $version = array_get($this->config, 'usergrid.version');
-
- $enable_oauth2_plugin = array_get($this->config, 'usergrid.enable_oauth2_plugin');
-
- //check if user wants to manage there own Oauth 2 auth flow
- if ($enable_oauth2_plugin) {
-
- $this->createOauth2Plugin();
-
- return new Usergrid($orgName, $appName, $manifestPath, $version, $baseUrl, $this->oauth2Plugin);
- } else {
- return new Usergrid($orgName, $appName, $manifestPath, $version, $baseUrl);
- }
-
- }
-
- private function createOauth2Plugin()
- {
- $base_url = array_get($this->config, 'usergrid.url');
-
- $client_id = array_get($this->config, 'usergrid.clientId');
-
- $client_secret = array_get($this->config, 'usergrid.clientSecret');
-
- $grant_type = array_get($this->config, 'usergrid.grant_type');
-
- $auth_type = array_get($this->config, 'usergrid.auth_type');
-
- $username = array_get($this->config, 'usergrid.username');
-
- $password = array_get($this->config, 'usergrid.password');
-
-
- $org_name = array_get($this->config, 'usergrid.orgName');
-
- $app_name = array_get($this->config, 'usergrid.appName');
-
- if ($auth_type == 'organization') {
-
- $url = $base_url . '/management/token';
-
- } elseif ($auth_type == 'application') {
- $url = $base_url . '/' . $org_name . '/' . $app_name . '/token';
- }
-
- $oauth2Client = new Client($url);
-
-
- if ($grant_type == 'client_credentials') {
- $config = [
- 'client_id' => $client_id,
- 'client_secret' => $client_secret,
-
- ];
- $grantType = new ClientCredentials($oauth2Client, $config);
- $refreshTokenGrantType = new RefreshToken($oauth2Client, $config);
- $this->oauth2Plugin = new Oauth2Plugin($grantType, $refreshTokenGrantType);
-
- } elseif ($grant_type == 'password') {
- $config = [
- 'username' => $username,
- 'password' => $password,
- 'client_id' => $client_id,
- 'client_secret' => $client_secret
- ];
- $grantType = new PasswordCredentials($oauth2Client, $config);
- $refreshTokenGrantType = new RefreshToken($oauth2Client, $config);
- $this->oauth2Plugin = new Oauth2Plugin($grantType, $refreshTokenGrantType);
- }
- }
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/src/config/config.php
----------------------------------------------------------------------
diff --git a/sdks/php5/apache-usergrid/src/config/config.php b/sdks/php5/apache-usergrid/src/config/config.php
deleted file mode 100644
index 75a886f..0000000
--- a/sdks/php5/apache-usergrid/src/config/config.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-/**
- * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- * You may not use this file except in compliance with the License.
- * A copy of the License is located at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * or in the "license" file accompanying this file. This file is distributed
- * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-return [
-
- 'usergrid' => [
-
- 'url' => 'https://api.usergrid.com',
- 'version' => '1.0.0',
- 'orgName' => null,
- 'appName' => null,
- 'manifestPath' => null,
- //its better not to set the real values here if using laravel set them in a .env file or
- // if your not using Laravel set them as environment variable and include them here using $_ENV global.
- // so that way you can be sure not to commit privates ID to a public repo
- 'clientId' => null,
- 'clientSecret' => null,
- 'username' => null,
- 'password' => null,
- /**
- * The Auth Type setting is the Oauth 2 end point you want to get the OAuth 2
- * Token from. You have two options here one is 'application' the other is 'organization'
- *
- * organization will get the the token from http://example.com/management using client_credentials or password grant type
- * application will get the token from http://example.com/managment/org_name/app_name using client_credentials or password grant type
- */
- 'auth_type' => 'organization',
- /** The Grant Type to use
- *
- * This has to be set to one of the 2 grant types that Apache Usergrid
- * supports which at the moment is client_credentials or password but at
- * 2 level organization or application
- */
- 'grant_type' => 'client_credentials',
- /**
- * if you want to manage your own auth flow by calling the token api and setting the token your self just set this to false
- * */
- 'enable_oauth2_plugin' => true
- ]
-];
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/ApplicationTest.php
----------------------------------------------------------------------
diff --git a/sdks/php5/apache-usergrid/tests/Api/ApplicationTest.php b/sdks/php5/apache-usergrid/tests/Api/ApplicationTest.php
deleted file mode 100644
index d25a205..0000000
--- a/sdks/php5/apache-usergrid/tests/Api/ApplicationTest.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-/**
- * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- * You may not use this file except in compliance with the License.
- * A copy of the License is located at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * or in the "license" file accompanying this file. This file is distributed
- * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-namespace Apache\Usergrid\Tests\Api;
-
-
-use Apache\Usergrid\Api\Exception\UsergridException;
-use PHPUnit_Framework_TestCase;
-
-/**
- * Class ApplicationTest
- *
- * @package Apache/Usergrid
- * @version 1.0.0
- * @author Jason Kristian <ja...@gmail.com>
- * @license Apache License, Version 2.0
- * @copyright (c) 2008-2014, Baas Platform Pty. Ltd
- * @link http://baas-platform.com
- */
-class ApplicationTest extends PHPUnit_Framework_TestCase
-{
-
- /**
- * Usergrid client
- *
- * @var Usergrid $usergrid
- */
- protected $usergrid;
-
- protected $config;
-
- /**
- *
- */
- public function setUp()
- {
- $this->usergrid = $GLOBALS['usergrid'];
- }
-
- /**
- * @test
- * @group internet
- */
- public function it_can_get_entity()
- {
-
- $error = null;
-
- try {
- $this->usergrid->application()->EntityGet(['collection' => 'users']);
- } catch (UsergridException $e) {
- $error = $e;
- }
-
- $this->assertNull($error, 'Exception should be null');
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/AttributeTest.php
----------------------------------------------------------------------
diff --git a/sdks/php5/apache-usergrid/tests/Api/AttributeTest.php b/sdks/php5/apache-usergrid/tests/Api/AttributeTest.php
deleted file mode 100644
index cc1f29e..0000000
--- a/sdks/php5/apache-usergrid/tests/Api/AttributeTest.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-/**
- * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- * You may not use this file except in compliance with the License.
- * A copy of the License is located at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * or in the "license" file accompanying this file. This file is distributed
- * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-namespace Apache\Usergrid\Tests\Api;
-
-
-use PHPUnit_Framework_TestCase;
-
-/**
- * Class AttributeTest
- *
- * @package Apache/Usergrid
- * @version 1.0.0
- * @author Jason Kristian <ja...@gmail.com>
- * @license Apache License, Version 2.0
- * @copyright (c) 2008-2014, Baas Platform Pty. Ltd
- * @link http://baas-platform.com
- */
-class AttributeTest extends PHPUnit_Framework_TestCase
-{
- /** @var Usergrid Api Client */
- protected $usergrid;
-
-
- /**
- * Setup resources and dependencies
- *
- * @return void
- */
- public function setup()
- {
- $this->usergrid = $GLOBALS['usergrid'];
- }
-
- /**
- * @test
- * @group internet
- */
- public function it_should_have_attribute()
- {
- $this->assertTrue(method_exists('Apache\Usergrid\Api\Models\User', 'deviceAttribute'),
- 'Class does not have method Attribute Method'
- );
- }
-}
-
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/Exception/BadRequestExceptionTest.php
----------------------------------------------------------------------
diff --git a/sdks/php5/apache-usergrid/tests/Api/Exception/BadRequestExceptionTest.php b/sdks/php5/apache-usergrid/tests/Api/Exception/BadRequestExceptionTest.php
deleted file mode 100644
index b716e3d..0000000
--- a/sdks/php5/apache-usergrid/tests/Api/Exception/BadRequestExceptionTest.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-/**
- * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- * You may not use this file except in compliance with the License.
- * A copy of the License is located at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * or in the "license" file accompanying this file. This file is distributed
- * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-namespace Apache\Usergrid\Tests\Api\Exception;
-
-use Apache\Usergrid\Api\Exception\BadRequestException;
-use Guzzle\Http\Message\Response;
-use PHPUnit_Framework_TestCase;
-
-/**
- * Class BadRequestExceptionTest
- *
- * @package Apache/Usergrid
- * @version 1.0.0
- * @author Jason Kristian <ja...@gmail.com>
- * @license Apache License, Version 2.0
- * @copyright (c) 2008-2014, Baas Platform Pty. Ltd
- * @link http://baas-platform.com
- */
-class BadRequestExceptionTest extends PHPUnit_Framework_TestCase
-{
-
- /** @test */
- public function it_can_create_the_exception()
- {
- $command = $this->getMock('Guzzle\Service\Command\CommandInterface');
- $command
- ->expects($this->once())
- ->method('getRequest')
- ->will($this->returnValue(
- $this->getMock('Guzzle\Http\Message\Request', [], [], '', false)
- ));
-
- $response = new Response(400);
- $response->setBody('');
-
- /** @noinspection PhpParamsInspection */
- $exception = BadRequestException::fromCommand($command, $response);
-
- $this->assertInstanceOf(
- 'Apache\Usergrid\Api\Exception\BadRequestException',
- $exception
- );
- }
-
-}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/Exception/InvalidIdExceptionTest.php
----------------------------------------------------------------------
diff --git a/sdks/php5/apache-usergrid/tests/Api/Exception/InvalidIdExceptionTest.php b/sdks/php5/apache-usergrid/tests/Api/Exception/InvalidIdExceptionTest.php
deleted file mode 100644
index b74aa64..0000000
--- a/sdks/php5/apache-usergrid/tests/Api/Exception/InvalidIdExceptionTest.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-/**
- * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- * You may not use this file except in compliance with the License.
- * A copy of the License is located at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * or in the "license" file accompanying this file. This file is distributed
- * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-namespace Apache\Usergrid\Tests\Api\Exception;
-
-use Apache\Usergrid\Api\Exception\InvalidIdException;
-use Guzzle\Http\Message\Response;
-use PHPUnit_Framework_TestCase;
-
-/**
- * Class InvalidIdExceptionTest
- *
- * @package Apache/Usergrid
- * @version 1.0.0
- * @author Jason Kristian <ja...@gmail.com>
- * @license Apache License, Version 2.0
- * @copyright (c) 2008-2014, Baas Platform Pty. Ltd
- * @link http://baas-platform.com
- */
-class InvalidIdExceptionTest extends PHPUnit_Framework_TestCase
-{
- /** @test */
- public function it_can_create_the_exception()
- {
- $command = $this->getMock('Guzzle\Service\Command\CommandInterface');
- $command
- ->expects($this->once())
- ->method('getRequest')
- ->will($this->returnValue(
- $this->getMock('Guzzle\Http\Message\Request', [], [], '', false)
- ));
-
- $response = new Response(400);
- $response->setBody('');
-
- /** @noinspection PhpParamsInspection */
- $exception = InvalidIdException::fromCommand($command, $response);
-
- $this->assertInstanceOf(
- 'Apache\Usergrid\Api\Exception\InvalidIdException',
- $exception
- );
- }
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/Exception/NotFoundExceptionTest.php
----------------------------------------------------------------------
diff --git a/sdks/php5/apache-usergrid/tests/Api/Exception/NotFoundExceptionTest.php b/sdks/php5/apache-usergrid/tests/Api/Exception/NotFoundExceptionTest.php
deleted file mode 100644
index c264751..0000000
--- a/sdks/php5/apache-usergrid/tests/Api/Exception/NotFoundExceptionTest.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-/**
- * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- * You may not use this file except in compliance with the License.
- * A copy of the License is located at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * or in the "license" file accompanying this file. This file is distributed
- * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-namespace Apache\Usergrid\Tests\Api\Exception;
-
-use Apache\Usergrid\Api\Exception\NotFoundException;
-use Guzzle\Http\Message\Response;
-use PHPUnit_Framework_TestCase;
-
-/**
- * Class UnauthorizedExceptionTest
- *
- * @package Apache/Usergrid
- * @version 1.0.0
- * @author Jason Kristian <ja...@gmail.com>
- * @license Apache License, Version 2.0
- * @copyright (c) 2008-2014, Baas Platform Pty. Ltd
- * @link http://baas-platform.com
- */
-class NotFoundExceptionTest extends PHPUnit_Framework_TestCase
-{
- /** @test */
- public function it_can_create_the_exception()
- {
- $command = $this->getMock('Guzzle\Service\Command\CommandInterface');
- $command
- ->expects($this->once())
- ->method('getRequest')
- ->will($this->returnValue(
- $this->getMock('Guzzle\Http\Message\Request', [], [], '', false)
- ));
-
- $response = new Response(404);
- $response->setBody('');
-
- /** @noinspection PhpParamsInspection */
- $exception = NotFoundException::fromCommand($command, $response);
-
- $this->assertInstanceOf(
- 'Apache\Usergrid\Api\Exception\NotFoundException',
- $exception
- );
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/Exception/ServerErrorExceptionTest.php
----------------------------------------------------------------------
diff --git a/sdks/php5/apache-usergrid/tests/Api/Exception/ServerErrorExceptionTest.php b/sdks/php5/apache-usergrid/tests/Api/Exception/ServerErrorExceptionTest.php
deleted file mode 100644
index 514288f..0000000
--- a/sdks/php5/apache-usergrid/tests/Api/Exception/ServerErrorExceptionTest.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-/**
- * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- * You may not use this file except in compliance with the License.
- * A copy of the License is located at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * or in the "license" file accompanying this file. This file is distributed
- * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-namespace Apache\Usergrid\Tests\Api\Exception;
-
-use Apache\Usergrid\Api\Exception\ServerErrorException;
-use Guzzle\Http\Message\Response;
-use PHPUnit_Framework_TestCase;
-
-/**
- * Class ServerErrorException
- *
- * @package Apache/Usergrid
- * @version 1.0.0
- * @author Jason Kristian <ja...@gmail.com>
- * @license Apache License, Version 2.0
- * @copyright (c) 2008-2014, Baas Platform Pty. Ltd
- * @link http://baas-platform.com
- */
-class ServerErrorExceptionTest extends PHPUnit_Framework_TestCase
-{
- /** @test */
- public function it_can_create_the_exception()
- {
- $command = $this->getMock('Guzzle\Service\Command\CommandInterface');
- $command
- ->expects($this->once())
- ->method('getRequest')
- ->will($this->returnValue(
- $this->getMock('Guzzle\Http\Message\Request', [], [], '', false)
- ));
-
- $response = new Response(400);
- $response->setBody('');
-
- /** @noinspection PhpParamsInspection */
- $exception = ServerErrorException::fromCommand($command, $response);
-
- $this->assertInstanceOf(
- 'Apache\Usergrid\Api\Exception\ServerErrorException',
- $exception
- );
- }
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/Exception/UnauthorizedExceptionTest.php
----------------------------------------------------------------------
diff --git a/sdks/php5/apache-usergrid/tests/Api/Exception/UnauthorizedExceptionTest.php b/sdks/php5/apache-usergrid/tests/Api/Exception/UnauthorizedExceptionTest.php
deleted file mode 100644
index 889e7de..0000000
--- a/sdks/php5/apache-usergrid/tests/Api/Exception/UnauthorizedExceptionTest.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-/**
- * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- * You may not use this file except in compliance with the License.
- * A copy of the License is located at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * or in the "license" file accompanying this file. This file is distributed
- * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-namespace Apache\Usergrid\Tests\Api\Exception;
-
-
-use Apache\Usergrid\Api\Exception\UnauthorizedException;
-use Guzzle\Http\Message\Response;
-use PHPUnit_Framework_TestCase;
-
-/**
- * Class UnauthorizedExceptionTest
- *
- * @package Apache/Usergrid
- * @version 1.0.0
- * @author Jason Kristian <ja...@gmail.com>
- * @license Apache License, Version 2.0
- * @copyright (c) 2008-2014, Baas Platform Pty. Ltd
- * @link http://baas-platform.com
- */
-class UnauthorizedExceptionTest extends PHPUnit_Framework_TestCase
-{
- /** @test */
- public function it_can_create_the_exception()
- {
- $command = $this->getMock('Guzzle\Service\Command\CommandInterface');
- $command
- ->expects($this->once())
- ->method('getRequest')
- ->will($this->returnValue(
- $this->getMock('Guzzle\Http\Message\Request', [], [], '', false)
- ));
-
- $response = new Response(401);
- $response->setBody('');
-
- /** @noinspection PhpParamsInspection */
- $exception = UnauthorizedException::fromCommand($command, $response);
-
- $this->assertInstanceOf(
- 'Apache\Usergrid\Api\Exception\UnauthorizedException',
- $exception
- );
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/Filters/BooleanTest.php
----------------------------------------------------------------------
diff --git a/sdks/php5/apache-usergrid/tests/Api/Filters/BooleanTest.php b/sdks/php5/apache-usergrid/tests/Api/Filters/BooleanTest.php
deleted file mode 100644
index 1550a55..0000000
--- a/sdks/php5/apache-usergrid/tests/Api/Filters/BooleanTest.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-/**
- * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- * You may not use this file except in compliance with the License.
- * A copy of the License is located at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * or in the "license" file accompanying this file. This file is distributed
- * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-namespace Apache\Usergrid\Tests\Api\Filters;
-
-
-use Apache\Usergrid\Api\Filters\Boolean;
-use PHPUnit_Framework_TestCase;
-
-/**
- * Class BooleanTest
- *
- * @package Apache/Usergrid
- * @version 1.0.0
- * @author Jason Kristian <ja...@gmail.com>
- * @license Apache License, Version 2.0
- * @copyright (c) 2008-2014, Baas Platform Pty. Ltd
- * @link http://baas-platform.com
- */
-class BooleanTest extends PHPUnit_Framework_TestCase
-{
-
- /** @test */
- public function it_can_convert_booleans()
- {
- $this->assertEquals('true', Boolean::convert(1));
- $this->assertEquals('true', Boolean::convert(true));
-
- $this->assertEquals('false', Boolean::convert(0));
- $this->assertEquals('false', Boolean::convert(false));
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/Filters/DateTest.php
----------------------------------------------------------------------
diff --git a/sdks/php5/apache-usergrid/tests/Api/Filters/DateTest.php b/sdks/php5/apache-usergrid/tests/Api/Filters/DateTest.php
deleted file mode 100644
index 13d37f6..0000000
--- a/sdks/php5/apache-usergrid/tests/Api/Filters/DateTest.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-/**
- * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- * You may not use this file except in compliance with the License.
- * A copy of the License is located at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * or in the "license" file accompanying this file. This file is distributed
- * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-namespace Apache\Usergrid\Tests\Api\Filters;
-
-
-use Apache\Usergrid\Api\Filters\Date;
-use PHPUnit_Framework_TestCase;
-
-/**
- * Class DateTest
- *
- * @package Apache/Usergrid
- * @version 1.0.0
- * @author Jason Kristian <ja...@gmail.com>
- * @license Apache License, Version 2.0
- * @copyright (c) 2008-2014, Baas Platform Pty. Ltd
- * @link http://baas-platform.com
- */
-class DateTest extends PHPUnit_Framework_TestCase
-{
- /** @test */
- public function it_can_convert_dates()
- {
-
- $this->assertEquals('Tue, Oct 14, 2014 3:55 AM', Date::convert(1413258923819));
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/ManagementTest.php
----------------------------------------------------------------------
diff --git a/sdks/php5/apache-usergrid/tests/Api/ManagementTest.php b/sdks/php5/apache-usergrid/tests/Api/ManagementTest.php
deleted file mode 100644
index 46ea21c..0000000
--- a/sdks/php5/apache-usergrid/tests/Api/ManagementTest.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-/**
- * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- * You may not use this file except in compliance with the License.
- * A copy of the License is located at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * or in the "license" file accompanying this file. This file is distributed
- * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-namespace Apache\Usergrid\Tests\Api;
-
-
-use Apache\Usergrid\Api\Exception\UsergridException;
-use PHPUnit_Framework_TestCase;
-
-/**
- * Class ManagementTest
- *
- * @package Apache/Usergrid
- * @version 1.0.0
- * @author Jason Kristian <ja...@gmail.com>
- * @license Apache License, Version 2.0
- * @copyright (c) 2008-2014, Baas Platform Pty. Ltd
- * @link http://baas-platform.com
- */
-class ManagementTest extends PHPUnit_Framework_TestCase
-{
- protected $usergrid;
- protected $config;
-
- public function setUp()
- {
- $this->usergrid = $GLOBALS['usergrid'];
- }
-
- /**
- * @test
- * @group internet
- */
- public function it_can_make_management_call()
- {
- $error = null;
-
- try {
- $this->usergrid->management()->OrgAppsGet();
- } catch (UsergridException $e) {
- $error = $e;
- }
-
- $this->assertNull($error, "Should be no exception if manifest files exits and sdk can make management calls");
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/QueryAggregatorTest.php
----------------------------------------------------------------------
diff --git a/sdks/php5/apache-usergrid/tests/Api/QueryAggregatorTest.php b/sdks/php5/apache-usergrid/tests/Api/QueryAggregatorTest.php
deleted file mode 100644
index eaa7b0b..0000000
--- a/sdks/php5/apache-usergrid/tests/Api/QueryAggregatorTest.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-/**
- * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- * You may not use this file except in compliance with the License.
- * A copy of the License is located at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * or in the "license" file accompanying this file. This file is distributed
- * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-namespace Apache\Usergrid\Tests\Api;
-
-
-use PHPUnit_Framework_TestCase;
-
-/**
- * Class QueryAggregatorTest
- *
- * @package Apache/Usergrid
- * @version 1.0.0
- * @author Jason Kristian <ja...@gmail.com>
- * @license Apache License, Version 2.0
- * @copyright (c) 2008-2014, Baas Platform Pty. Ltd
- * @link http://baas-platform.com
- */
-class QueryAggregatorTest extends PHPUnit_Framework_TestCase
-{
-
- /** @test */
- public function it_can_test_the_aggregate_method()
- {
- }
-
-}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Api/UsergridTest.php
----------------------------------------------------------------------
diff --git a/sdks/php5/apache-usergrid/tests/Api/UsergridTest.php b/sdks/php5/apache-usergrid/tests/Api/UsergridTest.php
deleted file mode 100644
index 0c7a340..0000000
--- a/sdks/php5/apache-usergrid/tests/Api/UsergridTest.php
+++ /dev/null
@@ -1,153 +0,0 @@
-<?php
-/**
- * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- * You may not use this file except in compliance with the License.
- * A copy of the License is located at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * or in the "license" file accompanying this file. This file is distributed
- * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-namespace Apache\Usergrid\Tests\Api;
-
-use Apache\Usergrid\Api\Exception\UnauthorizedException;
-use PHPUnit_Framework_TestCase;
-
-/**
- * Class UsergridTest
- *
- * @package Apache/Usergrid
- * @version 1.0.0
- * @author Jason Kristian <ja...@gmail.com>
- * @license Apache License, Version 2.0
- * @copyright (c) 2008-2014, Baas Platform Pty. Ltd
- * @link http://baas-platform.com
- */
-class UsergridTest extends PHPUnit_Framework_TestCase
-{
-
- /** @var Usergrid Api Client */
- protected $usergrid;
-
- protected $config;
-
- /**
- * Setup resources and dependencies
- *
- * @return void
- */
- public function setup()
- {
- $this->usergrid = $GLOBALS['usergrid'];
- }
-
- /**
- * @test
- * @group internet
- */
- public function it_can_retrieve_oauth2_token()
- {
- $error = null;
-
- try {
- $this->usergrid->application()->EntityGet(['collection' => 'roles']);
- } catch (UnauthorizedException $e) {
- $error = $e;
- }
-
- $this->assertNull($error, 'Exception should be null if authorized');
- }
-
- /** @test */
- public function it_can_set_the_oauth2_token()
- {
- $this->usergrid->setToken('ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890');
-
- $this->assertEquals('ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890', $this->usergrid->getToken());
- }
-
- /** @test */
- public function it_can_retrieve_user_agent()
- {
-
- $this->assertEquals('BaaS-Usergrid/1.0.0', $this->usergrid->getUserAgent());
- }
-
- /** @test */
- public function it_can_set_the_user_agent()
- {
-
- $this->usergrid->setUserAgent('Foo/Bar');
-
- $this->assertEquals('Foo/Bar', $this->usergrid->getUserAgent());
- }
-
- /** @test */
- public function it_can_retrieve_the_manifest_path()
- {
-
- $this->assertEquals($this->usergrid->getManifestPath(), $this->usergrid->getManifestPath());
- }
-
- /** @test */
- public function it_can_set_the_manifest_path()
- {
- $this->usergrid->setManifestPath('/usr/foo/bar');
-
- $this->assertEquals('/usr/foo/bar', $this->usergrid->getManifestPath());
- }
-
- /** @test */
- public function it_can_retrieve_api_version()
- {
- $this->assertEquals('1.0.1', $this->usergrid->getVersion());
- }
-
- /** @test */
- public function it_can_set_api_version()
- {
- $this->usergrid->setVersion('1.0.1');
-
- $this->assertEquals('1.0.1', $this->usergrid->getVersion());
- }
-
-
- /** @test */
- public function it_can_retrieve_the_client_header()
- {
- $headers = $this->usergrid->getHeaders();
-
- $expected = [
- 'Usergrid-Version' => '1.0.1',
- 'Authorization' => 'Bearer ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
- ];
-
- $this->assertEquals($headers, $expected);
- }
-
- /** @test */
- public function it_can_set_client_headers()
- {
- $this->usergrid->setHeaders([
- 'some-header' => 'foo-bar',
- ]);
-
- $headers = $this->usergrid->getHeaders();
-
- $expected = [
- 'Usergrid-Version' => '1.0.1',
- 'Authorization' => 'Bearer ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890',
- 'some-header' => 'foo-bar',
- ];
-
- $this->assertEquals($headers, $expected);
- }
-
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/Laravel/Facades/UsergridTest.php
----------------------------------------------------------------------
diff --git a/sdks/php5/apache-usergrid/tests/Laravel/Facades/UsergridTest.php b/sdks/php5/apache-usergrid/tests/Laravel/Facades/UsergridTest.php
deleted file mode 100644
index 3362bfc..0000000
--- a/sdks/php5/apache-usergrid/tests/Laravel/Facades/UsergridTest.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-/**
- * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- * You may not use this file except in compliance with the License.
- * A copy of the License is located at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * or in the "license" file accompanying this file. This file is distributed
- * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-namespace Apache\Usergrid\Tests\Laravel\Facades;
-
-use PHPUnit_Framework_TestCase;
-use ReflectionClass;
-
-/**
- * Class UsergridTest
- *
- * @package Apache/Usergrid
- * @version 1.0.0
- * @author Jason Kristian <ja...@gmail.com>
- * @license Apache License, Version 2.0
- * @copyright (c) 2008-2014, Baas Platform Pty. Ltd
- * @link http://baas-platform.com
- */
-class UsergridTest extends PHPUnit_Framework_TestCase
-{
- /** @test */
- public function it_can_test_it_is_a_facade()
- {
- $facade = new ReflectionClass('Illuminate\Support\Facades\Facade');
-
- $reflection = new ReflectionClass('Apache\Usergrid\Laravel\Facades\Usergrid');
-
- $this->assertTrue($reflection->isSubclassOf($facade));
- }
-
- /** @test */
- public function it_can_test_it_is_a_facade_accessor()
- {
- $reflection = new ReflectionClass('Apache\Usergrid\Laravel\Facades\Usergrid');
-
- $method = $reflection->getMethod('getFacadeAccessor');
- $method->setAccessible(true);
-
-
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/php5/apache-usergrid/tests/bootstrap.php
----------------------------------------------------------------------
diff --git a/sdks/php5/apache-usergrid/tests/bootstrap.php b/sdks/php5/apache-usergrid/tests/bootstrap.php
deleted file mode 100644
index edc11d1..0000000
--- a/sdks/php5/apache-usergrid/tests/bootstrap.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-/**
- * Copyright 2010-2014 baas-platform.com, Pty Ltd. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- * You may not use this file except in compliance with the License.
- * A copy of the License is located at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * or in the "license" file accompanying this file. This file is distributed
- * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-include('vendor/autoload.php');
-
-use Apache\Usergrid\Native\UsergridBootstrapper;
-
-$config = [
-
- 'usergrid' => [
-
- 'url' => 'https://api.usergrid.com',
- 'version' => '1.0.1',
- 'orgName' => null,
- 'appName' => null,
- 'manifestPath' => null,
- //its better not to set the real values here if using laravel set them in a .env file or
- // if your not using Laravel set them as environment variable and include them here using $_ENV global.
- // so that way you can be sure not to commit privates ID to a public repo
- 'clientId' => null,
- 'clientSecret' => null,
- 'username' => null,
- 'password' => null,
- /**
- * The Auth Type setting is the Oauth 2 end point you want to get the OAuth 2
- * Token from. You have two options here one is 'application' the other is 'organization'
- *
- * organization will get the the token from http://example.com/management using client_credentials or password grant type
- * application will get the token from http://example.com/managment/org_name/app_name using client_credentials or password grant type
- */
- 'auth_type' => 'organization',
- /** The Grant Type to use
- *
- * This has to be set to one of the 2 grant types that Apache Usergrid
- * supports which at the moment is client_credentials or password but at
- * 2 level organization or application
- */
- 'grant_type' => 'client_credentials',
- /**
- * if you want to manage your own auth flow by calling the token api and setting the token your self just set this to false
- * */
- 'enable_oauth2_plugin' => true
- ]
-];
-
-$boot = new UsergridBootstrapper($config);
-$usergrid = $boot->createUsergrid();
-
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/ruby-on-rails/Gemfile
----------------------------------------------------------------------
diff --git a/sdks/ruby-on-rails/Gemfile b/sdks/ruby-on-rails/Gemfile
deleted file mode 100644
index 60aff2b..0000000
--- a/sdks/ruby-on-rails/Gemfile
+++ /dev/null
@@ -1,19 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-source 'https://rubygems.org'
-
-# Specify your gem's dependencies in usergrid_ironhorse.gemspec
-gemspec
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/ruby-on-rails/LICENSE.txt
----------------------------------------------------------------------
diff --git a/sdks/ruby-on-rails/LICENSE.txt b/sdks/ruby-on-rails/LICENSE.txt
deleted file mode 100644
index ae1e83e..0000000
--- a/sdks/ruby-on-rails/LICENSE.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/ruby-on-rails/README.md
----------------------------------------------------------------------
diff --git a/sdks/ruby-on-rails/README.md b/sdks/ruby-on-rails/README.md
deleted file mode 100644
index dce855b..0000000
--- a/sdks/ruby-on-rails/README.md
+++ /dev/null
@@ -1,212 +0,0 @@
-# Apache Usergrid_ironhorse
-
-Usergrid_ironhorse is based on Usergrid_iron and enables Ruby or Rails applications
-native Rails-style access to Apigee's App Services (aka Usergrid) REST API.
-
-## Compatibility
-
-**Usergrid_ironhorse is currently only compatible with Ruby on Rails 3.2.**
-
-Thus, if you are using Rails 4.x, you must use Usergrid_iron (the low-level API for Ruby).
-Alternatively, we would welcome your contributions to make Usergrid_ironhorse compatible with Rails 4.x. Thanks!
-
-## Installation
-
-Add this line to your application's Gemfile:
-
- gem 'usergrid_ironhorse'
-
-And then execute:
-
- $ bundle
-
-Or install it yourself as:
-
- $ gem install usergrid_ironhorse
-
-
-## Usage
-
-### Not familiar with Usergrid's App Services?
-
-#### It's great stuff! Check it out, here:
-
- Docs: <https://usergrid.apache.org/docs/>
- Open source: <https://github.com/usergrid/usergrid/>
-
-### Getting started with the Usergrid_ironhorse SDK is super simple!
-
-#### Setup
-
-* Add 'gem usergrid_ironhorse' to your Gemfile
-* Create a 'config/usergrid.yml' file that looks something like this (the
-auth_token is your application token):
-
-```
-development:
- application_url: http://localhost:8080/my-organization/my-application
- client_id: YXA6BVYasLdNEeKBd1A2yYstg
- client_secret: YXA60Dnbzaxg1ObkE8ffsIxsGzsSo8
- require_login: false
-
-test:
- application_url: http://localhost:8080/my-organization/my-application
- client_id: YXA6BVYasLdNEeKBd1A2yYstg
- client_secret: YXA60Dnbzaxg1ObkE8ffsIxsGzsSo8
- require_login: false
-
-production:
- application_url: http://api.usergrid.com/my-organization/my-application
- client_id: YXA6BVYasLdNEeKBd1A2yYstg
- client_secret: YXA60Dnbzaxg1ObkE8ffsIxsGzsSo8
- require_login: false
-```
-
-#### Get going!
-
-* Subclass Usergrid::Ironhorse::Base for your models.
-Your models will automatically be stored in a collection according to the name of your
-class as defined by Rails' ActiveModel::Naming module. (Which you may override by
-implementing model_name if desired.)
-
-```
-class Developer < Usergrid::Ironhorse::Base
- validates :name, :presence => true # Yes, of course you can use validation
-
-end
-```
-
-* Now just use the Rails methods you're already familiar with:
-
-```
-
- dev = Developer.new language: 'Ruby'
- dev.valid? # nope!
- dev.errors # {:name=>["can't be blank"]}
- dev.name = 'Scott'
- dev.save!
-
- dev = Developer.find_or_create_by_name 'Scott'
- dev.favorite_color = 'green' # assign new attributes automatically
-
- dev = Developer.find_by_name 'Scott'
-```
-
-* BTW: If you need to do management tasks, wrapping the work in an as_admin block
-will use the auth_token from your settings:
-
-```
-User.as_admin do
- # do protected task
-end
-```
-
-
-#### (Optional) Need to have user-specific logins to UserGrid?
-
-* Create a User model and subclass `Usergrid::Ironhorse::Base` and `extend
-Usergrid::Ironhorse::UserContext` like so:
-
-```
-class User < Usergrid::Ironhorse::Base
- extend Usergrid::Ironhorse::UserContext
- ...
-end
-```
-
-* Set up your authentication
- * Use `User.authenticate(username, password, session)` to login.
- * Use `User.clear_authentication(session)` to log out.
-* Propogate the authentication in your ApplicationController:
-
-```
-before_filter :set_user_context
-def set_user_context
- User.set_context session
-end
-```
-
-* Optionally, if you need to access the User from your view, you may add something
-like the following to your ApplicationController:
-
-```
-helper_method :current_user
-def current_user
- User.current_user
-end
-```
-
-## Contributing
-
-We welcome your enhancements!
-
-1. Fork it
-2. Create your feature branch (`git checkout -b my-new-feature`)
-3. Write some broken rspecs.
-4. Fix the rspecs with your new code.
-3. Commit your changes (`git commit -am 'Added some feature'`)
-4. Push your changes to the upstream branch (`git push origin my-new-feature`)
-5. Create new Pull Request
-
-We're shooting for 100% rspec coverage, so keep that in mind!
-
-In order to run the tests, check out the Usergrid open source project
-(https://github.com/usergrid/usergrid/), build, and launch it locally.
-
-(Note: If you change your local Usergrid settings from the default, be sure to update
-usergrid_ironhorse/spec/spec_settings.yaml to match.)
-
-
-## Release notes
-
-### 0.1.1
-* New Features
- 1. Now prefer application client_id and client_secret (instead of auth_token) in usergrid.yml.
-
-### 0.1.0
-* New Features
- 1. next_page() added to return the next page of results from the server. An example of this used in conjunction
- with to_a() is in base_spec.rb (see "should be able to page through results").
-* Incompatible changes
- 1. each() iteration will now transparently cross page boundaries (as generally expected by Rails users).
- You may use limit(n) to restrict the result set, but note that limit will retrieve the number of entities
- specified as a single batch (no paging).
-
-### 0.0.5
-* New Features
- 1. support MassAssignmentSecurity (attr_accessible & attr_protected)
-
-### 0.0.4
-* New Features
- 1. add require_login to config (with ability to skip individual logins)
-
-### 0.0.3
-* Internal
- 1. Improve authentication and user propagation
-
-### 0.0.2
-* New Features
- 1. Authentication and user propagation features
-
-### 0.0.1
-* Initial commit
- 1. Support for most ActiveModel stuff including Validations
- 1. No scoping support
-
-
-## License
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements. See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-the ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/ruby-on-rails/Rakefile
----------------------------------------------------------------------
diff --git a/sdks/ruby-on-rails/Rakefile b/sdks/ruby-on-rails/Rakefile
deleted file mode 100644
index 632aa48..0000000
--- a/sdks/ruby-on-rails/Rakefile
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env rake
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-require "bundler/gem_tasks"
-
-require 'rspec/core/rake_task'
-RSpec::Core::RakeTask.new(:spec)
-
-RSpec::Core::RakeTask.new("spec:coverage")
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/ruby-on-rails/lib/extensions/hash.rb
----------------------------------------------------------------------
diff --git a/sdks/ruby-on-rails/lib/extensions/hash.rb b/sdks/ruby-on-rails/lib/extensions/hash.rb
deleted file mode 100644
index a82062a..0000000
--- a/sdks/ruby-on-rails/lib/extensions/hash.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-class Hash
-
- def nested_under_indifferent_access
- self
- end
-
-end
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/ruby-on-rails/lib/extensions/resource.rb
----------------------------------------------------------------------
diff --git a/sdks/ruby-on-rails/lib/extensions/resource.rb b/sdks/ruby-on-rails/lib/extensions/resource.rb
deleted file mode 100644
index b858b92..0000000
--- a/sdks/ruby-on-rails/lib/extensions/resource.rb
+++ /dev/null
@@ -1,66 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# overrides methods dealing with auth_token to operate on a thread basis
-module Usergrid
- class Resource
-
- def options
- options = @options.clone
- require_login = Ironhorse::Base.settings[:require_login] != false
- if require_login
- auth_token = Thread.current[:usergrid_auth_token]
- else
- unless Ironhorse::Base.settings[:auth_token]
- as_admin {}
- end
- auth_token = Ironhorse::Base.settings[:auth_token]
- end
- options[:headers].delete :Authorization
- options[:headers][:Authorization] = "Bearer #{auth_token}" if auth_token
- options
- end
-
- def as_admin(&block)
- save_auth_token = Thread.current[:usergrid_auth_token]
- begin
- unless Ironhorse::Base.settings[:auth_token]
- resource = RestClient::Resource.new Ironhorse::Base.settings[:application_url]
- response = resource['token'].post grant_type: 'client_credentials', client_id: Ironhorse::Base.settings[:client_id], client_secret: Ironhorse::Base.settings[:client_secret]
- Ironhorse::Base.settings[:auth_token] = MultiJson.load(response)['access_token']
- end
- Thread.current[:usergrid_auth_token] = Ironhorse::Base.settings[:auth_token]
- yield block
- ensure
- Thread.current[:usergrid_auth_token] = save_auth_token
- end
- end
-
- # gets user token and automatically set auth header for future requests on this Thread
- # precondition: resource must already be set to the correct context (application or management)
- def login(username, password)
- params = { grant_type: "password", username: username, password: password }
- response = self['token'].get({ params: params })
- user_uuid = response.data['user']['uuid']
- user_access_token = response.data['access_token']
- Thread.current[:usergrid_user_id] = user_uuid
- Thread.current[:usergrid_auth_token] = user_access_token
- @current_user = self["/users/#{user_uuid}"].get.entity
- response
- end
-
- end
-end
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/ruby-on-rails/lib/usergrid_ironhorse.rb
----------------------------------------------------------------------
diff --git a/sdks/ruby-on-rails/lib/usergrid_ironhorse.rb b/sdks/ruby-on-rails/lib/usergrid_ironhorse.rb
deleted file mode 100644
index 0dde1d1..0000000
--- a/sdks/ruby-on-rails/lib/usergrid_ironhorse.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-require 'logger'
-require 'active_model'
-require 'rest-client'
-require 'active_support'
-require 'usergrid_iron'
-require 'active_record/errors'
-
-module Usergrid
- module Ironhorse
-
- Dir[Pathname.new(File.dirname(__FILE__)).join("extensions/**/*.rb")].each { |f| require f }
-
- USERGRID_PATH = File.join File.dirname(__FILE__), 'usergrid_ironhorse'
-
- def self.usergrid_path *path
- File.join USERGRID_PATH, *path
- end
-
- require usergrid_path('base')
- require usergrid_path('query')
-
- autoload :UserContext, usergrid_path('user_context')
- end
-end
http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/ruby-on-rails/lib/usergrid_ironhorse/base.rb
----------------------------------------------------------------------
diff --git a/sdks/ruby-on-rails/lib/usergrid_ironhorse/base.rb b/sdks/ruby-on-rails/lib/usergrid_ironhorse/base.rb
deleted file mode 100644
index aa6f4d9..0000000
--- a/sdks/ruby-on-rails/lib/usergrid_ironhorse/base.rb
+++ /dev/null
@@ -1,370 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-require 'active_record/validations'
-require 'active_record/errors'
-require 'active_record/callbacks'
-
-module Usergrid
- module Ironhorse
-
- class Base
- include ActiveModel::AttributeMethods
- include ActiveModel::Conversion
- include ActiveModel::Validations
- include ActiveModel::Dirty
- include ActiveModel::Serialization
- include ActiveModel::MassAssignmentSecurity
- extend ActiveModel::Naming
- extend ActiveModel::Callbacks
-
- RESERVED_ATTRIBUTES = %w(metadata created modified uuid type uri)
-
- define_model_callbacks :create, :destroy, :save, :update
-
- # todo: determine the subset to support...
- # unsupported: :group, :joins, :preload, :eager_load, :includes, :from, :lock,
- # :having, :create_with, :uniq, :references, :none, :count,
- # :average, :minimum, :maximum, :sum, :calculate, :ids
- # :find_each, :find_in_batches, :offset, :readonly
-
- #delegate :find, :take, :take!, :first, :first!, :last, :last!, :exists?, :any?, :many?, :to => :all
- #delegate :first_or_create, :first_or_create!, :first_or_initialize, :to => :all
- #delegate :find_by, :find_by!, :to => :all
- #delegate :destroy, :destroy_all, :delete, :delete_all, :update, :update_all, :to => :all
- #delegate :find_each, :find_in_batches, :to => :all
- #delegate :select, :group, :order, :except, :reorder, :limit, :offset,
- # :where, :preload, :eager_load, :includes, :from, :lock, :readonly,
- # :having, :create_with, :uniq, :references, :none, :to => :all
- #delegate :count, :average, :minimum, :maximum, :sum, :calculate, :pluck, :ids, :to => :all
-
- @@settings ||= nil
-
- attr_accessor :attributes
-
- HashWithIndifferentAccess = ActiveSupport::HashWithIndifferentAccess
- RecordNotSaved = ActiveRecord::RecordNotSaved
-
- def initialize(attrs=nil)
- @attributes = HashWithIndifferentAccess.new
- assign_attributes attrs if attrs
- end
-
- def self.configure!(application_url, auth_token)
- @@settings = HashWithIndifferentAccess.new application_url: application_url, auth_token: auth_token
- end
-
- def self.settings
- return @@settings if @@settings
- path = "config/usergrid.yml"
- environment = defined?(Rails) && Rails.respond_to?(:env) ? Rails.env : ENV['RACK_ENV']
- @@settings = HashWithIndifferentAccess.new YAML.load(ERB.new(File.new(path).read).result)[environment]
- end
-
- # forward to all
- def self.method_missing(method, *args, &block)
- all.send method, *args, &block
- end
-
- # forward to all
- def method_missing(method, *args, &block)
- if args.size == 0
- attributes[method]
- elsif args.size == 1 && method[-1] == '='
- attr = method[0..-2]
- if attributes[attr] != args[0]
- attribute_will_change!(attr)
- attributes[attr] = args[0]
- end
- else
- all.send method, *args, &block
- end
- end
-
- # todo: scopes
- def self.all
- unscoped
- end
-
- #def self.scope(symbol, scope)
- # @scopes[symbol] = scope
- #end
-
- #def self.current_scope
- # @current_scope ||= default_scope
- #end
- #
- #def self.current_scope=(scope)
- # @current_scope = scope
- #end
- #
- #def self.default_scope
- # @default_scope ||= unscoped
- #end
-
- def self.unscoped
- Query.new(self)
- end
-
- def self.create(attributes=nil, options=nil, &block)
- if attributes.is_a?(Array)
- attributes.collect { |attr| create(attr, options, &block) }
- else
- object = new(attributes, &block)
- object.save
- object
- end
- end
-
- def self.create!(attributes=nil, options=nil, &block)
- if attributes.is_a?(Array)
- attributes.collect {|attr| create!(attr, options, &block)}
- else
- object = new(attributes)
- yield(object) if block_given?
- object.save!
- object
- end
- end
-
- def self.class_attributes
- @class_attributes ||= {}
- end
-
- # Returns true if the record is persisted, i.e. it's not a new record and it was
- # not destroyed, otherwise returns false.
- def persisted?
- !(new_record? || destroyed?)
- end
-
- def new_record?
- !self.uuid
- end
-
- def self.group
- model_name.plural.downcase
- end
-
- # Creates a Usergrid::Resource
- def self.resource
- app = Usergrid::Application.new settings[:application_url]
- #app.auth_token = Thread.current[:usergrid_auth_token]
- app[group]
- end
-
- # Saves the model.
- #
- # If the model is new a record gets created in the database, otherwise
- # the existing record gets updated.
- #
- # By default, save always run validations. If any of them fail the action
- # is cancelled and +save+ returns +false+. However, if you supply
- # :validate => false, validations are bypassed altogether. See
- # ActiveRecord::Validations for more information.
- #
- # There's a series of callbacks associated with +save+. If any of the
- # <tt>before_*</tt> callbacks return +false+ the action is cancelled and
- # +save+ returns +false+. See ActiveRecord::Callbacks for further
- # details.
- def save
- begin
- create_or_update
- rescue ActiveRecord::RecordInvalid
- false
- end
- end
-
- # Saves the model.
- #
- # If the model is new a record gets created in the database, otherwise
- # the existing record gets updated.
- #
- # With <tt>save!</tt> validations always run. If any of them fail
- # ActiveRecord::RecordInvalid gets raised. See ActiveRecord::Validations
- # for more information.
- #
- # There's a series of callbacks associated with <tt>save!</tt>. If any of
- # the <tt>before_*</tt> callbacks return +false+ the action is cancelled
- # and <tt>save!</tt> raises ActiveRecord::RecordNotSaved. See
- # ActiveRecord::Callbacks for further details.
- def save!
- create_or_update or raise RecordNotSaved
- end
-
- # Deletes the record in the database and freezes this instance to
- # reflect that no changes should be made (since they can't be
- # persisted). Returns the frozen instance.
- #
- # The row is simply removed with a +DELETE+ statement on the
- # record's primary key, and no callbacks are executed.
- #
- # To enforce the object's +before_destroy+ and +after_destroy+
- # callbacks, Observer methods, or any <tt>:dependent</tt> association
- # options, use <tt>#destroy</tt>.
- def delete
- self.class.delete(id) if persisted?
- @destroyed = true
- freeze
- end
-
- # Deletes the record in the database and freezes this instance to reflect
- # that no changes should be made (since they can't be persisted).
- #
- # There's a series of callbacks associated with <tt>destroy</tt>. If
- # the <tt>before_destroy</tt> callback return +false+ the action is cancelled
- # and <tt>destroy</tt> returns +false+. See
- # ActiveRecord::Callbacks for further details.
- def destroy
- raise ReadOnlyRecord if readonly?
- # todo: callbacks?
- instance_resource.delete if persisted?
- @destroyed = true
- freeze
- end
-
- # Deletes the record in the database and freezes this instance to reflect
- # that no changes should be made (since they can't be persisted).
- #
- # There's a series of callbacks associated with <tt>destroy!</tt>. If
- # the <tt>before_destroy</tt> callback return +false+ the action is cancelled
- # and <tt>destroy!</tt> raises ActiveRecord::RecordNotDestroyed. See
- # ActiveRecord::Callbacks for further details.
- def destroy!
- destroy || raise(ActiveRecord::RecordNotDestroyed)
- end
-
- # Returns true if this object has been destroyed, otherwise returns false.
- def destroyed?
- !!@destroyed
- end
-
- # Reloads the attributes of this object from the database.
- def reload
- return false if !persisted?
- fresh_object = self.class.find(id)
- refresh_data fresh_object.instance_variable_get('@attributes')
- self
- end
-
- # Updates the attributes of the model from the passed-in hash and saves the
- # record, all wrapped in a transaction. If the object is invalid, the saving
- # will fail and false will be returned.
- def update_attributes(attributes)
- assign_attributes attributes
- save
- end
-
- # Updates its receiver just like +update_attributes+ but calls <tt>save!</tt> instead
- # of +save+, so an exception is raised if the record is invalid.
- def update_attributes!(attributes)
- assign_attributes attributes
- save!
- end
-
- # Note that whenever you include ActiveModel::AttributeMethods in your class,
- # it requires you to implement an +attributes+ method which returns a hash
- # with each attribute name in your model as hash key and the attribute value as
- # hash value.
- #
- # Hash keys must be strings.
- def attributes
- @attributes ||= self.class.class_attributes.clone
- end
-
- def id; self.uuid end
- def created_at; self.created end
- def updated_at; self.modified end
-
-
- protected
-
-
- def assign_attributes(attrs)
- attrs = sanitize_for_mass_assignment(attrs)
- attrs.each do |attr,value|
- attr = attr.to_s
- unless attributes[attr] == value
- attribute_will_change!(attr) unless RESERVED_ATTRIBUTES.include? attr
- attributes[attr] = value
- end
- end
- end
-
- def create_or_update
- raise ReadOnlyRecord if readonly?
- if valid?
- run_callbacks :save do
- return new_record? ? do_create : do_update
- end
- end
- false
- end
-
- def do_create
- group_resource.post(unsaved_attributes) do |resp, req, res, &block|
- if resp.code.to_s == "200" || resp.code.to_s == "201"
- refresh_data resp.entity_data
- return true
- else
- errors.add(resp.code.to_s, resp)
- return false
- end
- end
- end
-
- def do_update
- return false unless changed?
-
- instance_resource.put(unsaved_attributes) do |resp, req, res, &block|
- if resp.code.to_s == "200" || resp.code.to_s == "201"
- refresh_data resp.entity_data
- return true
- else
- errors.add(resp.code, resp)
- return false
- end
- end
- end
-
- def unsaved_attributes
- HashWithIndifferentAccess[changed.collect {|k| [k, attributes[k]]}]
- end
-
- def group_resource
- self.class.resource
- end
-
- def instance_resource
- self.class.resource["#{self.id}"]
- end
-
- def refresh_data(entity_data)
- @previously_changed = changes
- @changed_attributes.clear
- @attributes = HashWithIndifferentAccess.new entity_data
- end
-
- def attribute_will_change!(attr)
- begin
- value = __send__(attr)
- value = value.duplicable? ? value.clone : value
- rescue TypeError, NoMethodError
- end
-
- changed_attributes[attr] = value unless changed_attributes.include?(attr)
- end
- end
- end
-end