Skip to content

Commit c233659

Browse files
committed
implement an in-memory store
1 parent 8bf9ab7 commit c233659

File tree

3 files changed

+70
-0
lines changed

3 files changed

+70
-0
lines changed

src/MemorySettingStore.php

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<?php
2+
/**
3+
* Laravel 4 - Persistant Settings
4+
*
5+
* @author Andreas Lutro <[email protected]>
6+
* @license http://opensource.org/licenses/MIT
7+
* @package l4-settings
8+
*/
9+
10+
namespace anlutro\LaravelSettings;
11+
12+
class MemorySettingStore extends SettingStore
13+
{
14+
/**
15+
* @param array $data
16+
*/
17+
public function __construct(array $data = null)
18+
{
19+
if ($data) {
20+
$this->data = $data;
21+
}
22+
}
23+
24+
/**
25+
* {@inheritdoc}
26+
*/
27+
protected function read()
28+
{
29+
return $this->data;
30+
}
31+
32+
/**
33+
* {@inheritdoc}
34+
*/
35+
protected function write(array $data)
36+
{
37+
// do nothing
38+
}
39+
}

src/SettingsManager.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,16 @@ public function createDatabaseDriver()
3434
return new DatabaseSettingStore($connection, $table);
3535
}
3636

37+
public function createMemoryDriver()
38+
{
39+
return new MemorySettingStore();
40+
}
41+
42+
public function createArrayDriver()
43+
{
44+
return $this->createMemoryDriver();
45+
}
46+
3747
protected function getConfig($key)
3848
{
3949
if (version_compare(Application::VERSION, '5.0', '>=')) {

tests/functional/MemoryTest.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
class MemoryTest extends AbstractFunctionalTest
4+
{
5+
protected function assertStoreEquals($store, $expected, $message = null)
6+
{
7+
$this->assertEquals($expected, $store->all(), $message);
8+
// removed persistance test assertions
9+
}
10+
11+
protected function assertStoreKeyEquals($store, $key, $expected, $message = null)
12+
{
13+
$this->assertEquals($expected, $store->get($key), $message);
14+
// removed persistance test assertions
15+
}
16+
17+
protected function createStore(array $data = null)
18+
{
19+
return new \anlutro\LaravelSettings\MemorySettingStore($data);
20+
}
21+
}

0 commit comments

Comments
 (0)