Sha256: c53a1b545b9d9eb132ce8cbb451e1c6670ea6c40a54edcb7bf6dc5edda90001c

Contents?: true

Size: 1.07 KB

Versions: 1

Compression:

Stored size: 1.07 KB

Contents

require "ffi"
require "rgeo/geo_json"

require "h3/bindings"
require "h3/geo_json"
require "h3/hierarchy"
require "h3/indexing"
require "h3/inspection"
require "h3/miscellaneous"
require "h3/regions"
require "h3/traversal"
require "h3/unidirectional_edges"

# The main H3 namespace.
#
# All public methods for the library are defined here.
#
# @see https://uber.github.io/h3/#/documentation/overview/introduction
module H3
  class << self
    include GeoJSON
    include Hierarchy
    include Miscellaneous
    include Indexing
    include Inspection
    include Regions
    include Traversal
    include UnidirectionalEdges

    # FFI's attach_function doesn't allow method names ending with a
    # question mark. This works around the issue by dynamically
    # renaming those methods afterwards.
    PREDICATES = %i[h3_indexes_neighbors h3_pentagon h3_res_class_3
                    h3_unidirectional_edge_valid h3_valid].freeze
    private_constant :PREDICATES
    PREDICATES.each do |predicate|
      alias_method "#{predicate}?", predicate
      undef_method predicate
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
h3-3.3.1 lib/h3.rb