class Radar::App::AnalyzerController

Public Class Methods

<<(analyzer_class) click to toggle source
# File lib/radar/app/analyzer_controller.rb, line 17
def self.<<(analyzer_class)
  registry[analyzer_class.new.config.id] = analyzer_class.name
end
new() click to toggle source
# File lib/radar/app/analyzer_controller.rb, line 9
def initialize
  @sessions = {}
end

Protected Class Methods

registry() click to toggle source
# File lib/radar/app/analyzer_controller.rb, line 46
def self.registry
  (@@registry ||= {})
end

Public Instance Methods

analyzers() click to toggle source
# File lib/radar/app/analyzer_controller.rb, line 13
def analyzers
  registry.values.map { |analyzer_class| Object.const_get(analyzer_class).new.config }
end
create_session(session_id, analyzer_id) click to toggle source
# File lib/radar/app/analyzer_controller.rb, line 21
def create_session(session_id, analyzer_id)
  analyzer = create_fresh_analyzer(analyzer_id)
  @sessions[session_id] = Session.new(analyzer)
  analyzer.config
end
example_result(session_id) click to toggle source
# File lib/radar/app/analyzer_controller.rb, line 27
def example_result(session_id)
  synchronized(session_id) do
    @sessions[session_id].analyzer.example_result
  end
end

Protected Instance Methods

create_fresh_analyzer(analyzer_id) click to toggle source
# File lib/radar/app/analyzer_controller.rb, line 35
def create_fresh_analyzer(analyzer_id)
  if Radar::App.env.development?
    $class_reloader.execute_if_updated
  end
  Object.const_get(registry[analyzer_id]).new
end
registry() click to toggle source
# File lib/radar/app/analyzer_controller.rb, line 42
def registry
  self.class.registry
end