ptree 0.0.0 → 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ptree.rb +11 -12
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 11e4b26673e4b576c5027485f78bec367bf814312375487f2bad1417eb537e30
|
4
|
+
data.tar.gz: cd420bac567731763b4cab86935dfdcb672d16914e14f696c1f7a34de3b047b5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
14
|
-
@is_end
|
15
|
-
@roots
|
13
|
+
@char = nil
|
14
|
+
@is_end = false
|
15
|
+
@roots = []
|
16
16
|
@is_root = root
|
17
|
-
@count
|
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.
|
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-
|
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
|