Sha256: d528ea4e22580a9b973197d28392f56600c98914db843ffb068328a9b6267d89

Contents?: true

Size: 414 Bytes

Versions: 2

Compression:

Stored size: 414 Bytes

Contents

module RenamedDelegate
  include Forwardable

  def renamed_delegate_to(getter, methods, renamings)
    methods.each do |method|
      method_name = method.to_s
      renamed_method_name = renamings.inject(method_name) do |name, (word, sub)|
        name.gsub word, sub
      end
      if renamed_method_name != method_name
        def_delegator getter, method_name, renamed_method_name
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
shoes-dsl-4.0.0.pre2 lib/shoes/renamed_delegate.rb
shoes-4.0.0.pre1 lib/shoes/renamed_delegate.rb