boom_nats 0.1.3 → 0.1.5
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/CHANGELOG.md +4 -0
- data/Gemfile.lock +1 -1
- data/lib/boom_nats/application.rb +30 -0
- data/lib/boom_nats/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: edc24ec388439c93feccc06d27ec06d159563d4f384cf7059c733c967bf131da
         | 
| 4 | 
            +
              data.tar.gz: b91fff5bff4336236bbd93c6f4af52c0a291fab22baadb97f090e4c204351ce5
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: b08cc8d393e0fcc86b2915bbab71ce21e54b78ea4823072ae12c1c1f2780c6409499e4ab4774347198f4bc360663ce88484041c3dc6286fbe039d321e9f8d06b
         | 
| 7 | 
            +
              data.tar.gz: 216a954d729a1e9e7cd7aab5a68d4d27d7d258b2807d5b3240158ef7743aeb5943ec8bb07dbc3f03bb26d54e455bfc7237285520348e48405292b2654a11ad2a
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/Gemfile.lock
    CHANGED
    
    
| @@ -9,6 +9,11 @@ module BoomNats | |
| 9 9 | 
             
                def initialize
         | 
| 10 10 | 
             
                  @route_topics = []
         | 
| 11 11 | 
             
                  @subscriptions = []
         | 
| 12 | 
            +
                  @callbacks = {
         | 
| 13 | 
            +
                    before: [],
         | 
| 14 | 
            +
                    after: []
         | 
| 15 | 
            +
                  }
         | 
| 16 | 
            +
             | 
| 12 17 | 
             
                  @mutex = Mutex.new
         | 
| 13 18 | 
             
                end
         | 
| 14 19 |  | 
| @@ -32,18 +37,43 @@ module BoomNats | |
| 32 37 | 
             
                  NATS
         | 
| 33 38 | 
             
                end
         | 
| 34 39 |  | 
| 40 | 
            +
                def on_before(&block)
         | 
| 41 | 
            +
                  @callbacks[:before] << block
         | 
| 42 | 
            +
                end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                def on_after(&block)
         | 
| 45 | 
            +
                  @callbacks[:after] << block
         | 
| 46 | 
            +
                end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                def error_as_json(msg, topic, error)
         | 
| 49 | 
            +
                  {
         | 
| 50 | 
            +
                    message: msg,
         | 
| 51 | 
            +
                    topic: topic,
         | 
| 52 | 
            +
                    error: "#{error.class}: #{error.message}",
         | 
| 53 | 
            +
                    backtrace: error.backtrace,
         | 
| 54 | 
            +
                    status: "error"
         | 
| 55 | 
            +
                  }.to_json
         | 
| 56 | 
            +
                end
         | 
| 57 | 
            +
             | 
| 35 58 | 
             
                def start
         | 
| 36 59 | 
             
                  Thread.new do
         | 
| 60 | 
            +
                    @callbacks[:before].each { |callback| callback.call(self) }
         | 
| 61 | 
            +
             | 
| 37 62 | 
             
                    nats_connect do |nats|
         | 
| 38 63 | 
             
                      @route_topics.each do |rt|
         | 
| 39 64 | 
             
                        @subscriptions << nats.subscribe(rt.topic, rt.options) do |msg, reply, _sub|
         | 
| 40 65 | 
             
                          rt.executor.new(msg, reply, nats, rt.serializer, rt.parser)
         | 
| 66 | 
            +
                        rescue StandardError => e
         | 
| 67 | 
            +
                          BoomNats.logger.error "BoomNats::error: #{e.message}"
         | 
| 68 | 
            +
                          nats.publish(reply, error_as_json(msg, rt.topic, e)) unless reply.nil?
         | 
| 41 69 | 
             
                        end
         | 
| 42 70 | 
             
                      end
         | 
| 43 71 |  | 
| 44 72 | 
             
                      BoomNats.logger.debug "BoomNats::started"
         | 
| 45 73 |  | 
| 46 74 | 
             
                      prepare_trap unless defined?(Rails::Railtie)
         | 
| 75 | 
            +
             | 
| 76 | 
            +
                      @callbacks[:after].each { |callback| callback.call(self) }
         | 
| 47 77 | 
             
                    end
         | 
| 48 78 | 
             
                  end
         | 
| 49 79 |  | 
    
        data/lib/boom_nats/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: boom_nats
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.5
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Welington Sampaio
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2024-04-22 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activesupport
         |