Sha256: 037b9e558a37e964bd2877978360b0931de18ca36f7191f2223db44656c99499

Contents?: true

Size: 697 Bytes

Versions: 14

Compression:

Stored size: 697 Bytes

Contents

module Chanko
  module Helper
    class << self
      def define(unit_name, &block)
        prefix = UnitProxy.generate_prefix(unit_name)
        define_methods_with_prefix(prefix, &block)
      end

      def define_methods_with_prefix(prefix, &block)
        define_methods(&block).each do |name|
          change_method_name(name, "#{prefix}#{name}")
        end
      end

      def define_methods(&block)
        before = instance_methods(false)
        self.class_eval(&block)
        instance_methods(false) - before
      end

      def change_method_name(from, to)
        class_eval do
          alias_method to, from
          remove_method from
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

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