Module: NDHash
- Defined in:
- lib/ndhash.rb,
lib/ndhash/version.rb
Constant Summary collapse
- VERSION =
"0.1.0"
Class Method Summary collapse
- .add_entry(hash, level, entry_num:) ⇒ Object
- .generate(level:, entries_per_level: 2, pointers_per_level: 1) ⇒ Object
- .generate_rec(current_level, max_level, entries_per_level, pointers_per_level) ⇒ Object
- .get_entry_key(level, entry_num) ⇒ Object
- .get_pointer_key(level, entry_num:) ⇒ Object
- .get_value(level, entry_num) ⇒ Object
Class Method Details
.add_entry(hash, level, entry_num:) ⇒ Object
27 28 29 |
# File 'lib/ndhash.rb', line 27 def add_entry(hash, level, entry_num:) hash[get_entry_key(level, entry_num)] = get_value(level, entry_num) end |
.generate(level:, entries_per_level: 2, pointers_per_level: 1) ⇒ Object
6 7 8 |
# File 'lib/ndhash.rb', line 6 def generate(level:, entries_per_level:2, pointers_per_level:1) generate_rec(1, level, entries_per_level, pointers_per_level) end |
.generate_rec(current_level, max_level, entries_per_level, pointers_per_level) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/ndhash.rb', line 10 def generate_rec(current_level, max_level, entries_per_level, pointers_per_level) hash = {} entries_per_level.times do |n| add_entry(hash, current_level, entry_num: n+1) end unless current_level == max_level pointers_per_level.times do |n| next_level = generate_rec(current_level+1, max_level, entries_per_level, pointers_per_level) hash[get_pointer_key(current_level, entry_num: n+1)] = next_level end end hash end |
.get_entry_key(level, entry_num) ⇒ Object
31 32 33 |
# File 'lib/ndhash.rb', line 31 def get_entry_key(level, entry_num) "level_#{level}_key_#{entry_num}" end |
.get_pointer_key(level, entry_num:) ⇒ Object
39 40 41 |
# File 'lib/ndhash.rb', line 39 def get_pointer_key(level, entry_num:) "level_#{level}_pointer_#{entry_num}" end |
.get_value(level, entry_num) ⇒ Object
35 36 37 |
# File 'lib/ndhash.rb', line 35 def get_value(level, entry_num) "level_#{level}_value_#{entry_num}" end |