journeta 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/examples/instant_messenger.rb +0 -0
- data/lib/journeta/journeta_engine.rb +2 -1
- data/lib/journeta/peer_connection.rb +3 -3
- data/lib/journeta/presence_listener.rb +22 -18
- data/lib/journeta/version.rb +1 -1
- data/lib/journeta.rb +1 -0
- metadata +2 -2
| 
            File without changes
         | 
| @@ -160,6 +160,7 @@ module Journeta | |
| 160 160 | 
             
                # the existing record will be updated and given instance #PeerConnection#stop'd.
         | 
| 161 161 | 
             
                # This prevents pending outbound data from being accidentally dropped.
         | 
| 162 162 | 
             
                def register_peer(peer)
         | 
| 163 | 
            +
                  putsd "Registering peer: #{peer.uuid}"
         | 
| 163 164 | 
             
                  peer_registry.register(peer)
         | 
| 164 165 | 
             
                end
         | 
| 165 166 |  | 
| @@ -172,4 +173,4 @@ module Journeta | |
| 172 173 |  | 
| 173 174 | 
             
              end
         | 
| 174 175 |  | 
| 175 | 
            -
            end
         | 
| 176 | 
            +
            end
         | 
| @@ -80,9 +80,9 @@ module Journeta | |
| 80 80 | 
             
                    #
         | 
| 81 81 | 
             
                    # Sorry that this is deceptively complicated. It's a design gotcha! :)
         | 
| 82 82 | 
             
                    putsd "Peer #{uuid} has gone away. Deregistering in the background."
         | 
| 83 | 
            -
                    Thread.new  | 
| 84 | 
            -
                      @engine.unregister_peer( | 
| 85 | 
            -
                     | 
| 83 | 
            +
                    Thread.new(self) do |me|
         | 
| 84 | 
            +
                      @engine.unregister_peer(me)
         | 
| 85 | 
            +
                    end
         | 
| 86 86 | 
             
                  end
         | 
| 87 87 | 
             
                end
         | 
| 88 88 |  | 
| @@ -34,29 +34,33 @@ module Journeta | |
| 34 34 | 
             
                    loop do
         | 
| 35 35 | 
             
                      # Why 1024? umm.. because it's Thursday!
         | 
| 36 36 | 
             
                      data, meta = socket.recvfrom 1024
         | 
| 37 | 
            -
                      Thread.new(data)  | 
| 37 | 
            +
                      Thread.new(data, meta) do |data, meta|
         | 
| 38 38 | 
             
                        event = YAML.load(data)
         | 
| 39 39 | 
             
                        if event.uuid != @engine.uuid
         | 
| 40 | 
            -
                           | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 40 | 
            +
                          begin
         | 
| 41 | 
            +
                            m = YAML::load(data)
         | 
| 42 | 
            +
                            peer = PeerConnection.new @engine
         | 
| 43 | 
            +
                            # Why is this always [2]? Not sure.. they should have returned a hash instead.
         | 
| 44 | 
            +
                            peer.ip_address = meta[2]
         | 
| 45 | 
            +
                            peer.peer_port = m.peer_port
         | 
| 46 | 
            +
                            peer.uuid = m.uuid
         | 
| 47 | 
            +
                            peer.version = m.version
         | 
| 48 | 
            +
                            peer.groups = m.groups
         | 
| 49 | 
            +
                            peer.created_at = peer.updated_at = Time.now
         | 
| 49 50 |  | 
| 50 | 
            -
             | 
| 51 | 
            -
             | 
| 52 | 
            -
             | 
| 53 | 
            -
             | 
| 54 | 
            -
             | 
| 51 | 
            +
                            # We should not start the #PeerConnection before registering because
         | 
| 52 | 
            +
                            # the peer might already be registered. In this case, we'd have wasted a thread,
         | 
| 53 | 
            +
                            # so we'll let the registry handle startup (if it happens at all.)
         | 
| 54 | 
            +
                            #
         | 
| 55 | 
            +
                            # peer.start
         | 
| 55 56 |  | 
| 56 | 
            -
             | 
| 57 | 
            -
             | 
| 57 | 
            +
                            # TODO validate peer entry is sane before registering it
         | 
| 58 | 
            +
                            @engine.register_peer peer
         | 
| 59 | 
            +
                          rescue => e
         | 
| 60 | 
            +
                            putsd "Error during peer registration: #{e.message}"
         | 
| 61 | 
            +
                          end
         | 
| 58 62 | 
             
                        end
         | 
| 59 | 
            -
                       | 
| 63 | 
            +
                      end
         | 
| 60 64 | 
             
                      # putsd "Event received!"
         | 
| 61 65 | 
             
                    end
         | 
| 62 66 | 
             
                  ensure
         | 
    
        data/lib/journeta/version.rb
    CHANGED
    
    
    
        data/lib/journeta.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: journeta
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.3
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors: 
         | 
| 7 7 | 
             
            - Preston Lee
         | 
| @@ -9,7 +9,7 @@ autorequire: | |
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 11 |  | 
| 12 | 
            -
            date: 2008- | 
| 12 | 
            +
            date: 2008-10-17 00:00:00 -07:00
         | 
| 13 13 | 
             
            default_executable: 
         | 
| 14 14 | 
             
            dependencies: 
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency 
         |