ptree 0.0.0 → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ptree.rb +11 -12
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 70590371f382fec81d348127164903019c50b7b9cfca3027276fae74b8ee53af
4
- data.tar.gz: 908c808ca4ac861366db6c60ae4d00c3066a5607817563ca0096efaf928a2795
3
+ metadata.gz: 11e4b26673e4b576c5027485f78bec367bf814312375487f2bad1417eb537e30
4
+ data.tar.gz: cd420bac567731763b4cab86935dfdcb672d16914e14f696c1f7a34de3b047b5
5
5
  SHA512:
6
- metadata.gz: e32761a9d2c0b15a111394c6c68d7a796c238bcd81221de492b8fb57e122a1bef6da1194664efa19842bd7205dc05e750c9ceb54c699dde44420f574e740139a
7
- data.tar.gz: 7fe8c65cb4f5a81667e013e5ce08525ea843ab8478d233ff6eea8de0737369b858cb77a7386f065f14f99123e088d51326c663a6b76f3d71df955eaa06e82347
6
+ metadata.gz: 6ff35b795fe113347871157a8f6ae15672ac07f7aff62d35721431d3f945d6eb37d105a55d957fbc94784b18f3f349b055c6604dda7b29ccf61f70731d347142
7
+ data.tar.gz: 25300ca697e4f3def8e3e00c8e997bed8cc23a6e5f4ef15272edcae602e3c80d974f0442aa96fc1e5f8a204beacd3d214615bafb2a54cc155bfe501c5aba6602
data/lib/ptree.rb CHANGED
@@ -7,27 +7,27 @@ class Ptree
7
7
  attr_accessor :char, :is_end, :roots, :is_root
8
8
  attr_reader :count
9
9
 
10
- INVALID_WORD_MSG = "%s does not exist in tree".freeze
10
+ INVALID_WORD_MSG = "\e[31m%s does not exist in tree\e[0m".freeze
11
11
 
12
12
  def initialize(root = false)
13
- @char = nil
14
- @is_end = false
15
- @roots = []
13
+ @char = nil
14
+ @is_end = false
15
+ @roots = []
16
16
  @is_root = root
17
- @count = 1
18
- @tree = []
17
+ @count = 1
18
+ @tree = []
19
19
  end
20
20
 
21
21
  def add(word)
22
- validate_word(word)
23
- have = have_in_childs(word)
24
- return nil if word.length.zero?
22
+ return false unless validate_word(word)
25
23
 
24
+ have = have_in_childs(word)
26
25
  if have.empty?
27
26
  no_child_found(word)
28
27
  else
29
28
  child_found(have, word)
30
29
  end
30
+ true
31
31
  end
32
32
 
33
33
  def include?(word, is_word = false)
@@ -41,7 +41,6 @@ class Ptree
41
41
  obj = obj.roots.select { |item| item.to_s == chr }.first
42
42
  str += obj.to_s
43
43
  end
44
-
45
44
  is_word ? (str == word && obj.is_end == true) : str == word
46
45
  end
47
46
 
@@ -54,7 +53,6 @@ class Ptree
54
53
  tree.sort_by { |s| s.scan(/\d+/).first.to_i }
55
54
  end
56
55
 
57
-
58
56
  def delete(word)
59
57
  validate_before_delete(word) ? do_delete(word) : invalid_delete(word)
60
58
  end
@@ -74,7 +72,7 @@ class Ptree
74
72
  private
75
73
 
76
74
  def validate_word(word)
77
- !word.empty?
75
+ !word.empty?
78
76
  end
79
77
 
80
78
  def invalid_delete(word)
@@ -98,6 +96,7 @@ class Ptree
98
96
  else
99
97
  last_obj.is_end = false
100
98
  end
99
+ true
101
100
  end
102
101
 
103
102
  def validate_before_delete(word)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ptree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gia Nebieridze
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-05 00:00:00.000000000 Z
11
+ date: 2022-05-07 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A simple Prefix Tree
14
14
  email: gnebieridzs@unisens.ge