sse-rails-engine 1.5.0 → 1.6.0
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.
- checksums.yaml +4 -4
- data/Rakefile +2 -0
- data/config/initializers/headers.rb +2 -0
- data/config/initializers/sse_rails_engine.rb +2 -0
- data/config/routes.rb +2 -0
- data/lib/sse-rails-engine.rb +2 -0
- data/lib/sse_rails_engine/connection.rb +2 -0
- data/lib/sse_rails_engine/engine.rb +2 -0
- data/lib/sse_rails_engine/manager.rb +3 -1
- data/lib/sse_rails_engine/version.rb +3 -1
- data/lib/tasks/sse_rails_engine_tasks.rake +1 -0
- data/test/lib/sse-rails-engine_test.rb +2 -0
- data/test/lib/sse_rails_engine/manager_test.rb +12 -6
- data/test/test_helper.rb +4 -2
- metadata +11 -25
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 7793cd5c317e56e1d7ba0099d48b4ffbaf401166
         | 
| 4 | 
            +
              data.tar.gz: bd04618ad62d2cf1645ad6dcb39832abde4ebb2f
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 3a88b9a69c47446be9b73ae4e1f8944a8a7ee487f92c899a5e2b3842beb7020407b3379e24f871b434f57bf51cc3fa1df51a03c478c7dfbb14395cfe55823eb5
         | 
| 7 | 
            +
              data.tar.gz: aaf940645b4345b30c6ca584c937301101d4bba6caa55256a29919bb048e2a5fed1a0c88740558a34643f7e7f5881c7ab8d2a6ff63af06971cf6a627f0226358
         | 
    
        data/Rakefile
    CHANGED
    
    
    
        data/config/routes.rb
    CHANGED
    
    
    
        data/lib/sse-rails-engine.rb
    CHANGED
    
    
| @@ -1,3 +1,5 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            module SseRailsEngine
         | 
| 2 4 | 
             
              # This class provides the ability to track SSE connections and broadcast events
         | 
| 3 5 | 
             
              # to all connected clients from anywhere in your Rails app.
         | 
| @@ -32,7 +34,7 @@ module SseRailsEngine | |
| 32 34 | 
             
                    # Perform full hijack of socket (http://old.blog.phusion.nl/2013/01/23/the-new-rack-socket-hijacking-api/)
         | 
| 33 35 | 
             
                    open_connection(socket, env)
         | 
| 34 36 | 
             
                  else
         | 
| 35 | 
            -
                     | 
| 37 | 
            +
                    raise RackHijackUnsupported, 'This Rack server does not support hijacking, ensure you are using >= v1.5 of Rack'
         | 
| 36 38 | 
             
                  end
         | 
| 37 39 | 
             
                end
         | 
| 38 40 |  | 
| @@ -1,9 +1,11 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            require_relative '../../test_helper'
         | 
| 2 4 |  | 
| 3 5 | 
             
            describe SseRailsEngine::Manager do
         | 
| 4 6 | 
             
              let(:manager) { SseRailsEngine.manager }
         | 
