Sha256: 61bda6f785a993ff08c8bf3b451ff7c0149d8eb061fefb9b21342798333f0145

Contents?: true

Size: 1.03 KB

Versions: 1

Compression:

Stored size: 1.03 KB

Contents

class Array
  def args
    flatten.map{|a| a.args}.flatten
  end
end

class Symbol
  def args
    [to_s]
  end
end

class String
  def args
    (self =~ /\w+\s+\w+/) ? self.split : self
  end
end
         
class Module
  def multi_alias name, options={}
    config_options = options[:options]
    options.each_pair do |original, aliases|
      next if original == :options 
      alias_methods name, original, [aliases].flatten, config_options
    end            
  end

  protected

  def alias_methods name, original, aliases, config_options
    aliases.each do |alias_name| 
      new_alias     = make_name(name, alias_name.to_s, config_options)
      original_name = make_name(name, original.to_s, config_options)
      alias_method new_alias, original_name if respond_to? original_name
    end
  end

  def make_name name, alias_name, config_options
    return alias_name.gsub(/X/, name.to_s) if alias_name =~ /X/
    case config_options
    when :after
      "#{alias_name}_#{name}"
    when :before
      "#{name}_#{alias_name}"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
generator-spec-0.5.0 lib/generator_spec/extensions/core_ext.rb