rorvswild 0.0.4 → 0.0.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/README.md +3 -17
- data/lib/rorvswild/version.rb +1 -1
- data/lib/rorvswild.rb +35 -17
- data/rorvswild.gemspec +2 -2
- metadata +5 -5
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 3a2d2980f4fa6ce04e070b58a75a97ab5e868a46
         | 
| 4 | 
            +
              data.tar.gz: e6b6663445113ff35fd1d2010f52e20596f9ede5
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: dbb08c554a475c57d39ad6538f2eaf7b9cc8b1fa61898a47447a019f89a0de57ff8f9f9e6e7f9d668ba15ff42bddf9b5bcd7ae2ba7dc5b00990308df9108b67b
         | 
| 7 | 
            +
              data.tar.gz: 952b87be7349323d78a57633974b77338ba8efc8fff7c06a94ea16508f25985bdf093f097d46bdb8c019ea373ad7c74e6d08e508a3b688dcf69031c9f413992c
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,24 +1,10 @@ | |
| 1 | 
            -
            #  | 
| 1 | 
            +
            # RorVsWild
         | 
| 2 2 |  | 
| 3 | 
            -
             | 
| 3 | 
            +
            Simple Ruby on Rails application monitoring for hardcore developers with no time to waste: http://www.rorvswild.com.
         | 
| 4 4 |  | 
| 5 5 | 
             
            ## Installation
         | 
| 6 6 |  | 
| 7 | 
            -
             | 
| 8 | 
            -
             | 
| 9 | 
            -
                gem 'rorvswild'
         | 
| 10 | 
            -
             | 
| 11 | 
            -
            And then execute:
         | 
| 12 | 
            -
             | 
| 13 | 
            -
                $ bundle
         | 
| 14 | 
            -
             | 
| 15 | 
            -
            Or install it yourself as:
         | 
| 16 | 
            -
             | 
| 17 | 
            -
                $ gem install rorvswild
         | 
| 18 | 
            -
             | 
| 19 | 
            -
            ## Usage
         | 
| 20 | 
            -
             | 
| 21 | 
            -
            TODO: Write usage instructions here
         | 
| 7 | 
            +
            Signup to http://www.rorvswild.com.
         | 
| 22 8 |  | 
| 23 9 | 
             
            ## Contributing
         | 
| 24 10 |  | 
    
        data/lib/rorvswild/version.rb
    CHANGED
    
    
    
        data/lib/rorvswild.rb
    CHANGED
    
    | @@ -27,17 +27,19 @@ module RorVsWild | |
| 27 27 | 
             
                end
         | 
| 28 28 |  | 
| 29 29 | 
             
                def setup_callbacks
         | 
| 30 | 
            -
                  ApplicationController.rescue_from(StandardError, &method(:after_exception))
         | 
| 31 30 | 
             
                  ActiveSupport::Notifications.subscribe("sql.active_record", &method(:after_sql_query))
         | 
| 32 31 | 
             
                  ActiveSupport::Notifications.subscribe("render_template.action_view", &method(:after_view_rendering))
         | 
| 33 32 | 
             
                  ActiveSupport::Notifications.subscribe("process_action.action_controller", &method(:after_http_request))
         | 
| 34 33 | 
             
                  ActiveSupport::Notifications.subscribe("start_processing.action_controller", &method(:before_http_request))
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                  this = self
         | 
| 36 | 
            +
                  ApplicationController.rescue_from(StandardError) { |exception| this.after_exception(exception, self) }
         | 
| 35 37 | 
             
                end
         | 
| 36 38 |  | 
| 37 39 | 
             
                def before_http_request(name, start, finish, id, payload)
         | 
| 38 40 | 
             
                  @request = {controller: payload[:controller], action: payload[:action], path: payload[:path]}
         | 
| 39 41 | 
             
                  @queries = []
         | 
| 40 | 
            -
                  @views =  | 
| 42 | 
            +
                  @views = {}
         | 
| 41 43 | 
             
                  @error = nil
         | 
| 42 44 | 
             
                end
         | 
| 43 45 |  | 
| @@ -45,7 +47,7 @@ module RorVsWild | |
| 45 47 | 
             
                  request[:db_runtime] = (payload[:db_runtime] || 0).round
         | 
| 46 48 | 
             
                  request[:view_runtime] = (payload[:view_runtime] || 0).round
         | 
| 47 49 | 
             
                  request[:other_runtime] = compute_duration(start, finish) - request[:db_runtime] - request[:view_runtime]
         | 
| 48 | 
            -
                   | 
| 50 | 
            +
                  error[:parameters] = filter_sensitive_data(payload[:params]) if error
         | 
| 49 51 | 
             
                  Thread.new { post_request }
         | 
| 50 52 | 
             
                rescue => exception
         | 
| 51 53 | 
             
                  log_error(exception)
         | 
| @@ -65,18 +67,29 @@ module RorVsWild | |
| 65 67 | 
             
                end
         | 
| 66 68 |  | 
| 67 69 | 
             
                def after_view_rendering(name, start, finish, id, payload)
         | 
| 68 | 
            -
                   | 
| 70 | 
            +
                  if views
         | 
| 71 | 
            +
                    if view = views[file = relative_path(payload[:identifier])]
         | 
| 72 | 
            +
                      view[:runtime] += compute_duration(start, finish)
         | 
| 73 | 
            +
                      view[:times] += 1
         | 
| 74 | 
            +
                    else
         | 
| 75 | 
            +
                      views[file] = {file: file, runtime: compute_duration(start, finish), times: 1}
         | 
| 76 | 
            +
                    end
         | 
| 77 | 
            +
                  end
         | 
| 69 78 | 
             
                end
         | 
