Class: Spawner

Inherits:
Object
  • Object
show all
Defined in:
lib/spawno/spawner.rb

Instance Method Summary collapse

Instance Method Details

#env_vars(env) ⇒ Object



9
10
11
# File 'lib/spawno/spawner.rb', line 9

def env_vars(env)
  {'SPAWNO' => 'true'}.merge(rails? ? env.merge('RAILS_ENV' => Rails.env) : env)
end

#matching_environment?(environment) ⇒ Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/spawno/spawner.rb', line 13

def matching_environment?(environment)
  rails? ? Rails.env == environment : true
end

#rails?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/spawno/spawner.rb', line 17

def rails?
  defined?(Rails)
end

#spawn(process_conf) ⇒ Object



2
3
4
5
6
7
# File 'lib/spawno/spawner.rb', line 2

def spawn(process_conf)
  command, env, options, environment = spawn_arguments(process_conf)
  if ENV['SPAWNO'].nil? and matching_environment?(environment)
    Kernel.spawn(env, command, options)
  end
end

#spawn_arguments(process_conf) ⇒ Object



21
22
23
24
25
26
# File 'lib/spawno/spawner.rb', line 21

def spawn_arguments(process_conf)
  command, env, options, environment = process_conf.values_at('command', 'env', 'options', 'environment')
  env     ||= {}
  options ||= {}
  [command, env_vars(env), options, environment]
end