databoom 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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 56a24158e6810822de3fe88accdfa0e31bd94a74f6f143c29f9cf3373ea8b988
4
+ data.tar.gz: 706ae431b2924a2fd8cee865869c8f0d1df9fc03bf4345b545cb7eb395884896
5
+ SHA512:
6
+ metadata.gz: ccd8a684f254cf2ac5bfbfc7d751eca0d91202786140ef3265a6db51f3f7e0d5c5449ef08dd3aabdcf16af99445c734b5e79df0a0525f549478547b5bcf43b91
7
+ data.tar.gz: 3daf6172065906c3e7c52e6b5d212cf9a5a5160056c3f33514275627884a00697fa586382755bd43ab4b801f11b6af4d62ee565200b09f2a598d20b885b3eaf5
@@ -0,0 +1,43 @@
1
+ module Databoom
2
+ class LinkedList
3
+ attr_accessor :head
4
+
5
+ def initialize
6
+ @head = Node.new("*")
7
+ end
8
+
9
+ def append(value)
10
+ @head.append(value)
11
+ end
12
+
13
+ def append_after(find_node, nodeval)
14
+ after_node = find(find_node)
15
+ return append(nodeval) unless after_node
16
+ end
17
+
18
+ def find(value)
19
+ @head&.find(value)
20
+ end
21
+
22
+ class Node
23
+ attr_accessor :value, :npointer
24
+
25
+ def find(value)
26
+ return self if @value == value
27
+ return nil unless @npointer
28
+
29
+ @npointer.find(value)
30
+ end
31
+
32
+ def initialize(value)
33
+ @value = value
34
+ end
35
+
36
+ def append(nodeval)
37
+ return @npointer.append(nodeval) if @npointer
38
+
39
+ @npointer = Node.new(nodeval)
40
+ end
41
+ end
42
+ end
43
+ end
data/lib/databoom.rb ADDED
@@ -0,0 +1,3 @@
1
+ module Databoom
2
+ require_relative "databoom/linked_list"
3
+ end
metadata ADDED
@@ -0,0 +1,45 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: databoom
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Sreedev Kodichath
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-12-07 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description:
14
+ email: sreedevpadmakumar@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/databoom.rb
20
+ - lib/databoom/linked_list.rb
21
+ homepage: https://github.com/sreedevk/databoom
22
+ licenses:
23
+ - MIT
24
+ metadata:
25
+ source_code_uri: https://github.com/sreedevk/databoom
26
+ post_install_message:
27
+ rdoc_options: []
28
+ require_paths:
29
+ - lib
30
+ required_ruby_version: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ required_rubygems_version: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ requirements: []
41
+ rubygems_version: 3.2.22
42
+ signing_key:
43
+ specification_version: 4
44
+ summary: miscellaneous datastructures implemented in pure ruby
45
+ test_files: []