{"id":22783228,"url":"https://github.com/gregolive/ruby_misc","last_synced_at":"2025-03-30T15:14:02.972Z","repository":{"id":183622995,"uuid":"411701611","full_name":"gregolive/ruby_misc","owner":"gregolive","description":"A collection of methods and projects built to practice Ruby.","archived":false,"fork":false,"pushed_at":"2021-10-18T12:42:51.000Z","size":57,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-05T16:40:33.318Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://replit.com/@gregolive","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gregolive.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-29T14:12:54.000Z","updated_at":"2021-10-18T12:42:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"c63caedb-5721-43e0-8206-92c2bf7700cd","html_url":"https://github.com/gregolive/ruby_misc","commit_stats":null,"previous_names":["gregolive/ruby_misc"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregolive%2Fruby_misc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregolive%2Fruby_misc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregolive%2Fruby_misc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregolive%2Fruby_misc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gregolive","download_url":"https://codeload.github.com/gregolive/ruby_misc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246334430,"owners_count":20760644,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-11T22:07:23.180Z","updated_at":"2025-03-30T15:14:02.966Z","avatar_url":"https://github.com/gregolive.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ruby Misc.\n\nA collection of methods and projects built to practice Ruby.\n\n## 1. Binary Search Trees\n\nA binary search tree (BST) is a type of data structure that stores data in an organized, non-linear way, resulting in faster lookup times compared to linear data structure like arrays and linked lists.\n\nThis class is an implementation of a balanced BST, meaning the height of a node children differ by 1 at most. The class contains various methods for adding, removing, balancing and printing the tree.\n\nLive demo on [Replit](https://replit.com/@gregolive/Binary-Search-Trees) 👈\n\n## 2. Bubble Sort\n\nBubble sort is a simple sorting algorithm that repeatedly steps through a list, compares adjacent elements and swaps them if they are in the wrong order. The pass through the list is repeated until the list is sorted.\n\nThis bubble sort algorithm orders a list of randomized integers from smallest to largest. It is optimized to only check n-1 elements, where n is the number of pass throughs, since the largest unsorted integer always \"bubbles\" to the top on each pass through. It also also optimized to recognize if the list is sorted before all pass throughs have been completed.\n\nLive demo on [Replit](https://replit.com/@gregolive/Bubble-Sort) 👈\n\n## 2. Caesar Cipher\n\nCreates a Caesar cipher from a string and an integer.\n\nA Caesar cipher is a type of substitution cipher in which each letter in the plaintext is replaced by a letter some fixed number of positions down the alphabet. It is one of the simplest and most widely known encryption techniques.\n\nLive demo on [Replit](https://replit.com/@gregolive/Caesar-Cipher) 👈\n\n## 3. Custom Enumerables\n\nRecreating some of Ruby's built-in enumerables—methods for searching, traversal, and sorting collections—to gain a deeper understanding of blocks and procs.\n\nLive demo on [Replit](https://replit.com/@gregolive/Custom-Enumerables) 👈\n\n## 4. Event Manager\n\nA tutorial from the Odin Project to practice Ruby I/O and Google APIs.\n\nThe goal is to find the government representatives of each attendee of an upcoming event based on their zip code. The information for the attendees is contained in a CSV and needs to be checked for validity. Using their address and the GoogleCivic API, the government representatives are then appended to an ERB template.\n\n## 5. Linked List\n\nA linked list is a linear collection of data elements whose order is the result of each element points to the next. \n\nIn this basic linked list every node contains data and a reference to the next node in the sequence. The LinkedList class contains a variety of methods to add and delete nodes and search for specific indexes and data within the list.\n\nLive demo on [Replit](https://replit.com/@gregolive/Linked-List) 👈\n\n## 6. Merge Sort\n\nMerge sort is a divide and conquer (recursive) sorting algorithm.\n\nFirst the array is divided into the smallest unit (1 element), then each element is compared with the adjacent list to sort and the two adjacent lists are merged. Finally all the elements are sorted and merged.\n\nLive demo on [Replit](https://replit.com/@gregolive/Merge-Sort) 👈\n\n## 7. Recursion\n\nA collection of recursive Ruby methods made to practice putting recursion into practice.\n\nLive demo on [Replit](https://replit.com/@gregolive/Recursion) 👈\n\n## 8. Stock Picker\n\nDetermines the best day to have bought and then sold a stock given an array of it's price history.\n\nLive demo on [Replit](https://replit.com/@gregolive/Stock-Picker) 👈\n\n## 9. Substrings\n\nA method to determine the frequency of substrings contained within a string.\n\nLive demo on [Replit](https://replit.com/@gregolive/Substrings) 👈\n\n## 10. Typing Practice\n\nTyping practice for beginners.\n\nChoose a category (i.e. fruits) and then practice typing words from that category (apple, banana, etc.). When a mistake is made the user is prompted to retry typing the word.\n\nLive demo on [Replit](https://replit.com/@gregolive/Typing-Practice) 👈","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregolive%2Fruby_misc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgregolive%2Fruby_misc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregolive%2Fruby_misc/lists"}