Sha256: e55f71ffe673386be8409535546128d32eb805daa8e371185fbfb11e3c4c3dff
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
module Hydra #:nodoc: # Base message object. Used to pass messages with parameters around # via IO objects. # class MyMessage < Hydra::Message # attr_accessor :my_var # def serialize # super(:my_var => @my_var) # end # end # m = MyMessage.new(:my_var => 'my value') # m.my_var # => "my value" # m.serialize # => "{:class=>TestMessage::MyMessage, :my_var=>\"my value\"}" # Hydra::Message.build(eval(@m.serialize)).my_var # => "my value" class Message # Create a new message. Opts is a hash where the keys # are attributes of the message and the values are # set to the attribute. def initialize(opts = {}) opts.each do |variable,value| self.send("#{variable}=",value) end end # Build a message from a hash. The hash must contain # the :class symbol, which is the class of the message # that it will build to. def self.build(hash) hash.delete(:class).new(hash) end # Serialize the message for output on an IO channel. # This is really just a string representation of a hash # with no newlines. It adds in the class automatically def serialize(opts = {}) opts.merge({:class => self.class}).inspect end end end require 'hydra/message/runner_messages'
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
hydra-0.3.0 | lib/hydra/message.rb |