| 70 79 |  | 
| 71 | 
            -
                def after_exception(exception)
         | 
| 72 | 
            -
                   | 
| 73 | 
            -
             | 
| 74 | 
            -
                     | 
| 75 | 
            -
             | 
| 76 | 
            -
             | 
| 77 | 
            -
             | 
| 78 | 
            -
             | 
| 79 | 
            -
             | 
| 80 | 
            +
                def after_exception(exception, controller)
         | 
| 81 | 
            +
                  if !exception.is_a?(ActionController::RoutingError)
         | 
| 82 | 
            +
                    file, line = exception.backtrace.first.split(":")
         | 
| 83 | 
            +
                    @error = {
         | 
| 84 | 
            +
                      line: line.to_i,
         | 
| 85 | 
            +
                      file: relative_path(file),
         | 
| 86 | 
            +
                      message: exception.message,
         | 
| 87 | 
            +
                      backtrace: exception.backtrace,
         | 
| 88 | 
            +
                      exception: exception.class.to_s,
         | 
| 89 | 
            +
                      session: controller.session.to_hash,
         | 
| 90 | 
            +
                      environment_variables: filter_sensitive_data(filter_environment_variables(controller.request.env))
         | 
| 91 | 
            +
                    }
         | 
| 92 | 
            +
                  end
         | 
| 80 93 | 
             
                  raise exception
         | 
| 81 94 | 
             
                end
         | 
| 82 95 |  | 
| @@ -95,7 +108,7 @@ module RorVsWild | |
| 95 108 | 
             
                end
         | 
| 96 109 |  | 
| 97 110 | 
             
                def slowest_views
         | 
| 98 | 
            -
                  views.sort { |h1, h2| h2[:runtime] <=> h1[:runtime] }[0, 25]
         | 
| 111 | 
            +
                  views.values.sort { |h1, h2| h2[:runtime] <=> h1[:runtime] }[0, 25]
         | 
| 99 112 | 
             
                end
         | 
| 100 113 |  | 
| 101 114 | 
             
                def slowest_queries
         | 
| @@ -130,7 +143,7 @@ module RorVsWild | |
| 130 143 | 
             
                end
         | 
| 131 144 |  | 
| 132 145 | 
             
                def compute_duration(start, finish)
         | 
| 133 | 
            -
                  ((finish - start) * 1000) | 
| 146 | 
            +
                  ((finish - start) * 1000)
         | 
| 134 147 | 
             
                end
         | 
| 135 148 |  | 
| 136 149 | 
             
                def relative_path(path)
         | 
| @@ -148,8 +161,13 @@ module RorVsWild | |
| 148 161 | 
             
                  end
         | 
| 149 162 | 
             
                end
         | 
| 150 163 |  | 
| 151 | 
            -
                def  | 
| 152 | 
            -
                  @ | 
| 164 | 
            +
                def filter_sensitive_data(hash)
         | 
| 165 | 
            +
                  @sensitive_filter ||= ActionDispatch::Http::ParameterFilter.new(Rails.application.config.filter_parameters)
         | 
| 166 | 
            +
                  @sensitive_filter.filter(hash)
         | 
| 167 | 
            +
                end
         | 
| 168 | 
            +
             | 
| 169 | 
            +
                def filter_environment_variables(hash)
         | 
| 170 | 
            +
                  hash.clone.keep_if { |key,value| key == key.upcase }
         | 
| 153 171 | 
             
                end
         | 
| 154 172 |  | 
| 155 173 | 
             
                def logger
         | 
    
        data/rorvswild.gemspec
    CHANGED
    
    | @@ -8,8 +8,8 @@ Gem::Specification.new do |spec| | |
| 8 8 | 
             
              spec.version       = Rorvswild::VERSION
         | 
| 9 9 | 
             
              spec.authors       = ["Alexis Bernard"]
         | 
| 10 10 | 
             
              spec.email         = ["alexis@bernard.io"]
         | 
| 11 | 
            -
              spec.summary       = " | 
| 12 | 
            -
              spec.description   = "RorVsWild  | 
| 11 | 
            +
              spec.summary       = "Simple Ruby on Rails application monitoring for hardcore developers with no time to waste."
         | 
| 12 | 
            +
              spec.description   = "RorVsWild points bottlenecks of your app and record errors."
         | 
| 13 13 | 
             
              spec.homepage      = "http://www.rorvswild.com"
         | 
| 14 14 | 
             
              spec.license       = "MIT"
         | 
| 15 15 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: rorvswild
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.5
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Alexis Bernard
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014- | 
| 11 | 
            +
            date: 2014-12-06 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -24,8 +24,7 @@ dependencies: | |
| 24 24 | 
             
                - - "~>"
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 26 | 
             
                    version: '1.6'
         | 
| 27 | 
            -
            description: RorVsWild  | 
| 28 | 
            -
              request, query and view.
         | 
| 27 | 
            +
            description: RorVsWild points bottlenecks of your app and record errors.
         | 
| 29 28 | 
             
            email:
         | 
| 30 29 | 
             
            - alexis@bernard.io
         | 
| 31 30 | 
             
            executables: []
         | 
| @@ -63,5 +62,6 @@ rubyforge_project: | |
| 63 62 | 
             
            rubygems_version: 2.2.2
         | 
| 64 63 | 
             
            signing_key: 
         | 
| 65 64 | 
             
            specification_version: 4
         | 
| 66 | 
            -
            summary:  | 
| 65 | 
            +
            summary: Simple Ruby on Rails application monitoring for hardcore developers with
         | 
| 66 | 
            +
              no time to waste.
         | 
| 67 67 | 
             
            test_files: []
         |