Skip to content

Commit a356939

Browse files
authored
refactor id generators and fix load bug (#119)
1 parent b42c57f commit a356939

File tree

5 files changed

+13
-23
lines changed

5 files changed

+13
-23
lines changed

addons/pandora/util/nanoid_generator.gd

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,18 @@ extends RefCounted
44

55

66
const ALPHABET := "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"
7-
const SIZE := 21
7+
const DEFAULT_LENGTH := 21
88

99

10-
var size: int
10+
var default_length := DEFAULT_LENGTH
1111

1212

13-
func _init(size := SIZE) -> void:
14-
self.size = size
13+
func _init(length := DEFAULT_LENGTH) -> void:
14+
default_length = length
1515

1616

17-
func generate() -> String:
17+
func generate(length := default_length) -> String:
1818
var id: String
19-
for i in range(size):
19+
for i in range(length):
2020
id += ALPHABET[randi() % ALPHABET.length()]
2121
return id

addons/pandora/util/sequential_id_generator.gd

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,13 @@ class_name PandoraSequentialIDGenerator
22
extends RefCounted
33

44

5-
const DEFAULT_CONTEXT := "default"
5+
const DEFAULT_CONTEXT: String = "default"
66

77

88
var _ids_by_context: Dictionary = {}
99

10-
var context: String
1110

12-
13-
func _init(context: String = DEFAULT_CONTEXT):
14-
self.context = context
15-
16-
17-
func generate() -> String:
11+
func generate(context:String = DEFAULT_CONTEXT) -> String:
1812
if not _ids_by_context.has(context):
1913
_ids_by_context[context] = 0
2014
_ids_by_context[context] += 1

test/util/id_generator_test.gd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ func test_generate() -> void:
1313
var id_generator = auto_free(preload(__source).new())
1414

1515
PandoraSettings.set_id_type(PandoraSettings.IDType.NANOID)
16-
id_generator._nanoid.size = 3
16+
id_generator._nanoid.default_length = 3
1717
assert_that(len(id_generator.generate())).is_equal(3)
1818

1919
PandoraSettings.set_id_type(PandoraSettings.IDType.SEQUENTIAL)

test/util/nanoid_generator_test.gd

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,4 @@ const __source = 'res://addons/pandora/util/nanoid_generator.gd'
1212
func test_generate_size() -> void:
1313
var id_generator = auto_free(preload(__source).new(3))
1414
assert_that(len(id_generator.generate())).is_equal(3)
15-
id_generator.size = 4
16-
assert_that(len(id_generator.generate())).is_equal(4)
15+
assert_that(len(id_generator.generate(4))).is_equal(4)

test/util/sequential_id_generator_test.gd

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ func test_generate_clear() -> void:
1313
var id_generator = auto_free(preload(__source).new())
1414
assert_that(id_generator.generate()).is_equal("1")
1515
assert_that(id_generator.generate()).is_equal("2")
16-
id_generator.context = "other-context"
17-
assert_that(id_generator.generate()).is_equal("1")
16+
assert_that(id_generator.generate("other-context")).is_equal("1")
1817
assert_dict(id_generator._ids_by_context).is_not_empty()
1918
id_generator.clear()
2019
assert_dict(id_generator._ids_by_context).is_empty()
@@ -23,11 +22,9 @@ func test_generate_clear() -> void:
2322
func test_save_load_data() -> void:
2423
var id_generator = auto_free(preload(__source).new())
2524
assert_that(id_generator.generate()).is_equal("1")
26-
id_generator.context = "other-context"
27-
assert_that(id_generator.generate()).is_equal("1")
25+
assert_that(id_generator.generate("other-context")).is_equal("1")
2826

2927
var other_id_generator = auto_free(preload(__source).new())
3028
other_id_generator.load_data(id_generator.save_data())
3129
assert_that(other_id_generator.generate()).is_equal("2")
32-
other_id_generator.context = "other-context"
33-
assert_that(other_id_generator.generate()).is_equal("2")
30+
assert_that(other_id_generator.generate("other-context")).is_equal("2")

0 commit comments

Comments
 (0)