class DiamondLang::Helpers::Coordinates

Public Class Methods

new(*args) click to toggle source
# File lib/diamond-lang/helpers/coordinates.rb, line 4
def initialize(*args)
  @coordinates, args = if args.first.is_a? Coordinate
    args.slice_before{|a| a.is_a? Coordinate }
  else
    axes_args = args.take Constants::Axes.length
    [
      axes_args.zip(Constants::Axes).flat_map do |value, axis|
        Coordinate.new axis, value
      end,
      args.drop(axes_args.length+1)
    ]
  end
end

Public Instance Methods

[](axis) click to toggle source
# File lib/diamond-lang/helpers/coordinates.rb, line 17
def [](axis)
  @coordinates.select{|coord| coord.axis == axis}[0]
end
to_arg() click to toggle source
# File lib/diamond-lang/helpers/coordinates.rb, line 35
def to_arg
  @coordinates.map {|coord| coord.to_arg}.join ','
end
to_fs(format) click to toggle source
# File lib/diamond-lang/helpers/coordinates.rb, line 32
def to_fs(format)
  format.gsub(/{(\w)}/) {|match| self[match[1]].value}
end
to_s() click to toggle source
# File lib/diamond-lang/helpers/coordinates.rb, line 29
def to_s
  self.to_fs "{x} {y} {z}".freeze
end
x() click to toggle source
# File lib/diamond-lang/helpers/coordinates.rb, line 20
def x
  self['x'.freeze]
end
y() click to toggle source
# File lib/diamond-lang/helpers/coordinates.rb, line 23
def y
  self['y'.freeze]
end
z() click to toggle source
# File lib/diamond-lang/helpers/coordinates.rb, line 26
def z
  self['z'.freeze]
end