Sha256: bf25c233f27196028102d4afb27e2f7ab4f04b143016b8fe1b577ca501f1423a

Contents?: true

Size: 1.15 KB

Versions: 10

Compression:

Stored size: 1.15 KB

Contents

module Marty::Diagnostic; class Controller < ActionController::Base
  def self.inherited(klass)
    namespace = begin
                  klass.name.deconstantize.split('::')[0]
                rescue
                  ''
                end
    Reporter.namespaces.unshift(namespace)
    super
  end

  def op
    begin
      @result = Reporter.run(request)
    rescue NameError
      render file: 'public/400', formats: [:html], status: 400, layout: false
    else
      respond_to do |format|
        format.html {@result = display_parameters}
        format.json {render json: process_result_for_api}
      end
    end
  end

  def process_result_for_api
    @result.delete('data') unless request.params['data'] == 'true'
    @result.delete('errors') if @result['errors'] && @result['errors'].empty?
    @result
  end

  def display_parameters
    local  = params[:scope] == 'local'
    data   = local ? @result : @result['data']
    errors = local ? Reporter.errors(data) : @result['errors']
    {
      'display' => Reporter.displays(data),
      'errors' => errors
    }
  end

  def self.add_report name, diagnostics
    Reporter.reports[name] = diagnostics
  end
end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
marty-1.2.9 app/controllers/marty/diagnostic/controller.rb
marty-1.2.8 app/controllers/marty/diagnostic/controller.rb
marty-1.2.7 app/controllers/marty/diagnostic/controller.rb
marty-1.2.6 app/controllers/marty/diagnostic/controller.rb
marty-1.2.5 app/controllers/marty/diagnostic/controller.rb
marty-1.2.4 app/controllers/marty/diagnostic/controller.rb
marty-1.2.3 app/controllers/marty/diagnostic/controller.rb
marty-1.2.2 app/controllers/marty/diagnostic/controller.rb
marty-1.2.1 app/controllers/marty/diagnostic/controller.rb
marty-1.2.0 app/controllers/marty/diagnostic/controller.rb