Module: Monkey::Backend

Defined in:
lib/monkey/backend.rb,
lib/monkey/backend/extlib.rb,
lib/monkey/backend/facets.rb,
lib/monkey/backend/backports.rb,
lib/monkey/backend/common/tap.rb,
lib/monkey/backend/common/parent.rb,
lib/monkey/backend/active_support.rb,
lib/monkey/backend/common/metaclass.rb,
lib/monkey/backend/common/extract_options.rb

Defined Under Namespace

Modules: ActiveSupport, Backports, Common, Extlib, Facets

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.register(definition, expected_name, backend_name = nil) ⇒ Object



11
12
13
14
15
16
# File 'lib/monkey/backend.rb', line 11

def self.register(definition, expected_name, backend_name = nil)
  klass = definition.core_klass
  add_hook klass, expected_name
  add_hook klass, backend_name if backend_name
  backend_name ||= expected_name
end

Instance Method Details

#available_backendsObject



22
23
24
# File 'lib/monkey/backend.rb', line 22

def available_backends
  @available_backends ||= Set[:ActiveSupport, :Extlib, :Backports]
end

#backendObject



26
27
28
# File 'lib/monkey/backend.rb', line 26

def backend
  @backend || preferred_backend || available_backends.first
end

#preferred_backendObject



18
19
20
# File 'lib/monkey/backend.rb', line 18

def preferred_backend
  available_backends.detect { |b| eval "defined? ::#{b}" }
end