Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Creates, manages and saves aliases for class methods, instance methods, constants, delegated methods and more.

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 test
Octocat-spinner-32 .gemspec
Octocat-spinner-32 .travis.yml
Octocat-spinner-32 CHANGELOG.rdoc
Octocat-spinner-32 LICENSE.txt
Octocat-spinner-32 README.rdoc
Octocat-spinner-32 Rakefile
README.rdoc

Description

Creates aliases for class methods, instance methods, constants, delegated methods and more. Aliases can be easily searched or saved as YAML config files to load later. Custom alias types are easy to create with the DSL Alias provides. Although Alias was created with the irb user in mind, any Ruby console program can hook into Alias for creating configurable aliases.

Setup

Install the gem with:

sudo gem install alias

To setup, simply drop these two lines in your .irbrc:

require 'alias' 
Alias.create

This will assume a file in config/alias.yml or ~/.alias.yml. If you want it somewhere else, pass a :file option to create():

Alias.create :file=>"/path/to/my/clandestine_aliases.yml"

If you'd like to define your aliases without a config file, pass Alias.create() an :aliases option:

Alias.create :verbose=>true, :aliases=>{
  :constant=>{'Array' = 'A'},
  :instance_method=>{'String'=>{'downcase'=>'dc' }, 'Array'=>{'select'=>'s'}}
}

Usage

An example within Rails' script/console:

bash> script/console
>> require 'alias'
=> true

# Import alias methods
>> extend Alias::Console
=> main

# First let's see what ruby code Alias generates to create an alias.
>> create_aliases :class_method, {"ActiveRecord::Base"=>{'find'=>'[]'}}, :pretend=>true

class ::ActiveRecord::Base; class<< self; alias_method :[], :find; end; end
=> true

# Create the above class method alias
>> create_aliases :class_method, "ActiveRecord::Base"=>{'find'=>'[]'}
=> true

# Create the above constant alias
>> create_aliases :constant, "ActiveRecord::Base"=>"AB"
=> true
# Verify that it worked
>> AB
=> ActiveRecord::Base

# If we try to create the constant alias again, Alias prevents us and warns us
>> create_aliases :constant, "ActiveRecord::Base"=>"AB"
Constant 'AB' not created since it already exists
=> false
# We can force Alias to override a method, class or constant that already exists
>> create_aliases :constant, {"ActiveRecord::Base"=>"AB"}, :force=>true
=> true

# Create the above instance method alias
>> create_aliases :instance_method, "ActiveRecord::Base"=>{"update_attribute"=>'ua'}
=> true

# By default aliases are saved to config/alias.yml in rails or ~/.alias.yml if not.
>> save_aliases
Saved created aliases to config/alias.yml.
=> true

Configuration

For an example config file see test/aliases.yml. For an explanation of the config file format see Alias.config_file.

Creating Custom Alias Types

See Alias::Creator.

Links

Todo

  • Fix tests

  • Allow loading of select aliases in a file.

  • Provide a way to autogenerate aliases with a given proc.

Something went wrong with that request. Please try again.