Skip to content

Commit 8745713

Browse files
authored
Make inspects valid Elixir expressions (#41)
1 parent 82b355f commit 8745713

File tree

3 files changed

+49
-53
lines changed

3 files changed

+49
-53
lines changed

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,29 +28,29 @@ For more examples, checkout [`BiMap`](https://hexdocs.pm/bimap/BiMap.html) and [
2828
```elixir
2929
iex(1)> Mix.install [:bimap]
3030
iex(2)> bm = BiMap.new(a: 1, b: 2)
31-
#BiMap<[a: 1, b: 2]>
31+
BiMap.new([a: 1, b: 2])
3232
iex(3)> BiMap.get(bm, :a)
3333
1
3434
iex(4)> BiMap.get_key(bm, 2)
3535
:b
3636
iex(5)> BiMap.put(bm, :a, 3)
37-
#BiMap<[a: 3, b: 2]>
37+
BiMap.new([a: 3, b: 2])
3838
iex(6)> BiMap.put(bm, :c, 2)
39-
#BiMap<[a: 1, c: 2]>
39+
BiMap.new([a: 1, c: 2])
4040
```
4141

4242
### BiMultiMap
4343

4444
```elixir
4545
iex(1)> Mix.install [:bimap]
4646
iex(2)> mm = BiMultiMap.new(a: 1, b: 2, b: 1)
47-
#BiMultiMap<[a: 1, b: 1, b: 2]>
47+
BiMultiMap.new([a: 1, b: 1, b: 2])
4848
iex(3)> BiMultiMap.get(mm, :a)
4949
[1]
5050
iex(4)> BiMultiMap.get_keys(mm, 1)
5151
[:a, :b]
5252
iex(5)> BiMultiMap.put(mm, :a, 3)
53-
#BiMultiMap<[a: 1, a: 3, b: 1, b: 2]>
53+
BiMultiMap.new([a: 1, a: 3, b: 1, b: 2])
5454
```
5555

5656
## Changelog

lib/bimap.ex

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ defmodule BiMap do
2525
## Example
2626
2727
iex> bm = BiMap.new(a: 1, b: 2)
28-
#BiMap<[a: 1, b: 2]>
28+
BiMap.new([a: 1, b: 2])
2929
iex> BiMap.get(bm, :a)
3030
1
3131
iex> BiMap.get_key(bm, 2)
3232
:b
3333
iex> BiMap.put(bm, :a, 3)
34-
#BiMap<[a: 3, b: 2]>
34+
BiMap.new([a: 3, b: 2])
3535
iex> BiMap.put(bm, :c, 2)
36-
#BiMap<[a: 1, c: 2]>
36+
BiMap.new([a: 1, c: 2])
3737
3838
## Protocols
3939
@@ -67,7 +67,7 @@ defmodule BiMap do
6767
## Examples
6868
6969
iex> BiMap.new
70-
#BiMap<[]>
70+
BiMap.new([])
7171
"""
7272
@spec new :: t
7373
def new, do: %BiMap{}
@@ -80,7 +80,7 @@ defmodule BiMap do
8080
## Examples
8181
8282
iex> BiMap.new([a: "foo", b: "bar"])
83-
#BiMap<[a: "foo", b: "bar"]>
83+
BiMap.new([a: "foo", b: "bar"])
8484
"""
8585
@spec new(Enum.t()) :: t
8686
def new(enumerable)
@@ -99,7 +99,7 @@ defmodule BiMap do
9999
## Examples
100100
101101
iex> BiMap.new([1, 2, 1], fn x -> {x, x * 2} end)
102-
#BiMap<[{1, 2}, {2, 4}]>
102+
BiMap.new([{1, 2}, {2, 4}])
103103
"""
104104
@spec new(Enum.t(), (term -> {k, v})) :: t
105105
def new(enumerable, transform)
@@ -409,13 +409,13 @@ defmodule BiMap do
409409
## Examples
410410
411411
iex> bimap = BiMap.new
412-
#BiMap<[]>
412+
BiMap.new([])
413413
iex> bimap = BiMap.put(bimap, :a, 0)
414-
#BiMap<[a: 0]>
414+
BiMap.new([a: 0])
415415
iex> bimap = BiMap.put(bimap, :a, 1)
416-
#BiMap<[a: 1]>
416+
BiMap.new([a: 1])
417417
iex> BiMap.put(bimap, :b, 1)
418-
#BiMap<[b: 1]>
418+
BiMap.new([b: 1])
419419
"""
420420
@spec put(t, k, v) :: t
421421
def put(%BiMap{} = bimap, key, value) do
@@ -441,15 +441,15 @@ defmodule BiMap do
441441
## Examples
442442
443443
iex> bimap = BiMap.new
444-
#BiMap<[]>
444+
BiMap.new([])
445445
iex> bimap = BiMap.put_new_key(bimap, :a, 0)
446-
#BiMap<[a: 0]>
446+
BiMap.new([a: 0])
447447
iex> bimap = BiMap.put_new_key(bimap, :a, 1)
448-
#BiMap<[a: 0]>
448+
BiMap.new([a: 0])
449449
iex> BiMap.put_new_key(bimap, :b, 1)
450-
#BiMap<[a: 0, b: 1]>
450+
BiMap.new([a: 0, b: 1])
451451
iex> BiMap.put_new_key(bimap, :c, 1)
452-
#BiMap<[a: 0, c: 1]>
452+
BiMap.new([a: 0, c: 1])
453453
"""
454454
@spec put_new_key(t, k, v) :: t
455455
def put_new_key(%BiMap{} = bimap, key, value) do
@@ -471,15 +471,15 @@ defmodule BiMap do
471471
## Examples
472472
473473
iex> bimap = BiMap.new
474-
#BiMap<[]>
474+
BiMap.new([])
475475
iex> bimap = BiMap.put_new_value(bimap, :a, 0)
476-
#BiMap<[a: 0]>
476+
BiMap.new([a: 0])
477477
iex> bimap = BiMap.put_new_value(bimap, :a, 1)
478-
#BiMap<[a: 1]>
478+
BiMap.new([a: 1])
479479
iex> BiMap.put_new_value(bimap, :b, 1)
480-
#BiMap<[a: 1]>
480+
BiMap.new([a: 1])
481481
iex> BiMap.put_new_value(bimap, :c, 2)
482-
#BiMap<[a: 1, c: 2]>
482+
BiMap.new([a: 1, c: 2])
483483
"""
484484
@spec put_new_value(t, k, v) :: t
485485
def put_new_value(%BiMap{} = bimap, key, value) do
@@ -500,11 +500,11 @@ defmodule BiMap do
500500
501501
iex> bimap = BiMap.new([a: 1, b: 2])
502502
iex> BiMap.delete(bimap, :b, 2)
503-
#BiMap<[a: 1]>
503+
BiMap.new([a: 1])
504504
iex> BiMap.delete(bimap, :c, 3)
505-
#BiMap<[a: 1, b: 2]>
505+
BiMap.new([a: 1, b: 2])
506506
iex> BiMap.delete(bimap, :b, 3)
507-
#BiMap<[a: 1, b: 2]>
507+
BiMap.new([a: 1, b: 2])
508508
"""
509509
@spec delete(t, k, v) :: t
510510
def delete(%BiMap{keys: keys, values: values} = bimap, key, value) do
@@ -526,9 +526,9 @@ defmodule BiMap do
526526
527527
iex> bimap = BiMap.new([a: 1, b: 2])
528528
iex> BiMap.delete_key(bimap, :b)
529-
#BiMap<[a: 1]>
529+
BiMap.new([a: 1])
530530
iex> BiMap.delete_key(bimap, :c)
531-
#BiMap<[a: 1, b: 2]>
531+
BiMap.new([a: 1, b: 2])
532532
"""
533533
@spec delete_key(t, k) :: t
534534
def delete_key(%BiMap{keys: keys, values: values} = bimap, key) do
@@ -550,9 +550,9 @@ defmodule BiMap do
550550
551551
iex> bimap = BiMap.new([a: 1, b: 2])
552552
iex> BiMap.delete_value(bimap, 2)
553-
#BiMap<[a: 1]>
553+
BiMap.new([a: 1])
554554
iex> BiMap.delete_value(bimap, 3)
555-
#BiMap<[a: 1, b: 2]>
555+
BiMap.new([a: 1, b: 2])
556556
"""
557557
@spec delete_value(t, v) :: t
558558
def delete_value(%BiMap{keys: keys, values: values} = bimap, value) do
@@ -621,7 +621,7 @@ defmodule BiMap do
621621
import Inspect.Algebra
622622

623623
def inspect(bimap, opts) do
624-
concat(["#BiMap<", Inspect.List.inspect(BiMap.to_list(bimap), opts), ">"])
624+
concat(["BiMap.new(", to_doc(BiMap.to_list(bimap), opts), ")"])
625625
end
626626
end
627627
end

lib/bimultimap.ex

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ defmodule BiMultiMap do
1616
## Example
1717
1818
iex> mm = BiMultiMap.new(a: 1, b: 2, b: 1)
19-
#BiMultiMap<[a: 1, b: 1, b: 2]>
19+
BiMultiMap.new([a: 1, b: 1, b: 2])
2020
iex> BiMultiMap.get(mm, :a)
2121
[1]
2222
iex> BiMultiMap.get_keys(mm, 1)
2323
[:a, :b]
2424
iex> BiMultiMap.put(mm, :a, 3)
25-
#BiMultiMap<[a: 1, a: 3, b: 1, b: 2]>
25+
BiMultiMap.new([a: 1, a: 3, b: 1, b: 2])
2626
2727
## Protocols
2828
@@ -60,7 +60,7 @@ defmodule BiMultiMap do
6060
## Examples
6161
6262
iex> BiMultiMap.new
63-
#BiMultiMap<[]>
63+
BiMultiMap.new([])
6464
"""
6565
@spec new :: t
6666
def new, do: %BiMultiMap{}
@@ -73,7 +73,7 @@ defmodule BiMultiMap do
7373
## Examples
7474
7575
iex> BiMultiMap.new([a: 1, a: 2])
76-
#BiMultiMap<[a: 1, a: 2]>
76+
BiMultiMap.new([a: 1, a: 2])
7777
"""
7878
@spec new(Enum.t()) :: t
7979
def new(enumerable)
@@ -92,7 +92,7 @@ defmodule BiMultiMap do
9292
## Examples
9393
9494
iex> BiMultiMap.new([1, 2, 1], fn x -> {x, x * 2} end)
95-
#BiMultiMap<[{1, 2}, {2, 4}]>
95+
BiMultiMap.new([{1, 2}, {2, 4}])
9696
"""
9797
@spec new(Enum.t(), (term -> {k, v})) :: t
9898
def new(enumerable, transform)
@@ -439,13 +439,13 @@ defmodule BiMultiMap do
439439
## Examples
440440
441441
iex> bimultimap = BiMultiMap.new
442-
#BiMultiMap<[]>
442+
BiMultiMap.new([])
443443
iex> bimultimap = BiMultiMap.put(bimultimap, :a, 1)
444-
#BiMultiMap<[a: 1]>
444+
BiMultiMap.new([a: 1])
445445
iex> bimultimap = BiMultiMap.put(bimultimap, :a, 2)
446-
#BiMultiMap<[a: 1, a: 2]>
446+
BiMultiMap.new([a: 1, a: 2])
447447
iex> BiMultiMap.put(bimultimap, :b, 2)
448-
#BiMultiMap<[a: 1, a: 2, b: 2]>
448+
BiMultiMap.new([a: 1, a: 2, b: 2])
449449
"""
450450
@spec put(t, k, v) :: t
451451
def put(
@@ -490,9 +490,9 @@ defmodule BiMultiMap do
490490
491491
iex> bimultimap = BiMultiMap.new([a: 1, b: 2, c: 2])
492492
iex> BiMultiMap.delete(bimultimap, :b, 2)
493-
#BiMultiMap<[a: 1, c: 2]>
493+
BiMultiMap.new([a: 1, c: 2])
494494
iex> BiMultiMap.delete(bimultimap, :c, 3)
495-
#BiMultiMap<[a: 1, b: 2, c: 2]>
495+
BiMultiMap.new([a: 1, b: 2, c: 2])
496496
"""
497497
@spec delete(t, k, v) :: t
498498
def delete(
@@ -542,9 +542,9 @@ defmodule BiMultiMap do
542542
543543
iex> bimultimap = BiMultiMap.new([a: 1, b: 2, b: 3])
544544
iex> BiMultiMap.delete_key(bimultimap, :b)
545-
#BiMultiMap<[a: 1]>
545+
BiMultiMap.new([a: 1])
546546
iex> BiMultiMap.delete_key(bimultimap, :c)
547-
#BiMultiMap<[a: 1, b: 2, b: 3]>
547+
BiMultiMap.new([a: 1, b: 2, b: 3])
548548
"""
549549
@spec delete_key(t, k) :: t
550550
def delete_key(%BiMultiMap{keys: keys} = bimultimap, key) do
@@ -568,9 +568,9 @@ defmodule BiMultiMap do
568568
569569
iex> bimultimap = BiMultiMap.new([a: 1, b: 2, c: 1])
570570
iex> BiMultiMap.delete_value(bimultimap, 1)
571-
#BiMultiMap<[b: 2]>
571+
BiMultiMap.new([b: 2])
572572
iex> BiMultiMap.delete_value(bimultimap, 3)
573-
#BiMultiMap<[a: 1, b: 2, c: 1]>
573+
BiMultiMap.new([a: 1, b: 2, c: 1])
574574
"""
575575
@spec delete_value(t, v) :: t
576576
def delete_value(%BiMultiMap{values: values} = bimultimap, value) do
@@ -643,11 +643,7 @@ defmodule BiMultiMap do
643643
import Inspect.Algebra
644644

645645
def inspect(bimultimap, opts) do
646-
concat([
647-
"#BiMultiMap<",
648-
Inspect.List.inspect(BiMultiMap.to_list(bimultimap), opts),
649-
">"
650-
])
646+
concat(["BiMultiMap.new(", to_doc(BiMultiMap.to_list(bimultimap), opts), ")"])
651647
end
652648
end
653649
end

0 commit comments

Comments
 (0)