Sha256: 9c0011875cc805d29563a7f651fb2e588a930669089dea51aaba56e0043d1657

Contents?: true

Size: 787 Bytes

Versions: 14

Compression:

Stored size: 787 Bytes

Contents

module Chanko
  module UnitProxyProvider
    extend ActiveSupport::Concern

    included do
      extend UnitProxyProvider
    end

    # Define #unit method in this class when #unit is called in first time.
    # Change Config.proxy_method_name if you want to change this method name.
    def method_missing(method_name, *args, &block)
      if Array.wrap(Config.proxy_method_name).include?(method_name)
        UnitProxyProvider.class_eval do
          define_method(method_name) do |*_args|
            name = _args.first || Function.current_unit.try(:unit_name)
            if name && unit = Loader.load(name)
              UnitProxy.new(unit, self)
            end
          end
        end
        send(method_name, args.first)
      else
        super
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
chanko-2.3.0 lib/chanko/unit_proxy_provider.rb
chanko-2.2.1 lib/chanko/unit_proxy_provider.rb
chanko-2.2.0 lib/chanko/unit_proxy_provider.rb
chanko-2.1.1 lib/chanko/unit_proxy_provider.rb
chanko-2.1.0 lib/chanko/unit_proxy_provider.rb
chanko-2.0.8 lib/chanko/unit_proxy_provider.rb
chanko-2.0.7 lib/chanko/unit_proxy_provider.rb
chanko-2.0.6 lib/chanko/unit_proxy_provider.rb
chanko-2.0.5 lib/chanko/unit_proxy_provider.rb
chanko-2.0.4 lib/chanko/unit_proxy_provider.rb
chanko-2.0.3 lib/chanko/unit_proxy_provider.rb
chanko-2.0.2 lib/chanko/unit_proxy_provider.rb
chanko-2.0.1 lib/chanko/unit_proxy_provider.rb
chanko-2.0.0 lib/chanko/unit_proxy_provider.rb