Sha256: d696fae3dbf9738c2cf391e0ee85d55ef37c6df3bd2b2092bec49c60dc3f2b7e

Contents?: true

Size: 800 Bytes

Versions: 3

Compression:

Stored size: 800 Bytes

Contents

module Veritas

  # A mixin to allow inheritable aliases for methods to be added
  module Aliasable

    # Create aliases for each specified method
    #
    # @example
    #   inheritable_alias(:- => :difference)
    #
    # @param [Hash{Symbol => Symbol}] aliases
    #   the new and old methods to alias
    #
    # @return [self]
    #
    # @api public
    def inheritable_alias(aliases)
      aliases.each do |new_method, original_method|
        class_eval <<-RUBY, __FILE__, __LINE__ + 1
          def #{new_method}(*args, &block)          # def |(*args, &block)
            self.#{original_method}(*args, &block)  #   self.union(*args, &block)
          end                                       # end
        RUBY
      end
      self
    end

  end # module Aliasable
end # module Veritas

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
veritas-0.0.3 lib/veritas/support/aliasable.rb
veritas-0.0.2 lib/veritas/support/aliasable.rb
veritas-0.0.1 lib/veritas/support/aliasable.rb