Sha256: 7fc24396e598d352fe4936cbc7cb6738da30158b6280794973293200629224a7

Contents?: true

Size: 650 Bytes

Versions: 12

Compression:

Stored size: 650 Bytes

Contents

# frozen_string_literal: true

module Carioca
  module Injector
    def inject(service:)
      create_methods(service) { return Carioca::Registry.get.get_service name: service }
    end

    def register(service:, definition:)
      Carioca::Registry.get.add service: service, definition: definition
    end

    def services
      Carioca::Registry.get.services
    end

    def active_services
      Carioca::Registry.get.active_services
    end

    def create_methods(name, &block)
      define_method name, &block
      self.class.send(:define_method, name, &block)
    end

    def self.extended(base)
      base.include self
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
carioca-2.1.3 lib/carioca/mixin.rb
carioca-2.1.2 lib/carioca/mixin.rb
carioca-2.1.1 lib/carioca/mixin.rb
carioca-2.1.0 lib/carioca/mixin.rb
carioca-2.0.12 lib/carioca/mixin.rb
carioca-2.0.11 lib/carioca/mixin.rb
carioca-2.0.10 lib/carioca/mixin.rb
carioca-2.0.9 lib/carioca/mixin.rb
carioca-2.0.8 lib/carioca/mixin.rb
carioca-2.0.7 lib/carioca/mixin.rb
carioca-2.0.6 lib/carioca/mixin.rb
carioca-2.0.5 lib/carioca/mixin.rb