{"id":14955482,"url":"https://github.com/utarsuno/ruuuby","last_synced_at":"2025-10-06T09:31:11.369Z","repository":{"id":56893911,"uuid":"231151141","full_name":"utarsuno/ruuuby","owner":"utarsuno","description":"description in migration","archived":false,"fork":false,"pushed_at":"2020-12-01T05:59:47.000Z","size":2497,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-28T22:59:04.036Z","etag":null,"topics":["c","config-as-code","discord","docker","github-actions","monorepo","nginx","node-js","postgresql","rabbitmq","rails6","rpc","ruby","webgl","webhooks"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/utarsuno.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-12-31T22:08:09.000Z","updated_at":"2024-04-30T05:14:58.000Z","dependencies_parsed_at":"2022-08-21T01:20:19.140Z","dependency_job_id":null,"html_url":"https://github.com/utarsuno/ruuuby","commit_stats":null,"previous_names":[],"tags_count":56,"template":false,"template_full_name":null,"purl":"pkg:github/utarsuno/ruuuby","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utarsuno%2Fruuuby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utarsuno%2Fruuuby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utarsuno%2Fruuuby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utarsuno%2Fruuuby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/utarsuno","download_url":"https://codeload.github.com/utarsuno/ruuuby/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utarsuno%2Fruuuby/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277510825,"owners_count":25830554,"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","status":"online","status_checked_at":"2025-09-29T02:00:09.175Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["c","config-as-code","discord","docker","github-actions","monorepo","nginx","node-js","postgresql","rabbitmq","rails6","rpc","ruby","webgl","webhooks"],"created_at":"2024-09-24T13:11:13.161Z","updated_at":"2025-10-06T09:31:10.579Z","avatar_url":"https://github.com/utarsuno.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ruuuby [![Gem Version](https://badge.fury.io/rb/ruuuby.svg)](https://badge.fury.io/rb/ruuuby)\n\n| for resource           | reference                                                   |\n| ---------------------: | :---------------------------------------------------------- |\n| latest version         | [`0.1.0.pre.5`](https://rubygems.org/gems/ruuuby/versions/0.1.0.pre.5-x86_64-darwin-19) |\n| stable version         | [`0.0.49`](https://rubygems.org/gems/ruuuby/versions/0.0.49-x86_64-darwin-18)           |\n| copy-paste smiley face | `˙ ͜ʟ˙` |\n| changelog              | [`CHANGELOG.md`](https://github.com/utarsuno/ruuuby/blob/master/CHANGELOG.md) with in progress migration to [`[History.txt format]`](https://guides.rubygems.org/releasing-rubygems/) |\n| `JIT` testing          | `RUBYOPT=\"--jit --jit-warnings --jit-wait --jit-max-cache=1337 --jit-verbose=2 --jit-debug -w\" ./bin/console/ruuuby` |\n| common\u003cbr\u003enon-ascii    | `∅`,`∃`,`∄`,`∋`,`∌`,`∈`,`∉`,`ⓣ`,`Ⓣ`,`≈`,`∞`,`π`,`℮`,`𝚽`\u003cbr\u003e`η̂`,`μ`,`𝔠`,`Λ`,`λ`,`∫`,`⨍`,`𝑓`,`∀`,`τ`,`χ²`,`x̃`,`𝚡`,`𝛿`,`σ`,`𝚪`,`𝛾`\u003cbr\u003e`𝔹`,`ℂ`,`ℕ`,`𝕎`,`ℤ`,`ℚ`,`𝔸ᵣ`,`ℂ`,`𝕋`,`𝕀`,`ℝ`,`𝕌`,`𝕊`,`🅱`\u003cbr\u003e`±`,`Ω`,`γ`,`Ψ`,`ρ`,`δ`,`Ⴔ`,`⨁`,`⨂`,`∖`,`≡`,`√`,`∛`,\u003cbr\u003e`↩`,`‣`,`⟶`,`↘`,`➚`,`⬇`,`⬆`,`●`,`◆`,`▲`,`▬`,`▰`,`♪`\u003cbr\u003e`𝞽`,`θ`,`°`,`ʳ`,`ᵍ`,`⦜`,`○`,`ᵀ`,`▣`,`∴`,`𝔦`,`𝔣`,`⌈`,`⌋`\u003cbr\u003e`ₑ`,`₀`,`₁`,`₂`,`₃`,`ₓ`,`ᵢ`,`⁻ⁿ`,`⁰`,`¹`,`²`,`³`,`⁴`,`⁵`,`⁶`,`⁷`,`⁸`,`⁹`\u003cbr\u003e`¼`,`½`,`¾`,`⅓`,`⅕`,`⅕`,`⅖`,`⅗`,`⅘`,`⅙`,`⅐`,`⅛`,`⅜`,`⅝`,`⅞`,`⅑`,`⅒`\u003cbr\u003e`💎`,`🌐`,`🆔`,`🛑`,`❓`,`💻`,`🔑`,`🐋`,`🐍`,`🐫`,`🙈`\u003cbr\u003e`📁`,`🗄️`,`💾`,`🕒`,`🎲`,`📊`,`🧟`,`❄️`,`⚠️`,`✏️`,`📖`,`🏠`\u003cbr\u003e`📱`,`🌎`,`✅`,`♻️`,`🍺`,`🛡`,`📅`,`❌`,`🧬`,`🐇`,`🌽` |\n| [download source for utilized version of Ruby](https://cache.ruby-lang.org/pub/ruby/3.0/) | [Ruby3.0.0-preview1](https://www.ruby-lang.org/en/news/2020/09/25/ruby-3-0-0-preview1-released/) |\n| summary \u0026 purpose      | in migration until version{`0.1.0`} |\n\n### Examples\n\n```ruby\n#  __   ___              ___          ___    ___  __  \n# |  \\ |__  \\  /    |  |  |  | |    |  |  | |__  /__` \n# |__/ |___  \\/     \\__/  |  | |___ |  |  | |___ .__/ \n\n# run node.js tests on live container{A}, transfer results as file to live container{B}\nqa_results = 🐋['service_js_dev'].cmd!(%w(npm test --check-leaks)).join.as_utf8\n🐋['service_nginx_dev'].📁✏️('/example/file/path.txt', qa_results)\n\n# send chat message, triggering execution of background QA tests which involve randomness\n#   ‣ allowing relatively ∞ time for tests to complete, as needed\n#   ‣ jobs can be scheduled from mobile-phone! 📱\n#\n# AMQP \u0026 REST: Ruuuby ⟶ Discord ⟶ JavaScript ⟶ RabbitMQ ⟶ Ruuuby ⟶ Discord\n$discord.msg('!cmd: bundle exec rake qa:rng')\n\n# ‣ A) is the specified path an empty file or not exist?\n# ‣ B) is today's average temperature in Chicago below freezing?\n# ‣ if yes to (A) and (B), save results of brew update command to file at path specified\npath_file = \"brew_update_#{📅.today.to_s}.txt\"\nunless 📁.∃?(path_file) || 📁.∅?(path_file)\n  chicago_data     = 🌐.get_json!('https://www.metaweather.com/api/location/2379574/')\n  avg_temp_celsius = chicago_data['consolidated_weather'].first['the_temp']\n  💻(\"brew update \u003e #{path_file}\") if avg_temp_celsius \u003c 0\nend\n```\n\n```ruby\n#  ___  ___      ___       __   ___     __     __   ___  __  ___ \n# |__  |__   /\\   |  |  | |__) |__     |  \\ | / _` |__  /__`  |  \n# |    |___ /~~\\  |  \\__/ |  \\ |___    |__/ | \\__\u003e |___ .__/  |  \n\n# | ✔ | ✔ | ✔ | ✔ | ✔ |\n𝚽 == 1 + (𝚽^⁻¹)\n𝚽 == 2 * sin(θ°(54))\nπ == 5 * acos(𝚽 / 2) \nθ°(360) == θʳ(π/2) * 4\n√(√(-1337.0^⁴)) == 1337\n\n# | ✔ | ✔ | ✘ | ✘ | ✔ |\n'b'.∈? 'abc'\n'abc'.∌? 'd'\n'd'.∈? 'abc'\n'xyz'.∉? [1337, 'xyz']\n[1337, 'xyz'].∋? 1337\n\n# | ✔ | ✘ |\n[1, 'a', 2, nil, [], 2].≈≈ [nil, 2, 2, 'a', 1, []]\n[1, 'a', 2, nil, [], 2] == [nil, 2, 2, 'a', 1, []]\n\n# | ✔ | ✔ | ✔ | ✔ |\n['snake_case'.🐍?, 'AHHH_CAPITALS'.🐍⬆?, 'UpperCaseCamel'.🐫?, 'lowerCaseCamel'.🐫⬇?]\n\n# | ✘ | ✔ | ✔ | ✘ | ✘ | ✔ |\n[ℕ.∋?(-5), 𝕎.∋?(0.0), ℤ.∋?(7.0), ℝ.∋?(∞), ℝ.∋?(3i), ℚ.∋?(2/3r)]\n\n# | ✔ | ✔ | ✔ |\nMatrix[[1,3,5],[2,4,6]].ᵀ == Matrix[[1,2],[3,4],[5,6]]\n([1, 2, 3].⨁ [3, 4]) == [1, 4, 2]\n([2, 3, 4].∖ [1, 2, 3]) == [4]\n\n# | ✔ | ✘ |\ndata = {haaallo: 'wooorld', ye: 'ee'}\n[data.∃🔑?(:haaallo), data.∃🔑?(:👁️👅👁️)]\n\n# stdout ⟶ 'world'\n#            'hello'\n['world', 1337, 'hello', 'abc'.❄️].∀{|x| puts x if x.str? \u0026\u0026 !x.❄️?}\n\n# stdout ⟶ 'hello'\n#            'world'\n['world', 1337, 'hello', 'abc'.❄️].↩∀{|x| puts x if x.str? \u0026\u0026 !x.❄️?}\n```\n\n### Gems:\n\n| gem | version | :development, :runtime | notes |\n| :---: | :---: | :---: | :--- |\n| `tty-command` | [`0.10.0`](https://rubygems.org/gems/tty-command/versions/0.10.0) | ✅, ✅ | always required |\n| `finite_machine` | [`0.14.0`](https://rubygems.org/gems/finite_machine/versions/0.14.0) | ✅, ✅ | always required |\n| `bunny` | [`2.17.0`](https://rubygems.org/gems/bunny/versions/2.17.0) | ✅, ❌ | toggleable feature |\n| `docker-api` | [`2.0.0`](https://rubygems.org/gems/docker-api/versions/2.0.0) | ✅, ❌ | toggleable feature |\n| `open3` | [`0.1.0`](https://rubygems.org/gems/open3/versions/0.1.0) | ✅, ❌ | toggleable feature |\n| `pg` | [`1.2.3`](https://rubygems.org/gems/pg/versions/1.2.3) | ✅, ❌ | toggleable feature |\n| `activerecord` | [`6.0.3.4`](https://rubygems.org/gems/activerecord/versions/6.0.3.4) | ✅, ❌ | toggleable feature |\n| `keycutter` | [`1.0.2`](https://rubygems.org/gems/keycutter/versions/1.0.2) | ✅, ❌ | development utility |\n| `rubocop` | [`1.4.2`](https://rubygems.org/gems/rubocop/versions/1.4.2) | ✅, ❌ | development utility |\n| `rdoc` | [`6.2.1`](https://rubygems.org/gems/rdoc/versions/6.2.1) | ✅, ❌ | development utility |\n| `rspec` | [`3.10.0`](https://rubygems.org/gems/rspec/versions/3.10.0) | ✅, ❌ | development utility |\n| `rspec-benchmark` | [`0.6.0`](https://rubygems.org/gems/rspec-benchmark/versions/0.6.0) | ✅, ❌ | development utility |\n| `rake` | [`13.0.1`](https://rubygems.org/gems/rake/versions/13.0.1) | ✅, ❌ | development utility |\n| `rake-compiler` | [`1.1.1`](https://rubygems.org/gems/rake-compiler/versions/1.1.1) | ✅, ❌ | development utility |\n| `rubygems-update` | [`3.2.0.rc.2`](https://rubygems.org/gems/rubygems-update/versions/3.2.0.rc.2) | ❌, ❌ | recommended version |\n| `bundler` | [`2.2.0.rc.2`](https://rubygems.org/gems/bundler/versions/2.2.0.rc.2) | ❌, ❌ | recommended version |\n| `rugged` | [`1.1.0`](https://rubygems.org/gems/rugged/versions/1.1.0) | ❌, ❌ | to be (re-added) after increasing `CICD` scope |\n| `github-linguist` | [`7.12.0`](https://rubygems.org/gems/github-linguist/versions/7.12.0) | ❌, ❌ | to be added after increasing `CICD` scope |\n| `rails` | [`6.0.3.4`](https://rubygems.org/gems/rails/versions/6.0.3.4) | ❌, ❌ | to be added after increasing `CICD` scope |\n\n## Overview:\n\n### Example Refinements:\n\n| base context | sub context | applies to | example of added functions  |\n| ------------ | ----------- | -----------| --------------------------- |\n| `ThetaAngle` | `ContextStr`        | `String`   | `ʳ?`,`ᵍ?`,`ʳ`,`ᵍ`   |\n| `ThetaAngle` | -`ContextRuuuby`\u003cbr\u003e-`ContextParamCheck` | `Object`   | -`θ°`,`θʳ`,`θᵍ`,`θ𝞽`\u003cbr\u003e-`θ?`,`🛑θ❓` |\n| `Math::Algebra::Tropical` | `ContextNumeric` | `Numeric` | `⨁`, `⨂` |\n| `Math::Algebra::Tropical` | `ContextMatrix`  | `Matrix`  | `⨁`, `⨁!`, `⨂`, `⨂ⁿ` |\n| `Heuristics` | `ContextParsingCommandOutput` | -`String`\u003cbr\u003e-`Array` | `clean` |\n\n### Example Math Modules:\n\n| (sub) module | sub-module | func(s) added |\n| ------: | :----: | :---------------- |\n| `Math` | `Ratio` | `golden?`, `super_golden?` |\n| `NumberTheory` | | `semiprime?` |\n| `NumberTheory` | `ℕ¹` | `prime_factors`, `divisors`, `proper_divisors`, `aliquot_sum`, `perfect?`, `almost_perfect?`, `abundant?`, `abundance`, `abundancy_index`, `deficient?`, `deficiency`, `composite?` |\n| `NumberTheory` | `𝕎¹` |  `nᵗʰ_euler_totient`, `nᵗʰ_cototient`, `digit_sum`, `digital_root`, `additive_persistence` |\n| `NumberTheory` | `ℕ²` | `coprime?`, `friendly?` |\n| `NumberTheory` | `ℤ³` | `congruent?` |\n| `Combinatorics` | `𝕎¹` | `len_powerset` |\n| `Combinatorics` | `𝕎²` | `n_choose_k`, `permutations`, `len_ordered_with_replacement` |\n| `Stats` | | `μ`⟶`arithmetic_mean`, `x̃`⟶`median` |\n| `Stats` | `TimeSeries` | `simple_moving_average`, `weighted_moving_average`, `exponential_moving_average`, `aroon_up`, `aroon_down`, `aroon_oscillator` |\n| `Stats` | `Probability` | |\n| `Stats` | `Descriptive` | `𝛿`⟶`percentage_error`, `relative_diff` |\n| `Stats` | `StatisticalLearning` | |\n| `Stats` | `Distribution::Normal` | `cdf` |\n\n### Example Custom Math Classes:\n\n| base-context   | sub-context  | sample functionality |\n| -------------: | :----------: | :------ |\n| `Trigonometry` | \u003cem\u003eclass:\u003c/em\u003e `ThetaAngle` | `°?`,`°`,`ʳ?`,`ʳ`,`∅?`,`⦜?`,`○?`,`η̂?`,`η̂!` |\n| `Statistics`   | \u003cem\u003eclass:\u003c/em\u003e `TimeSeriesData` | `μ`,`x̃`,`σ`,`σ²`,`ρ`,`mse`,`mape`,`λ`,`Λ`,`η̂?`,`η̂!`\u003cbr\u003e`mem_size`,`free_memory`,`Q₁`,`Q₂`,`Q₃`,`IQR`,`outliers_lower`,`outliers_upper` |\n| `NumberTheory::𝕎¹` | \u003cem\u003esingleton-objs of class:\u003c/em\u003e `Math::Expr::Sequence` | `seq_pronic`,`seq_fibonacci`,`seq_lucas`,`seq_square`,`seq_triangle`,`seq_hexagonal` |\n| `Forex`        | \u003cem\u003eclass: `CurrencyMatrix`\u003c/em\u003e | |\n| `GraphTheory`  | \u003cem\u003eclass:\u003c/em\u003e `PseudoGraph` | |\n\n### Example Class Modifications:\n\n| class(es)              | func(s) added                       |\n| ---------------------: | :---------------------------------- |\n| `File`, `Dir`, `ENV`, `NilClass`, `Vector` | `∅?`            |\n| `File`                 | `replace_expr_with`, `replace_expr_with!`, `insert_line_before_expr` |\n| `Object`               | `Ⓣ`, `ary?`, `bool?`, `hsh?`, `int?`, `flt?`, `num?`, `str?`, `chr?`, `sym?`, `matrix?`, `vec?`\u003cbr\u003e`🛑bool❓`, `🛑int❓`, `🛑flt❓`, `🛑num❓`, `🛑ary❓`, `🛑str❓`, `🛑sym❓` |\n| `String`               | `♻️⟵`, `♻️⟶`, `♻️⟶∞`,`∋?`, `∌?`, `∈?`, `∉?`\u003cbr\u003e`⬇?`⟶`downcase?`, `⬆?`⟶`upcase?`, `⬇!`⟶`downcase!`, `⬆!`⟶`upcase!`\u003cbr\u003e`🐫?`, `🐫⬇?`, `to_🐫``🐍⬆?`, `🐍?`, `to_🐍`\u003cbr\u003e`digit?`, `to_num`, `to_num?`, `palindrome?`\u003cbr\u003e`as_utf8`, `iso8601?`, `to_iso8601`, `as_iso8601` |\n| `Enumerable`           | `∌?`, `∀τ²∈λ𝑓₍ᵢ،ᵢ₊₁₎`              |\n| `Array`, `String`      | `\u003e\u003e`, `η̂!`, `ensure_start!`, `ensure_ending!` |\n| `Matrix`               |  `∀ₓ↘`, `∀ₓᵢ↘`, `↘_to_a`, `∀ₓᵢⱼ`   |\n\n### Example Aliases:\n\n| for                    | base method(s) reference(s)               | alias(es)                |\n| ---------------------: | ----------------------------------------- | ------------------------ |\n| `Kernel`               | `raise`                                   | `🛑` |\n| `Object`               | `object_id`, `class`, `freeze`, `frozen?` | `🆔`, `ⓣ`, `❄️`, `❄️?` |\n| `Module`               | `private`, `protected`, `const_defined?`, `private_method_defined?`, `protected_method_defined?` | `🙈`, `🛡️`, `∃const?`, `∃🙈⨍`, `∃🛡️⨍?` |\n| `String`, `Symbol`     | `upcase`, `downcase`                      | `⬆`, `⬇` |\n| `Array`, `Hash`, `Set` | `each`                                    | `∀` |\n| `Enumerable`           | `map`, `each_with_index`                  | `⨍`, `∀ₓᵢ` |\n| `Hash`                 | `key?`                                    | `∃🔑?` |\n| `NilClass`, `Hash`, `Array`, `String`, `Set` | `empty?`            | `∅?`|\n| `String`, `Array`, `Set`, `Hash`, `Proc` | `length` (`arity` for `Proc`) * | `𝔠` |\n\n---\n\n### Runnable Commands\n\n\u003e documentation to update here prior to version{0.1.0}\n\n---\n\n### Code Base Statistics:\n\n#### Discrete Tests: *(relative test weights are estimated, pending formal calculations)*\n\n| relative weight per test | testing categories | label   | count   | stable before version{`0.1.0`} | description |\n| -----: | :----------------: | :----------------------: | :----------: | :-----: | :---- |\n| `0.01` | `QA`               | `unit`                   | `1203`      | ✅      | core functionality |\n| `0.01` | `QA`               | `tech-debt`              | `8`         | ✅      | track missing or incorrect functionality |\n| `0.01` | `CICD`             | `audit`                  | `83`        | ✅      | anything non-functionality based regarding expected `code structure` |\n| `0.01` | `CICD`             | `preferences`            | `26`        | ✅      | verify developer preferred `OS \u0026 dev configs/values` |\n| `0.02` | `QA`,`DB`          | `DB engine`              |             | ❌      | `DB` specific `unit` tests |\n| `0.05` | `QA`,`DB`          | `ORM`                    |             | ❌      | `ORM` specific `unit` tests |\n| `0.05` | `CICD`             | `locale`                 | `55`        | ✅      | verify `Ruuuby` required (build) configs |\n| `0.05` | `QA`               | `integration`            | `42`        | ✅      | state \u0026 functionality of grouped `unit` tests (especially for any set of code involving more than `1 feature`) |\n| `0.10` | `QA`               | `rng`                    |             | ❌      | verify data distributions (each test allowed relatively ∞ time to complete) |\n| `0.15` | `QA`,`performance` | `benchmarks-runtime`     |             | ❌      | verify ideal boundaries and variance of `runtime performance` |\n| `0.15` | `QA`,`performance` | `benchmarks-memory`      |             | ❌      | verify ideal boundaries and variance of `memory performance`  |\n| `0.25` | `QA`,`performance` | `benchmark-matrices`     |             | ❌      | verify ideal `macro trends` through aggregations of data-sets from `benchmarks`, `logs`, `DB data`, etc |\n| `0.50` | `QA`,`DB`          | `services`               |             | ❌      | `integration` scaled across groups of `ORM \u0026 DB` tests |\n| `0.75` | `QA`,`DB`          | `system`                 | `7`         | ✅      | `integration` scaled to `micro-services` w/ randomness added to help encounter niche error-states |\n| `1.00` | `QA`,`CICD`,`DB`   | `domain`                 |             | ❌      | `integration` scaled across groups of `micro-services` |\n\n#### Code Coverage\n\n| category               |  `%` of code covered     | stable before version{`0.1.0`} |\n| ---------------------: | :----------------------: | :----------------------------- |\n| `features`             | `?`                      | ❌                             |\n| `documentation`        | `?`                      | ❌                             |\n| `full test suite`      | `?`                      | ❌                             |\n| `configuration as code` | `?`                      | ❌                             |\n| `linter`               | `?`                      | ❌                             |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Futarsuno%2Fruuuby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Futarsuno%2Fruuuby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Futarsuno%2Fruuuby/lists"}