| 5 | 
            -
              let(:env1) {  | 
| 6 | 
            -
              let(:env2) {  | 
| 7 | 
            +
              let(:env1) { { 'rack.hijack?' => true, 'rack.hijack' => ->() {}, 'rack.hijack_io' => StringIO.new } }
         | 
| 8 | 
            +
              let(:env2) { { 'rack.hijack?' => true, 'rack.hijack' => ->() {}, 'rack.hijack_io' => StringIO.new } }
         | 
| 7 9 |  | 
| 8 10 | 
             
              before do
         | 
| 9 11 | 
             
                SseRailsEngine.instance_variable_set(:@manager, nil)
         | 
| @@ -75,7 +77,8 @@ describe SseRailsEngine::Manager do | |
| 75 77 | 
             
                manager.register(env1)
         | 
| 76 78 | 
             
                manager.send_event('foo')
         | 
| 77 79 | 
             
                env1['rack.hijack_io'].string.must_equal(
         | 
| 78 | 
            -
                  SseRailsEngine::Connection.sse_header + "event: foo\ndata: \n\n", 'env1 should have received event' | 
| 80 | 
            +
                  SseRailsEngine::Connection.sse_header + "event: foo\ndata: \n\n", 'env1 should have received event'
         | 
| 81 | 
            +
                )
         | 
| 79 82 | 
             
              end
         | 
| 80 83 |  | 
| 81 84 | 
             
              it 'does not send events to clients that didnt register for them' do
         | 
| @@ -83,7 +86,8 @@ describe SseRailsEngine::Manager do | |
| 83 86 | 
             
                manager.register(env1)
         | 
| 84 87 | 
             
                manager.send_event('test')
         | 
| 85 88 | 
             
                env1['rack.hijack_io'].string.must_equal(
         | 
| 86 | 
            -
                  SseRailsEngine::Connection.sse_header, 'env2 should not have received event' | 
| 89 | 
            +
                  SseRailsEngine::Connection.sse_header, 'env2 should not have received event'
         | 
| 90 | 
            +
                )
         | 
| 87 91 | 
             
              end
         | 
| 88 92 |  | 
| 89 93 | 
             
              it 'filters msgs depending on channels requested' do
         | 
| @@ -92,8 +96,10 @@ describe SseRailsEngine::Manager do | |
| 92 96 | 
             
                manager.register(env2)
         | 
| 93 97 | 
             
                manager.send_event('test')
         | 
| 94 98 | 
             
                env1['rack.hijack_io'].string.must_equal(
         | 
| 95 | 
            -
                  SseRailsEngine::Connection.sse_header + "event: test\ndata: \n\n", 'env1 should have received event' | 
| 99 | 
            +
                  SseRailsEngine::Connection.sse_header + "event: test\ndata: \n\n", 'env1 should have received event'
         | 
| 100 | 
            +
                )
         | 
| 96 101 | 
             
                env2['rack.hijack_io'].string.must_equal(
         | 
| 97 | 
            -
                  SseRailsEngine::Connection.sse_header, 'env2 should not have received event' | 
| 102 | 
            +
                  SseRailsEngine::Connection.sse_header, 'env2 should not have received event'
         | 
| 103 | 
            +
                )
         | 
| 98 104 | 
             
              end
         | 
| 99 105 | 
             
            end
         | 
    
        data/test/test_helper.rb
    CHANGED
    
    | @@ -1,14 +1,16 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            # Configure Rails Environment
         | 
| 2 4 | 
             
            ENV['RAILS_ENV'] = 'test'
         | 
| 3 5 |  | 
| 6 | 
            +
            require 'bundler/setup'
         | 
| 4 7 | 
             
            require 'codeclimate-test-reporter'
         | 
| 5 8 | 
             
            CodeClimate::TestReporter.start if ENV['CODECLIMATE_REPO_TOKEN']
         | 
| 6 9 |  | 
| 7 | 
            -
            require File.expand_path('../../test/dummy/config/environment.rb', | 
| 10 | 
            +
            require File.expand_path('../../test/dummy/config/environment.rb', __FILE__)
         | 
| 8 11 | 
             
            require 'rails/test_help'
         | 
| 9 12 | 
             
            require 'minitest/rails'
         | 
| 10 13 | 
             
            require 'mocha/mini_test'
         | 
| 11 | 
            -
            require 'hashie'
         | 
| 12 14 |  | 
| 13 15 | 
             
            # Filter out Minitest backtrace while allowing backtrace from other libraries
         | 
| 14 16 | 
             
            # to be shown.
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: sse-rails-engine
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.6.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Shane Hender
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2017-05-01 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rails
         | 
| @@ -16,34 +16,34 @@ dependencies: | |
| 16 16 | 
             
                requirements:
         | 
| 17 17 | 
             
                - - ">="
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version:  | 
| 19 | 
            +
                    version: 4.2.0
         | 
| 20 20 | 
             
                - - "<"
         | 
| 21 21 | 
             
                  - !ruby/object:Gem::Version
         | 
| 22 | 
            -
                    version: '5. | 
| 22 | 
            +
                    version: '5.2'
         | 
| 23 23 | 
             
              type: :runtime
         | 
| 24 24 | 
             
              prerelease: false
         | 
| 25 25 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 26 26 | 
             
                requirements:
         | 
| 27 27 | 
             
                - - ">="
         | 
| 28 28 | 
             
                  - !ruby/object:Gem::Version
         | 
| 29 | 
            -
                    version:  | 
| 29 | 
            +
                    version: 4.2.0
         | 
| 30 30 | 
             
                - - "<"
         | 
| 31 31 | 
             
                  - !ruby/object:Gem::Version
         | 
| 32 | 
            -
                    version: '5. | 
| 32 | 
            +
                    version: '5.2'
         | 
| 33 33 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 34 34 | 
             
              name: minitest-rails
         | 
| 35 35 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 36 36 | 
             
                requirements:
         | 
| 37 37 | 
             
                - - "~>"
         | 
| 38 38 | 
             
                  - !ruby/object:Gem::Version
         | 
| 39 | 
            -
                    version: ' | 
| 39 | 
            +
                    version: '3.0'
         | 
| 40 40 | 
             
              type: :development
         | 
| 41 41 | 
             
              prerelease: false
         | 
| 42 42 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 43 43 | 
             
                requirements:
         | 
| 44 44 | 
             
                - - "~>"
         | 
| 45 45 | 
             
                  - !ruby/object:Gem::Version
         | 
| 46 | 
            -
                    version: ' | 
| 46 | 
            +
                    version: '3.0'
         | 
| 47 47 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 48 48 | 
             
              name: mocha
         | 
| 49 49 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -72,34 +72,20 @@ dependencies: | |
| 72 72 | 
             
                - - ">="
         | 
| 73 73 | 
             
                  - !ruby/object:Gem::Version
         | 
| 74 74 | 
             
                    version: '0'
         | 
| 75 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 76 | 
            -
              name: hashie
         | 
| 77 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 78 | 
            -
                requirements:
         | 
| 79 | 
            -
                - - "~>"
         | 
| 80 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 81 | 
            -
                    version: '3.0'
         | 
| 82 | 
            -
              type: :development
         | 
| 83 | 
            -
              prerelease: false
         | 
| 84 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 85 | 
            -
                requirements:
         | 
| 86 | 
            -
                - - "~>"
         | 
| 87 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 88 | 
            -
                    version: '3.0'
         | 
| 89 75 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 90 76 | 
             
              name: codeclimate-test-reporter
         | 
| 91 77 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 92 78 | 
             
                requirements:
         | 
| 93 79 | 
             
                - - "~>"
         | 
| 94 80 | 
             
                  - !ruby/object:Gem::Version
         | 
| 95 | 
            -
                    version: '0'
         | 
| 81 | 
            +
                    version: '0.0'
         | 
| 96 82 | 
             
              type: :development
         | 
| 97 83 | 
             
              prerelease: false
         | 
| 98 84 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 99 85 | 
             
                requirements:
         | 
| 100 86 | 
             
                - - "~>"
         | 
| 101 87 | 
             
                  - !ruby/object:Gem::Version
         | 
| 102 | 
            -
                    version: '0'
         | 
| 88 | 
            +
                    version: '0.0'
         | 
| 103 89 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 104 90 | 
             
              name: rubocop
         | 
| 105 91 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -187,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 187 173 | 
             
                  version: '0'
         | 
| 188 174 | 
             
            requirements: []
         | 
| 189 175 | 
             
            rubyforge_project: 
         | 
| 190 | 
            -
            rubygems_version: 2. | 
| 176 | 
            +
            rubygems_version: 2.5.2
         | 
| 191 177 | 
             
            signing_key: 
         | 
| 192 178 | 
             
            specification_version: 4
         | 
| 193 179 | 
             
            summary: Provides SSE connection tracking and broadcasting of events from anywhere
         |