Skip to content

Commit d8cc67a

Browse files
authored
Merge pull request #114 from MillionIntegrals/master
Fix for serializing BSON Regex without options
2 parents aa1dfe8 + e1e51e4 commit d8cc67a

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

lib/bson/types.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ defmodule BSON.Regex do
160160
"""
161161

162162
@type t :: %__MODULE__{pattern: binary, options: binary}
163-
defstruct [:pattern, :options]
163+
defstruct pattern: "", options: ""
164164

165165
defimpl Inspect do
166166
def inspect(%BSON.Regex{pattern: pattern, options: nil}, _opts) do
@@ -229,4 +229,4 @@ defmodule BSON.LongNumber do
229229
"#BSON.LongNumber<#{value}>"
230230
end
231231
end
232-
end
232+
end

test/bson_test.exs

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -83,14 +83,17 @@ defmodule BSONTest do
8383
@map22 %{"regex" => %BSON.Regex{pattern: "acme.*corp", options: "i"}}
8484
@bin22 <<25, 0, 0, 0, 11, 114, 101, 103, 101, 120, 0, 97, 99, 109, 101, 46, 42, 99, 111, 114, 112, 0, 105, 0, 0>>
8585

86-
@map23 %{"number" => %BSON.LongNumber{value: 123}}
87-
@bin23 <<21, 0, 0, 0, 18, 110, 117, 109, 98, 101, 114, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0>>
86+
@map23 %{"regex" => %BSON.Regex{pattern: "acme.*corp"}}
87+
@bin23 <<24, 0, 0, 0, 11, 114, 101, 103, 101, 120, 0, 97, 99, 109, 101, 46, 42, 99, 111, 114, 112, 0, 0, 0>>
8888

89-
@map24 %{"number" => Decimal.new("0.33")}
90-
@bin24 <<29, 0, 0, 0, 19, 110, 117, 109, 98, 101, 114, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 48, 0>>
89+
@map24 %{"number" => %BSON.LongNumber{value: 123}}
90+
@bin24 <<21, 0, 0, 0, 18, 110, 117, 109, 98, 101, 114, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0>>
9191

92-
@map25 %TestUser{}
93-
@bin25 <<29, 0, 0, 0, 16, 97, 103, 101, 0, 27, 0, 0, 0, 2, 110, 97, 109, 101, 0, 5, 0, 0, 0, 74, 111, 104, 110, 0, 0>>
92+
@map25 %{"number" => Decimal.new("0.33")}
93+
@bin25 <<29, 0, 0, 0, 19, 110, 117, 109, 98, 101, 114, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 48, 0>>
94+
95+
@map26 %TestUser{}
96+
@bin26 <<29, 0, 0, 0, 16, 97, 103, 101, 0, 27, 0, 0, 0, 2, 110, 97, 109, 101, 0, 5, 0, 0, 0, 74, 111, 104, 110, 0, 0>>
9497

9598

9699
test "encode" do
@@ -119,6 +122,7 @@ defmodule BSONTest do
119122
assert encode(@map23) == @bin23
120123
assert encode(@map24) == @bin24
121124
assert encode(@map25) == @bin25
125+
assert encode(@map26) == @bin26
122126
end
123127

124128
test "decode" do
@@ -144,8 +148,10 @@ defmodule BSONTest do
144148
assert decode(@bin20) == @map20
145149
assert decode(@bin21) == @map21
146150
assert decode(@bin22) == @map22
147-
assert decode(@bin23) == %{"number" => 123}
148-
assert decode(@bin24) == @map24
151+
assert decode(@bin23) == @map23
152+
assert decode(@bin24) == %{"number" => 123}
153+
assert decode(@bin25) == @map25
154+
assert decode(@bin26) == %{"name" => "John", "age" => 27}
149155
end
150156

151157
test "keywords" do

0 commit comments

Comments
 (0)