diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2012-06-10 11:11:28 +0200 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2012-06-10 11:11:28 +0200 |
commit | 6553912a6dff9b2c8bd3f06cb5f10488eef2c18c (patch) | |
tree | 804cbb720c993afd5453ea4a8086b264e22382fe /lib/edoors/iota.rb | |
parent | 74d45762846ea7e6ac09f65fb31672b822f7a349 (diff) | |
download | edoors-ruby-6553912a6dff9b2c8bd3f06cb5f10488eef2c18c.zip edoors-ruby-6553912a6dff9b2c8bd3f06cb5f10488eef2c18c.tar.gz |
project iotas->edoors-ruby, module Iotas->Edoors
Diffstat (limited to 'lib/edoors/iota.rb')
-rw-r--r-- | lib/edoors/iota.rb | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/lib/edoors/iota.rb b/lib/edoors/iota.rb new file mode 100644 index 0000000..47a2eb6 --- /dev/null +++ b/lib/edoors/iota.rb @@ -0,0 +1,67 @@ +#! /usr/bin/env ruby +# -*- coding: UTF-8 -*- +# +# Copyright 2012 Jérémy Zurcher <jeremy@asynk.ch> +# +# This file is part of edoors-ruby. +# +# edoors-ruby is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# edoors-ruby is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with edoors-ruby. If not, see <http://www.gnu.org/licenses/>. + +# +module Edoors + # + class Iota + # + def initialize n, p + raise Edoors::Exception.new "Iota name #{n} is not valid" if n.include? Edoors::PATH_SEP + @name = n # unique in it's room + @parent = p # single direct parent + @viewer = nil # particle going through that position will be sent there readonly + @path = ( @parent ? @parent.path+Edoors::PATH_SEP : '') + @name + @spin = ( @parent ? @parent.spin : self ) + if @parent + @parent.add_iota self + @spin.add_to_world self if @spin.is_a? Edoors::Spin + end + end + # + attr_reader :name, :path, :spin + attr_accessor :viewer, :parent + # + def start! + # override this to initialize your object on system start + end + # + def stop! + # override this to initialize your object on system stop + end + # + def hibernate! + # override this to save your object state on hibernate + {} + end + # + def resume! o + # override this to restore your object state on resume + end + # + def receive_p p + raise NoMethodError.new "receive_p(p) must be overridden" + end + # + end + # +end +# +# EOF |