ptree 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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