Sha256: dc30df301f2f6177a0c91e19295833a0e2367e10b7d4b6e4e7fcbaf2498d8cd7

Contents?: true

Size: 712 Bytes

Versions: 5

Compression:

Stored size: 712 Bytes

Contents


#
# Author: Waldemar Hummer (hummer@dsg.tuwien.ac.at)
#

include Toaster

module Toaster

  class StateTransition

    attr_accessor :pre_state, :parameters, :post_state

    def initialize(pre_state={}, parameters={}, post_state={})
      @pre_state = pre_state
      @parameters = parameters
      @post_state = post_state
    end

    def eql?(obj)
      return false if !obj.kind_of?(StateTransition)
      return obj.pre_state.eql?(@pre_state) && 
              obj.parameters.eql?(@parameters) && 
              obj.post_state.eql?(@post_state)
    end

    def ==(obj)
      return eql?(obj)
    end

    def hash()
      return @pre_state.hash + @parameters.hash + @post_state.hash
    end

  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
cloud-toaster-1.1.6 lib/toaster/state/state_transition.rb
cloud-toaster-1.1.5 lib/toaster/state/state_transition.rb
cloud-toaster-1.1.4 lib/toaster/state/state_transition.rb
cloud-toaster-1.1.3 lib/toaster/state/state_transition.rb
cloud-toaster-1.1.2 lib/toaster/state/state_transition.rb