aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-05-11 01:24:43 +0200
committerAbigail <abigail@abigail.be>2021-05-11 01:24:43 +0200
commit6b21ba5c2303a59a3cca7b693ea0a55faf766c95 (patch)
tree8ac30c0bf239497fcc4c2a43eb29005e6aa763da
parentbfb3640986af5c780b19d4165f36892336cdbcc9 (diff)
downloadperlweeklychallenge-club-6b21ba5c2303a59a3cca7b693ea0a55faf766c95.tar.gz
perlweeklychallenge-club-6b21ba5c2303a59a3cca7b693ea0a55faf766c95.tar.bz2
perlweeklychallenge-club-6b21ba5c2303a59a3cca7b693ea0a55faf766c95.zip
Ruby solutions for week 112
-rw-r--r--challenge-112/abigail/README.md2
-rw-r--r--challenge-112/abigail/ruby/ch-1.rb27
-rw-r--r--challenge-112/abigail/ruby/ch-2.rb22
3 files changed, 51 insertions, 0 deletions
diff --git a/challenge-112/abigail/README.md b/challenge-112/abigail/README.md
index 4b619db213..2b454118bb 100644
--- a/challenge-112/abigail/README.md
+++ b/challenge-112/abigail/README.md
@@ -40,6 +40,7 @@ Output: "/a"
* [Node.js](node/ch-1.js)
* [Perl](perl/ch-1.pl)
* [Python](python/ch-1.py)
+* [Ruby](ruby/ch-1.rb)
### Blog
@@ -62,5 +63,6 @@ This is just finding the `$n + 1` Fibonacci number.
* [Node.js](node/ch-1.js)
* [Perl](perl/ch-2.pl)
* [Python](python/ch-2.py)
+* [Ruby](ruby/ch-1.rb)
### Blog
diff --git a/challenge-112/abigail/ruby/ch-1.rb b/challenge-112/abigail/ruby/ch-1.rb
new file mode 100644
index 0000000000..e26463cb68
--- /dev/null
+++ b/challenge-112/abigail/ruby/ch-1.rb
@@ -0,0 +1,27 @@
+#!/usr/bin/ruby
+
+#
+# See ../README.md
+#
+
+#
+# Run as: ruby ch-1.rb < input-file
+#
+
+ARGF . each_line do
+ | line |
+ parts = line . strip() . split (/\/+/)
+ parts2 = []
+ parts . each do
+ | part |
+ if part == "" or part == "." # Skip empty parts and current directory
+ next
+ end
+ if part == ".." # Remove parent directory
+ parts2 . pop
+ next
+ end
+ parts2 . push (part) # Add part
+ end
+ puts ("/" + parts2 . join("/")) # Print result
+end
diff --git a/challenge-112/abigail/ruby/ch-2.rb b/challenge-112/abigail/ruby/ch-2.rb
new file mode 100644
index 0000000000..68c59fef40
--- /dev/null
+++ b/challenge-112/abigail/ruby/ch-2.rb
@@ -0,0 +1,22 @@
+#!/usr/bin/ruby
+
+#
+# See ../README.md
+#
+
+#
+# Run as: ruby ch-1.rb < input-file
+#
+
+$cache = {}
+$cache [0] = 1
+$cache [1] = 1
+
+def fib (n)
+ $cache [n] ||= fib(n - 1) + fib(n - 2)
+end
+
+ARGF . each_line do
+ | n |
+ puts (fib(n . to_i))
+end