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