{"id":20802390,"url":"https://github.com/taywils/rubycryptoetf","last_synced_at":"2025-07-29T01:36:56.940Z","repository":{"id":147495848,"uuid":"120527018","full_name":"taywils/RubyCryptoETF","owner":"taywils","description":"Ruby library for crypto exchange API integration","archived":false,"fork":false,"pushed_at":"2018-05-17T02:33:20.000Z","size":48,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-19T05:05:11.756Z","etag":null,"topics":["cryptocurrency","gem","ruby"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/taywils.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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":"2018-02-06T21:44:39.000Z","updated_at":"2020-02-13T13:49:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"8dc72c55-4a8f-4e9d-91fd-3306d0fbfbbe","html_url":"https://github.com/taywils/RubyCryptoETF","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/taywils/RubyCryptoETF","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taywils%2FRubyCryptoETF","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taywils%2FRubyCryptoETF/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taywils%2FRubyCryptoETF/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taywils%2FRubyCryptoETF/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taywils","download_url":"https://codeload.github.com/taywils/RubyCryptoETF/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taywils%2FRubyCryptoETF/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267616780,"owners_count":24116164,"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-07-28T02:00:09.689Z","response_time":68,"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":["cryptocurrency","gem","ruby"],"created_at":"2024-11-17T18:31:09.578Z","updated_at":"2025-07-29T01:36:56.914Z","avatar_url":"https://github.com/taywils.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Proof of Concept Only\n\nI have decided to move away from the planned Ruby version towards a different approach.\nMy end goal to construct a tool for crypto trading and portfolio/analysis and management did not align with the state of this project.\n\n# RubyCryptoETF\n\nRubyCryptoETF is a Ruby implementation of a Crypto ETF inspired by the original\nJavascript version developed by [benmarten/CryptoETF].\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://s3-us-west-2.amazonaws.com/taywils.me.static.files/images/ruby_crypto_etf/ruby_crypto_etf_v_10_1.png\" alt=\"TerminalDisplay\" /\u003e\n\u003c/p\u003e\n\n## Status\n[Version 0.1.0]\n\n### Purpose\n\n1. To provide a modular Ruby gem that will eventually be used for a either an online account based ETF or crypto asset brokerage.\n2. A command-line tool to enable rapid trading and purchasing across multiple crypto asset exchanges via their public APIs\n\n## Integrations\n\nBelow is the current status for supported crypto asset exchange integrations\n\n[x] Coinbase via [coinbase/coinbase-ruby]\n\n[x] Binance via [Jakenberg/binance-ruby]\n\n[x] CoinMarketCap\n\n## Unit and Integration Tests (Run using bundle exec)\n- Git clone this project `git clone git@github.com:taywils/RubyCryptoETF.git`\n- Install dependencies with bundle `bundle install`\n- Run Rspec `bundle exec rspec`\n\n## Run on console\n- Git clone this project `git clone git@github.com:taywils/RubyCryptoETF.git`\n- Then build the gem locally `gem build ruby_crypto_etf.gemspec`\n\nYou should see the following in your console\n\n```\nSuccessfully built RubyGem\n  Name: ruby_crypto_etf\n  Version: 0.1.0\n  File: ruby_crypto_etf-0.1.0.gem\n```\n\n- Next install the local gem `gem install ./ruby_crypto_etf-0.1.0.gem`\n\nYou should see the following in your console\n\n```\nSuccessfully installed ruby_crypto_etf-0.1.0\n1 gem installed\n```\n\n- Create a settings.yaml file by copying and then editing the `settings.example.yaml`\n```\ncp ./settings.example.yaml ./settings.yaml\n```\n\n- Copy paste your api keys and api secrets to the `settings.yaml`\n\n- Use irb or [pry](https://github.com/pry/pry) to launch a new console\n\n```ruby\nrequire 'ruby_crypto_etf'\n=\u003e true\n```\n\n- Create a new `Market` object\n```ruby\ncm = RubyCryptoETF::CoinMarketCap.new\n```\n\n- We need to grab the live market data, first get the current Market Capitalization\n```ruby\ncm.fetch_total_market_cap\n```\n\n- Next we need all the tickers for each currency symbol being actively traded\n```ruby\ncm.fetch_tickers\n```\n\n- Create a new `Display` object, we will use the TerminalDisplay\n```ruby\ndisplay = RubyCryptoETF::TerminalDisplay.new\n```\n\n- Load a new `Portfolio` with the market and display chosen\n```ruby\nportfolio = RubyCryptoETF::Portfolio.new({ market: cm, display: display })\n```\n\n- From the `setting.yaml` file created earlier, initialize the exchanges\n```ruby\npath_to_your_settings_yaml = \"Replace this string with the full path to your settings.yaml\"\nportfolio.initialize_exchanges_from_settings(path_to_your_settings_yaml)\n```\n\n- Lastly send the `visualize` method to your portfolio\n```ruby\nputs portfolio.visualize\n```\n\n## License\nApache License, see LICENSE.md\n\n[benmarten/CryptoETF]: https://github.com/benmarten/CryptoETF\n[coinbase/coinbase-ruby]: https://github.com/coinbase/coinbase-ruby\n[Jakenberg/binance-ruby]: https://github.com/Jakenberg/binance-ruby\n[Version 0.1.0]: https://github.com/taywils/RubyCryptoETF/tree/0.1.0-branch\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaywils%2Frubycryptoetf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaywils%2Frubycryptoetf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaywils%2Frubycryptoetf/lists"}