Module: Bond
- Extended by:
- Bond
- Included in:
- Bond
- Defined in:
- lib/bond.rb,
lib/bond/m.rb,
lib/bond/rc.rb,
lib/bond/yard.rb,
lib/bond/agent.rb,
lib/bond/input.rb,
lib/bond/search.rb,
lib/bond/mission.rb,
lib/bond/rawline.rb,
lib/bond/version.rb,
lib/bond/readline.rb,
lib/bond/missions/method_mission.rb,
lib/bond/missions/operator_method_mission.rb
Defined Under Namespace
Modules: M, Rawline, Rc, Readline, Search, Yard Classes: Agent, AnywhereMission, DefaultMission, FailedMissionError, Input, InvalidMissionError, MethodMission, Mission, ObjectMission, OperatorMethodMission
Constant Summary collapse
- VERSION =
'0.3.1'
Instance Method Summary collapse
-
#agent ⇒ Object
An Agent who saves all Bond.complete missions and executes the correct one when a completion is called.
-
#complete(options = {}, &block) ⇒ Object
Creates a completion rule (Mission).
-
#config ⇒ Hash
Global config.
-
#list_methods ⇒ Object
Lists all methods that have argument completion.
-
#load_gems(*gems) ⇒ Object
Loads completions for gems that ship with them under lib/bond/completions/, relative to the gem’s base directory.
-
#load_yard_gems(*gems) ⇒ Object
Generates and loads completions for yardoc documented gems.
-
#recomplete(options = {}, &block) ⇒ Object
Redefines an existing completion mission to have a different action.
-
#spy(*args) ⇒ Object
Reports what completion mission matches for a given input.
-
#start(options = {}, &block) ⇒ Object
Starts Bond with a default set of completions that replace and improve irb’s completion.
Instance Method Details
#agent ⇒ Object
An Agent who saves all Bond.complete missions and executes the correct one when a completion is called.
118 |
# File 'lib/bond.rb', line 118 def agent; M.agent; end |
#complete(options = {}, &block) ⇒ Object
Creates a completion rule (Mission). A valid Mission consists of a condition and an action. A condition is specified with one of the following options: :on, :object, :anywhere or :method(s). Each of these options creates a different Mission class. An action is either the method’s block or :action. An action takes what the user has typed (Input) and returns an array of possible completions. Bond searches these completions and returns matching completions. This searching behavior can be configured or turned off per mission with :search. If turned off, the action must also handle searching.
Examples:
Bond.complete(:method=>'shoot') {|input| %w{to kill} }
Bond.complete(:on=>/^((([a-z][^:.\(]*)+):)+/, :search=>false) {|input| Object.constants.grep(/#{input.matched[1]}/) }
Bond.complete(:object=>ActiveRecord::Base, :search=>:underscore, :place=>:last)
Bond.complete(:method=>'you', :search=>proc {|input, list| list.grep(/#{input}/i)} ) {|input| %w{Only Live Twice} }
Bond.complete(:method=>'system', :action=>:shell_commands)
60 |
# File 'lib/bond.rb', line 60 def complete(={}, &block); M.complete(, &block); end |
#list_methods ⇒ Object
Lists all methods that have argument completion.
121 |
# File 'lib/bond.rb', line 121 def list_methods; MethodMission.all_methods; end |
#load_gems(*gems) ⇒ Object
Loads completions for gems that ship with them under lib/bond/completions/, relative to the gem’s base directory.
109 |
# File 'lib/bond.rb', line 109 def load_gems(*gems); M.load_gems(*gems); end |
#load_yard_gems(*gems) ⇒ Object
Generates and loads completions for yardoc documented gems.
115 |
# File 'lib/bond.rb', line 115 def load_yard_gems(*gems); Yard.load_yard_gems(*gems); end |
#recomplete(options = {}, &block) ⇒ Object
66 |
# File 'lib/bond.rb', line 66 def recomplete(={}, &block); M.recomplete(, &block); end |
#spy(*args) ⇒ Object
Reports what completion mission matches for a given input. Helpful for debugging missions.
Example:
>> Bond.spy "shoot oct"
Matches completion mission for method matching "shoot".
Possible completions: ["octopussy"]
73 |
# File 'lib/bond.rb', line 73 def spy(*args); M.spy(*args); end |
#start(options = {}, &block) ⇒ Object
Starts Bond with a default set of completions that replace and improve irb’s completion. Loads completions in this order: lib/bond/completion.rb, lib/bond/completions/*.rb and the following optional completions: completions from :gems, completions from :yard_gems, ~/.bondrc, ~/.bond/completions/*.rb and from block. See Rc for the DSL to use in completion files and in the block.
Examples:
Bond.start :gems=>%w{hirb}
Bond.start(:default_search=>:ignore_case) do
complete(:method=>"Object#respond_to?") {|e| e.object.methods }
end
106 |
# File 'lib/bond.rb', line 106 def start(={}, &block); M.start(, &block); end |