Sha256: cc5259f78d77ccc5858d46709bdc66b12348c42c45883d2b9b2737d6c570327e

Contents?: true

Size: 810 Bytes

Versions: 3

Compression:

Stored size: 810 Bytes

Contents

require_relative 'world_object'

module Woyo

class Way < WorldObject

  attributes :name, :description

  def from
    @from ||= context
  end

  def world
    from ? from.world : nil
  end

  def to= arg
    if arg.instance_of? Symbol
      case
      when from && arg == from.id
        @to = from                        # way loops back to the same location
      when world && world.locations[arg]
        @to = world.locations[arg]        # destination location already exists in world
      when world
        @to = world.location arg          # create destination location in world 
      else
        @to = Location.new arg            # create free-standing destination location
      end
    end
  end

  def to arg=nil
    if arg.nil?
      @to
    else
      self.to = arg
    end
  end

end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
woyo-world-0.0.2 lib/woyo/world/way.rb
woyo-world-0.0.1 lib/woyo/world/way.rb
woyo-world-0.0.1.pre2 lib/woyo/world/way.rb