Class: SurrealDB::GeometryLine

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*points) ⇒ GeometryLine

Returns a new instance of GeometryLine.

Raises:

  • (ArgumentError)


34
35
36
37
38
# File 'lib/surrealdb/models/geometry.rb', line 34

def initialize(*points)
  raise ArgumentError, 'a line requires at least 2 points' if points.length < 2

  @points = points.freeze
end

Instance Attribute Details

#pointsArray<GeometryPoint> (readonly)

Returns:



32
33
34
# File 'lib/surrealdb/models/geometry.rb', line 32

def points
  @points
end

Instance Method Details

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



44
45
46
# File 'lib/surrealdb/models/geometry.rb', line 44

def ==(other)
  other.is_a?(GeometryLine) && other.points == @points
end

#coordinatesObject



40
41
42
# File 'lib/surrealdb/models/geometry.rb', line 40

def coordinates
  @points.map(&:coordinates)
end

#hashObject



49
50
51
# File 'lib/surrealdb/models/geometry.rb', line 49

def hash
  [self.class, @points].hash
end

#inspectObject



53
54
55
# File 'lib/surrealdb/models/geometry.rb', line 53

def inspect
  "GeometryLine(#{@points.length} points)"
end