Skip to content

Commit 3cbc6af

Browse files
committed
Rename App & Add Application
1 parent e6ae63e commit 3cbc6af

7 files changed

Lines changed: 87 additions & 58 deletions

File tree

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ erl_crash.dump
2020
*.ez
2121

2222
# Ignore package tarball (built via "mix hex.build").
23-
quantum_storage_ets-*.tar
23+
quantum_storage_persistent_ets-*.tar
2424

2525
# Ignore mix.lock
2626
/mix.lock

README.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
1-
# Quantum Storage Ets
1+
# Quantum Storage Persistent Ets
22

3-
[![Hex.pm Version](http://img.shields.io/hexpm/v/quantum_storage_ets.svg)](https://hex.pm/packages/quantum_storage_ets)
4-
[![Hex docs](http://img.shields.io/badge/hex.pm-docs-green.svg?style=flat)](https://hexdocs.pm/quantum_storage_ets)
5-
[![Build Status](https://travis-ci.org/quantum-elixir/quantum-storage-ets.svg?branch=master)](https://travis-ci.org/quantum-elixir/quantum-storage-ets)
6-
[![Coverage Status](https://coveralls.io/repos/quantum-elixir/quantum-storage-ets/badge.svg?branch=master)](https://coveralls.io/r/quantum-elixir/quantum-storage-ets?branch=master)
7-
[![Inline docs](http://inch-ci.org/github/quantum-elixir/quantum-storage-ets.svg)](http://inch-ci.org/github/quantum-elixir/quantum-storage-ets)
8-
[![Hex.pm](https://img.shields.io/hexpm/dt/quantum_storage_ets.svg)](https://hex.pm/packages/quantum_storage_ets)
3+
[![Hex.pm Version](http://img.shields.io/hexpm/v/quantum_storage_persistent_ets.svg)](https://hex.pm/packages/quantum_storage_persistent_ets)
4+
[![Hex docs](http://img.shields.io/badge/hex.pm-docs-green.svg?style=flat)](https://hexdocs.pm/quantum_storage_persistent_ets)
5+
[![Build Status](https://travis-ci.org/quantum-elixir/quantum-storage-persistent-ets.svg?branch=master)](https://travis-ci.org/quantum-elixir/quantum-storage-persistent-ets)
6+
[![Coverage Status](https://coveralls.io/repos/quantum-elixir/quantum-storage-persistent-ets/badge.svg?branch=master)](https://coveralls.io/r/quantum-elixir/quantum-storage-persistent-ets?branch=master)
7+
[![Inline docs](http://inch-ci.org/github/quantum-elixir/quantum-storage-persistent-ets.svg)](http://inch-ci.org/github/quantum-elixir/quantum-storage-persistent-ets)
8+
[![Hex.pm](https://img.shields.io/hexpm/dt/quantum_storage_persistent_ets.svg)](https://hex.pm/packages/quantum_storage_persistent_ets)
99

1010
Adds a persistent storage adapter for ETS.
1111

1212
## Installation
1313

14-
The package can be installed by adding `quantum_storage_ets` to your list
14+
The package can be installed by adding `quantum_storage_persistent_ets` to your list
1515
of dependencies in `mix.exs`:
1616

1717
```elixir
1818
def deps do
1919
[
20-
{:quantum_storage_ets, "~> 0.1.0"}
20+
{:quantum_storage_persistent_ets, "~> 0.1.0"}
2121
]
2222
end
2323
```
2424

2525
Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)
2626
and published on [HexDocs](https://hexdocs.pm). The docs can be found at
27-
[https://hexdocs.pm/quantum_storage_ets](https://hexdocs.pm/quantum_storage_ets).
27+
[https://hexdocs.pm/quantum_storage_persistent_ets](https://hexdocs.pm/quantum_storage_persistent_ets).
2828

2929
## Contribution
3030

@@ -36,14 +36,14 @@ terms of this contract."
3636

3737
### tl;dr
3838

39-
1. Check for [open issues](https://github.com/quantum-elixir/quantum-storage-ets/issues) or [open a new issue](https://github.com/quantum-elixir/quantum-storage-ets/issues/new) to start
39+
1. Check for [open issues](https://github.com/quantum-elixir/quantum-storage-persistent-ets/issues) or [open a new issue](https://github.com/quantum-elixir/quantum-storage-persistent-ets/issues/new) to start
4040
a discussion around [a problem](https://www.youtube.com/watch?v=_QF9sFJGJuc).
4141
2. Issues SHALL be named as "Problem: _description of the problem_".
42-
3. Fork the [quantum-storage-ets repository on GitHub](https://github.com/quantum-elixir/quantum-storage-ets) to start making your changes
42+
3. Fork the [quantum-storage-persistent-ets repository on GitHub](https://github.com/quantum-elixir/quantum-storage-persistent-ets) to start making your changes
4343
4. If possible, write a test which shows that the problem was solved.
4444
5. Send a pull request.
4545
6. Pull requests SHALL be named as "Solution: _description of your solution_"
46-
7. Your pull request is merged and you are added to the [list of contributors](https://github.com/quantum-elixir/quantum-storage-ets/graphs/contributors)
46+
7. Your pull request is merged and you are added to the [list of contributors](https://github.com/quantum-elixir/quantum-storage-persistent-ets/graphs/contributors)
4747

4848
## License
4949

lib/quantum_storage_ets.ex

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
defmodule QuantumStorageEts do
1+
defmodule QuantumStoragePersistentEts do
22
@moduledoc """
33
`PersistentEts` based implementation of a `Quantum.Storage`.
44
"""
@@ -13,43 +13,54 @@ defmodule QuantumStorageEts do
1313

1414
@behaviour Quantum.Storage
1515

16+
@doc false
1617
def start_link(opts),
1718
do: GenServer.start_link(__MODULE__, opts, name: Keyword.get(opts, :name, @server))
1819

20+
@doc false
1921
@impl GenServer
2022
def init(opts), do: {:ok, %State{schedulers: %{}, name: Keyword.get(opts, :name, @server)}}
2123

24+
@doc false
2225
@impl Quantum.Storage
2326
def jobs(server \\ @server, scheduler_module),
2427
do: GenServer.call(server, {:jobs, scheduler_module})
2528

29+
@doc false
2630
@impl Quantum.Storage
2731
def add_job(server \\ @server, scheduler_module, job),
2832
do: GenServer.call(server, {:add_job, scheduler_module, job})
2933

34+
@doc false
3035
@impl Quantum.Storage
3136
def delete_job(server \\ @server, scheduler_module, job_name),
3237
do: GenServer.call(server, {:delete_job, scheduler_module, job_name})
3338

39+
@doc false
3440
@impl Quantum.Storage
3541
def update_job_state(server \\ @server, scheduler_module, job_name, state),
3642
do: GenServer.call(server, {:update_job_state, scheduler_module, job_name, state})
3743

44+
@doc false
3845
@impl Quantum.Storage
3946
def last_execution_date(server \\ @server, scheduler_module),
4047
do: GenServer.call(server, {:last_execution_date, scheduler_module})
4148

49+
@doc false
4250
@impl Quantum.Storage
4351
def update_last_execution_date(server \\ @server, scheduler_module, last_execution_date),
4452
do:
4553
GenServer.call(server, {:update_last_execution_date, scheduler_module, last_execution_date})
4654

55+
@doc false
4756
@impl Quantum.Storage
4857
def purge(server \\ @server, scheduler_module),
4958
do: GenServer.call(server, {:purge, scheduler_module})
5059

60+
@doc false
5161
def purge_all(server \\ @server), do: GenServer.call(server, :purge_all)
5262

63+
@doc false
5364
@impl GenServer
5465
def handle_call(
5566
{:add_job, scheduler_module, job},
@@ -203,7 +214,11 @@ defmodule QuantumStorageEts do
203214
if ets_exist?(scheduler_module_atom) do
204215
scheduler_module_atom
205216
else
206-
path = Application.app_dir(:quantum_storage_ets, "priv/tables/#{scheduler_module_atom}.tab")
217+
path =
218+
Application.app_dir(
219+
:quantum_storage_persistent_ets,
220+
"priv/tables/#{scheduler_module_atom}.tab"
221+
)
207222

208223
File.mkdir_p!(Path.dirname(path))
209224

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
defmodule QuantumStoragePersistentEts.Application do
2+
@moduledoc false
3+
4+
use Application
5+
6+
def start(_type, _args),
7+
do:
8+
Supervisor.start_link([QuantumStoragePersistentEts],
9+
strategy: :one_for_one,
10+
name: QuantumTest.Supervisor
11+
)
12+
end

lib/quantum_storage_ets/state.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
defmodule QuantumStorageEts.State do
1+
defmodule QuantumStoragePersistentEts.State do
22
@moduledoc false
33

44
@type t :: %__MODULE__{schedulers: map}
55

66
@enforce_keys [:schedulers, :name]
7-
defstruct schedulers: %{}, name: QuantumStorageEts
7+
defstruct schedulers: %{}, name: QuantumStoragePersistentEts
88
end

mix.exs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
defmodule QuantumStorageEts.MixProject do
1+
defmodule QuantumStoragePersistentEts.MixProject do
22
@moduledoc false
33

44
use Mix.Project
@@ -7,14 +7,14 @@ defmodule QuantumStorageEts.MixProject do
77

88
def project do
99
[
10-
app: :quantum_storage_ets,
10+
app: :quantum_storage_persistent_ets,
1111
version: @version,
1212
elixir: "~> 1.6",
1313
build_embedded: Mix.env() == :prod,
1414
start_permanent: Mix.env() == :prod,
1515
deps: deps(),
1616
docs: docs(),
17-
name: "Quantum Storage ETS",
17+
name: "Quantum Storage Persistent ETS",
1818
elixirc_paths: elixirc_paths(Mix.env()),
1919
package: package(),
2020
test_coverage: [tool: ExCoveralls]
@@ -24,7 +24,8 @@ defmodule QuantumStorageEts.MixProject do
2424
# Run "mix help compile.app" to learn about applications.
2525
def application do
2626
[
27-
extra_applications: [:logger]
27+
extra_applications: [:logger],
28+
mod: {QuantumStoragePersistentEts.Application, []}
2829
]
2930
end
3031

@@ -39,8 +40,8 @@ defmodule QuantumStorageEts.MixProject do
3940
licenses: ["Apache License 2.0"],
4041
links: %{
4142
"Changelog" =>
42-
"https://github.com/quantum-elixir/quantum-storage-ets/blob/master/CHANGELOG.md",
43-
"GitHub" => "https://github.com/quantum-elixir/quantum-storage-ets"
43+
"https://github.com/quantum-elixir/quantum-storage-persistent-ets/blob/master/CHANGELOG.md",
44+
"GitHub" => "https://github.com/quantum-elixir/quantum-storage-persistent-ets"
4445
}
4546
}
4647
end
@@ -49,7 +50,7 @@ defmodule QuantumStorageEts.MixProject do
4950
[
5051
main: "readme",
5152
source_ref: "v#{@version}",
52-
source_url: "https://github.com/quantum-elixir/quantum-storage-ets",
53+
source_url: "https://github.com/quantum-elixir/quantum-storage-persistent-ets",
5354
extras: [
5455
"README.md",
5556
"CHANGELOG.md"

test/quantum_storage_ets_test.exs

Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,108 +1,109 @@
1-
defmodule QuantumStorageEtsTest do
1+
defmodule QuantumStoragePersistentEtsTest do
22
@moduledoc false
33

44
use ExUnit.Case
5-
doctest QuantumStorageEts
5+
doctest QuantumStoragePersistentEts
66

77
defmodule Scheduler do
8-
use Quantum, otp_app: :quantum_storage_ets
8+
use Quantum, otp_app: :quantum_storage_persistent_ets
99
end
1010

1111
setup %{test: test} do
12-
storage = start_supervised!({QuantumStorageEts, name: Module.concat(__MODULE__, test)})
12+
storage =
13+
start_supervised!({QuantumStoragePersistentEts, name: Module.concat(__MODULE__, test)})
1314

14-
assert :ok = QuantumStorageEts.purge(storage, A)
15-
assert :ok = QuantumStorageEts.purge(storage, B)
15+
assert :ok = QuantumStoragePersistentEts.purge(storage, A)
16+
assert :ok = QuantumStoragePersistentEts.purge(storage, B)
1617

1718
{:ok, storage: storage}
1819
end
1920

2021
describe "purge/1" do
2122
test "purges correct module", %{storage: storage} do
22-
assert :ok = QuantumStorageEts.add_job(storage, A, Scheduler.new_job())
23-
assert :ok = QuantumStorageEts.purge(storage, A)
24-
assert [] = QuantumStorageEts.jobs(storage, A)
23+
assert :ok = QuantumStoragePersistentEts.add_job(storage, A, Scheduler.new_job())
24+
assert :ok = QuantumStoragePersistentEts.purge(storage, A)
25+
assert [] = QuantumStoragePersistentEts.jobs(storage, A)
2526
end
2627

2728
test "does not purge incorrect module", %{storage: storage} do
2829
job = Scheduler.new_job()
29-
assert :ok = QuantumStorageEts.add_job(storage, A, job)
30-
assert :ok = QuantumStorageEts.purge(storage, B)
31-
assert [^job] = QuantumStorageEts.jobs(storage, A)
30+
assert :ok = QuantumStoragePersistentEts.add_job(storage, A, job)
31+
assert :ok = QuantumStoragePersistentEts.purge(storage, B)
32+
assert [^job] = QuantumStoragePersistentEts.jobs(storage, A)
3233
end
3334
end
3435

3536
describe "add_job/2" do
3637
test "adds job", %{storage: storage} do
3738
job = Scheduler.new_job()
38-
assert :ok = QuantumStorageEts.add_job(storage, A, job)
39-
assert [^job] = QuantumStorageEts.jobs(storage, A)
39+
assert :ok = QuantumStoragePersistentEts.add_job(storage, A, job)
40+
assert [^job] = QuantumStoragePersistentEts.jobs(storage, A)
4041
end
4142
end
4243

4344
describe "delete_job/2" do
4445
test "deletes job", %{storage: storage} do
4546
job = Scheduler.new_job()
46-
assert :ok = QuantumStorageEts.add_job(storage, A, job)
47-
assert :ok = QuantumStorageEts.delete_job(storage, A, job.name)
48-
assert [] = QuantumStorageEts.jobs(storage, A)
47+
assert :ok = QuantumStoragePersistentEts.add_job(storage, A, job)
48+
assert :ok = QuantumStoragePersistentEts.delete_job(storage, A, job.name)
49+
assert [] = QuantumStoragePersistentEts.jobs(storage, A)
4950
end
5051

5152
test "does not fail when deleting unknown job", %{storage: storage} do
5253
job = Scheduler.new_job()
53-
assert :ok = QuantumStorageEts.add_job(storage, A, job)
54+
assert :ok = QuantumStoragePersistentEts.add_job(storage, A, job)
5455

55-
assert :ok = QuantumStorageEts.delete_job(storage, A, make_ref())
56+
assert :ok = QuantumStoragePersistentEts.delete_job(storage, A, make_ref())
5657
end
5758

5859
test "does not fail when deleting job from unknown scheduler", %{storage: storage} do
59-
assert :ok = QuantumStorageEts.delete_job(storage, A, make_ref())
60+
assert :ok = QuantumStoragePersistentEts.delete_job(storage, A, make_ref())
6061
end
6162
end
6263

6364
describe "update_job_state/2" do
6465
test "updates job", %{storage: storage} do
6566
job = Scheduler.new_job()
66-
assert :ok = QuantumStorageEts.add_job(storage, A, job)
67-
assert :ok = QuantumStorageEts.update_job_state(storage, A, job.name, :inactive)
68-
assert [%{state: :inactive}] = QuantumStorageEts.jobs(storage, A)
67+
assert :ok = QuantumStoragePersistentEts.add_job(storage, A, job)
68+
assert :ok = QuantumStoragePersistentEts.update_job_state(storage, A, job.name, :inactive)
69+
assert [%{state: :inactive}] = QuantumStoragePersistentEts.jobs(storage, A)
6970
end
7071

7172
test "does not fail when updating unknown job", %{storage: storage} do
7273
job = Scheduler.new_job()
73-
assert :ok = QuantumStorageEts.add_job(storage, A, job)
74+
assert :ok = QuantumStoragePersistentEts.add_job(storage, A, job)
7475

75-
assert :ok = QuantumStorageEts.update_job_state(storage, A, make_ref(), :inactive)
76+
assert :ok = QuantumStoragePersistentEts.update_job_state(storage, A, make_ref(), :inactive)
7677
end
7778

7879
test "does not fail when updating job from unknown scheduler", %{storage: storage} do
79-
assert :ok = QuantumStorageEts.delete_job(storage, A, make_ref())
80+
assert :ok = QuantumStoragePersistentEts.delete_job(storage, A, make_ref())
8081
end
8182
end
8283

8384
describe "update_last_execution_date/2" do
8485
test "sets time on scheduler", %{storage: storage} do
8586
date = NaiveDateTime.utc_now()
86-
assert :ok = QuantumStorageEts.update_last_execution_date(storage, A, date)
87-
assert ^date = QuantumStorageEts.last_execution_date(storage, A)
87+
assert :ok = QuantumStoragePersistentEts.update_last_execution_date(storage, A, date)
88+
assert ^date = QuantumStoragePersistentEts.last_execution_date(storage, A)
8889
end
8990

9091
test "sets time only on right scheduler", %{storage: storage} do
9192
date = NaiveDateTime.utc_now()
92-
assert :ok = QuantumStorageEts.update_last_execution_date(storage, A, date)
93-
assert :unknown = QuantumStorageEts.last_execution_date(storage, B)
93+
assert :ok = QuantumStoragePersistentEts.update_last_execution_date(storage, A, date)
94+
assert :unknown = QuantumStoragePersistentEts.last_execution_date(storage, B)
9495
end
9596
end
9697

9798
describe "last_execution_date/1" do
9899
test "gets time", %{storage: storage} do
99100
date = NaiveDateTime.utc_now()
100-
assert :ok = QuantumStorageEts.update_last_execution_date(storage, A, date)
101-
assert ^date = QuantumStorageEts.last_execution_date(storage, A)
101+
assert :ok = QuantumStoragePersistentEts.update_last_execution_date(storage, A, date)
102+
assert ^date = QuantumStoragePersistentEts.last_execution_date(storage, A)
102103
end
103104

104105
test "get unknown otherwise", %{storage: storage} do
105-
assert :unknown = QuantumStorageEts.last_execution_date(storage, A)
106+
assert :unknown = QuantumStoragePersistentEts.last_execution_date(storage, A)
106107
end
107108
end
108109
end

0 commit comments

Comments
 (0)