Module: Bullring

Defined in:
lib/bullring/util/server_proxy.rb,
lib/bullring.rb,
lib/bullring/worker.rb,
lib/bullring/version.rb,
lib/bullring/util/network.rb,
lib/bullring/workers/common.rb,
lib/bullring/util/exceptions.rb,
lib/bullring/util/dummy_logger.rb,
lib/bullring/util/drubied_process.rb,
lib/bullring/util/server_registry.rb,
lib/bullring/workers/racer_worker.rb,
lib/bullring/workers/rhino_server.rb,
lib/bullring/workers/rhino_server_worker.rb

Overview

Acts like a druby connection to a separate process (which this class will run if it isn’t already running or if it dies). The separate process must start a druby server and expose an front object.

Defined Under Namespace

Classes: AbstractMethodCalled, Configuration, DrubiedProcess, DummyLogger, Helper, IllegalArgument, IllegalState, JSError, Network, NotYetImplemented, PidDirUnavailable, RacerWorker, RhinoServer, RhinoServerWorker, SecurityTransgression, ServerOffline, ServerProxy, ServerRegistry, ServerRegistryClosed, ServerRegistryOffline, ServerWrapper, TuplespaceWrapper, Worker

Constant Summary collapse

VERSION =
"0.8.3"

Class Method Summary collapse

Class Method Details

.add_library(name, script) ⇒ Object

Order is important (and relative to calls to add_library_script)



20
21
22
23
24
# File 'lib/bullring.rb', line 20

def add_library(name, script)
  return if configuration.disabled
  script = Uglifier.compile(script, :copyright => false) if configuration.minify_libraries
  worker.add_library(name, script)
end

.alive?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/bullring.rb', line 36

def alive?
  configuration.disabled ? true : worker.alive?
end

.check(script, options = {}) ⇒ Object



26
27
28
29
# File 'lib/bullring.rb', line 26

def check(script, options = {})
  return [] if configuration.disabled
  worker.check(script, options)
end

.configurationObject



70
71
72
# File 'lib/bullring.rb', line 70

def configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Configuration machinery.

To configure Bullring, put the following code in your applications initialization logic (eg. in the config/initializers in a Rails app)

Bullring.configure do |config|
  config.execution_timeout = 500
  ...
end

Yields:



66
67
68
# File 'lib/bullring.rb', line 66

def configure
  yield configuration
end

.discardObject

Really only useful in development



41
42
43
# File 'lib/bullring.rb', line 41

def discard
  worker.discard if !configuration.disabled
end

.loggerObject



15
16
17
# File 'lib/bullring.rb', line 15

def logger
  @logger ||= DummyLogger.new
end

.logger=(logger) ⇒ Object



11
12
13
# File 'lib/bullring.rb', line 11

def logger=(logger)
  @logger = logger
end

.refreshObject



45
46
47
# File 'lib/bullring.rb', line 45

def refresh
  worker.refresh if !configuration.disabled
end

.rootObject



49
50
51
# File 'lib/bullring.rb', line 49

def root
  @root ||= File.expand_path("..", __FILE__)
end

.run(script, options = {}) ⇒ Object



31
32
33
34
# File 'lib/bullring.rb', line 31

def run(script, options = {})
  return {} if configuration.disabled
  worker.run(script, options)
end