Skip to content

Commit 9fd8365

Browse files
committed
Simplify Population#new_evolvables method by removing the evolvables parameter
1 parent f595d96 commit 9fd8365

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ Breaking Changes:
88
* Renamed `Evolvable#after_initialize` to `Evolvable#after_initialize_evolvable`.
99
* Changed population initialization and evolvable creation workflow for more consistency.
1010
* Simplified error handling in favor of more single `Evolvable::Error` type with more informative messages.
11+
* Changed `Population#new_evolvables` to only accept a `count` parameter, removing the `evolvables` parameter.
1112

1213
New Features:
1314
* Added gene clusters for organizing related genes through the `cluster` parameter in gene definitions.

lib/evolvable/population.rb

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,8 @@ def initialize(evolvable_type:,
107107
self.selection = selection if selection
108108
self.combination = combination if combination
109109
self.mutation = mutation if mutation
110-
@evolvables = new_evolvables(count: @size - evolvables.count, evolvables: evolvables)
110+
self.evolvables = evolvables || []
111+
new_evolvables(count: @size - evolvables.count)
111112
end
112113

113114
#
@@ -256,17 +257,16 @@ def new_evolvable(genome: nil)
256257
# Creates multiple new evolvable instances.
257258
#
258259
# @param count [Integer] The number of evolvables to create
259-
# @param evolvables [Array<Evolvable>, nil] Optional existing evolvables to include
260-
# @return [Array<Evolvable>] The collection of evolvables
260+
# @return [Array<Evolvable>] The newly created evolvables
261261
#
262-
def new_evolvables(count:, evolvables: nil)
263-
evolvables ||= @evolvables || []
264-
@evolvables = evolvables
265-
262+
def new_evolvables(count:)
266263
if parent_evolvables.empty?
267264
Array.new(count) { new_evolvable(genome: new_genome) }
268265
else
269-
@evolvables = generate_evolvables(count)
266+
evolvables = generate_evolvables(count)
267+
@evolvables ||= []
268+
@evolvables.concat evolvables
269+
evolvables
270270
end
271271
end
272272

0 commit comments

Comments
 (0)