{"id":15512896,"url":"https://github.com/seanhandley/h3_ruby","last_synced_at":"2025-10-12T09:31:56.320Z","repository":{"id":37935439,"uuid":"160870624","full_name":"seanhandley/h3_ruby","owner":"seanhandley","description":"Ruby Bindings for H3, a hexagonal geospatial indexing system","archived":false,"fork":false,"pushed_at":"2024-04-30T06:23:56.000Z","size":374,"stargazers_count":54,"open_issues_count":2,"forks_count":5,"subscribers_count":47,"default_branch":"master","last_synced_at":"2024-04-30T12:57:09.020Z","etag":null,"topics":["c","geospatial","h3","hexagon","ruby","ruby-bindings","spatial-indexing"],"latest_commit_sha":null,"homepage":"https://eng.uber.com/h3/","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/seanhandley.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","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}},"created_at":"2018-12-07T20:09:23.000Z","updated_at":"2024-04-30T06:24:00.000Z","dependencies_parsed_at":"2024-01-13T03:27:09.868Z","dependency_job_id":"0aa290c0-a706-4a76-a226-cd0f2f4a1825","html_url":"https://github.com/seanhandley/h3_ruby","commit_stats":{"total_commits":127,"total_committers":6,"mean_commits":"21.166666666666668","dds":0.5039370078740157,"last_synced_commit":"e1f41ace4d84c9461e23315847efc3faea926757"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanhandley%2Fh3_ruby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanhandley%2Fh3_ruby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanhandley%2Fh3_ruby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanhandley%2Fh3_ruby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seanhandley","download_url":"https://codeload.github.com/seanhandley/h3_ruby/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219872643,"owners_count":16555029,"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":["c","geospatial","h3","hexagon","ruby","ruby-bindings","spatial-indexing"],"created_at":"2024-10-02T09:53:55.500Z","updated_at":"2025-10-12T09:31:56.315Z","avatar_url":"https://github.com/seanhandley.png","language":"Ruby","readme":"# H3 Ruby\n\n📢 **LOOKING FOR A NEW MAINTAINER**\n\n![h3](https://user-images.githubusercontent.com/98526/50283275-48177300-044d-11e9-8337-eba8d3cc88a2.png)\n\n![Build Status](https://github.com/seanhandley/h3_ruby/actions/workflows/ruby_ci.yml/badge.svg) [![Coverage Status](https://coveralls.io/repos/github/seanhandley/h3_ruby/badge.svg?branch=master)](https://coveralls.io/github/seanhandley/h3_ruby?branch=master) [![Maintainability](https://api.codeclimate.com/v1/badges/d253207a3307cad4e4c9/maintainability)](https://codeclimate.com/github/seanhandley/h3_ruby/maintainability) [![Gem Version](https://badge.fury.io/rb/h3.svg)](https://badge.fury.io/rb/h3)\n\nRuby-to-C bindings for Uber's [H3 library](https://uber.github.io/h3/).\n\nPlease consult [the H3 documentation](https://uber.github.io/h3/#/documentation/overview/introduction) for a full explanation of terminology and concepts.\n\n## Supported H3 Versions\n\nThe semantic versioning of this gem matches the versioning of the H3 C library. E.g. version `3.5.x` of this gem is targeted for version `3.5.y` of H3 C lib where `x` and `y` are independent patch levels.\n\n## Naming Conventions\n\nWe have changed camel-case method names to snake-case, as per the Ruby convention.\n\nIn addition, some methods using the `get` verb have been renamed i.e. `getH3UnidirectionalEdgesFromHexagon` becomes `unidirectional_edges_from_hexagon`.\n\nWe have also suffixed predicate methods with a question mark, as per the Ruby convention, and removed `h3Is` from the name i.e. `h3IsPentagon` becomes `pentagon?`\n\n## Getting Started\n\nThis gem uses FFI to link directly into the H3 library (written in C).\n\nThe H3 library is packaged with the gem and is built as a native extension. H3 is not installed system-wide, so it will not interfere with any other versions you may have installed previously.\n\nBefore installing the gem, please install the build dependencies for your system as instructed here: https://github.com/uber/h3#install-build-time-dependencies\n\n## Installing\n\nYou can install the gem directly from RubyGems.org using\n\n    gem install h3\n\nor add it to your Gemfile\n\n```ruby\n# Gemfile\ngem \"h3\", \"~\u003e 3.7\"\n```\n\n## Usage\n\nRequire the gem in your code\n\n```ruby\nrequire \"h3\"\n```\n\nCall H3 functions via the `H3` namespace\n\n```ruby\nH3.from_geo_coordinates([53.959130, -1.079230], 8).to_s(16)\n=\u003e \"8819429a9dfffff\"\nH3.valid?(\"8819429a9dfffff\".to_i(16))\n=\u003e true\nH3.pentagon?(\"8819429a9dfffff\".to_i(16))\n=\u003e false\nH3.to_boundary(\"8819429a9dfffff\".to_i(16))\n=\u003e [[53.962987505331384, -1.079984346847996], [53.9618315234061, -1.0870313428985856], [53.95744798515881, -1.0882421079017874], [53.95422067486053, -1.082406760751464], [53.955376670617454, -1.0753609232787642], [53.95975996282198, -1.074149274503605]]\n```\n\n## Documentation\n\nPlease read [the Gem Documentation](https://www.rubydoc.info/gems/h3) for a full reference of available methods.\n\n## Development\n\nThe development environment requires the H3 library to be compiled from source before tests can be executed.\n\nThis is done automatically by the test suite. However, Rake tasks are provided to handle building H3 in a more fine-grained manner.\n\n### Building H3\n\n    rake build\n\nYou can remove the compiled H3 library with `rake clean`, or rebuild it with `rake rebuild`.\n\n### Running Tests\n\nThe test suite exercises all the H3 functions.\n\n    rake spec\n\nBe aware that errors may be encountered if you have a locally cached H3 binary that's older than the version targeted. Try `rake rebuild` and re-run `rake spec` if this occurs.\n\n## Contributing\n\nPull requests and issues are welcome! Please read [the Contributing Guide](./CONTRIBUTING.md) for more info.\n","funding_links":[],"categories":["Ruby"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseanhandley%2Fh3_ruby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseanhandley%2Fh3_ruby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseanhandley%2Fh3_ruby/lists"}