Sha256: 4dc5db2a88a83542017db4d689005cb0aa76faa466e3fb4fab981c27f779dbef

Contents?: true

Size: 754 Bytes

Versions: 1

Compression:

Stored size: 754 Bytes

Contents

# frozen_string_literal: true
module WordSearch
  class Plane < SimpleDelegator
    def self.make_from_file(file, should_catalog: true)
      dimension =
        if File.read(file).split("\n\n").count > 1
          ThreeDimensional
        else
          TwoDimensional
        end

      obj =
        dimension::Plane.make_from_file(file, should_catalog: should_catalog)

      new(obj)
    end

    def self.make_from_coordinates(x, y, z = nil)
      obj =
        if z.present? && z > 1
          ThreeDimensional::Plane.new(x, y, z)
        else
          TwoDimensional::Plane.new(x, y)
        end

      new(obj)
    end

    def to_s
      if invalid?
        errors.full_messages.join("\n")
      else
        super
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
word_search-1.1.0 lib/word_search/plane.rb