Class: SurrealDB::GeometryPolygon

Inherits:
Object
  • Object
show all
Defined in:
lib/surrealdb/models/geometry.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(exterior, *interiors) ⇒ GeometryPolygon

Returns a new instance of GeometryPolygon.



65
66
67
68
# File 'lib/surrealdb/models/geometry.rb', line 65

def initialize(exterior, *interiors)
  @exterior = exterior
  @interiors = interiors.freeze
end

Instance Attribute Details

#exteriorGeometryLine (readonly)

Returns exterior ring.

Returns:



60
61
62
# File 'lib/surrealdb/models/geometry.rb', line 60

def exterior
  @exterior
end

#interiorsArray<GeometryLine> (readonly)

Returns interior rings (holes).

Returns:



63
64
65
# File 'lib/surrealdb/models/geometry.rb', line 63

def interiors
  @interiors
end

Instance Method Details

#==(other) ⇒ Object Also known as: eql?



70
71
72
# File 'lib/surrealdb/models/geometry.rb', line 70

def ==(other)
  other.is_a?(GeometryPolygon) && other.exterior == @exterior && other.interiors == @interiors
end

#hashObject



75
76
77
# File 'lib/surrealdb/models/geometry.rb', line 75

def hash
  [self.class, @exterior, @interiors].hash
end

#inspectObject



79
80
81
# File 'lib/surrealdb/models/geometry.rb', line 79

def inspect
  "GeometryPolygon(exterior: #{@exterior.points.length} points, holes: #{@interiors.length})"
end