Class: Marty::Diagnostic::Controller

Inherits:
ActionController::Base
  • Object
show all
Defined in:
app/controllers/marty/diagnostic/controller.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.add_report(name, diagnostics) ⇒ Object



35
36
37
# File 'app/controllers/marty/diagnostic/controller.rb', line 35

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

.inherited(klass) ⇒ Object



2
3
4
5
6
# File 'app/controllers/marty/diagnostic/controller.rb', line 2

def self.inherited(klass)
  namespace = klass.name.deconstantize.split('::')[0] rescue ''
  Reporter.namespaces.unshift(namespace)
  super
end

Instance Method Details

#display_parametersObject



25
26
27
28
29
30
31
32
33
# File 'app/controllers/marty/diagnostic/controller.rb', line 25

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

#opObject



8
9
10
11
12
13
14
15
16
17
# File 'app/controllers/marty/diagnostic/controller.rb', line 8

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

#process_result_for_apiObject



19
20
21
22
23
# File 'app/controllers/marty/diagnostic/controller.rb', line 19

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