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/input.rb,
lib/bond/agent.rb,
lib/bond/search.rb,
lib/bond/rawline.rb,
lib/bond/mission.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
- VERSION =
'0.2.2'
Instance Method Summary (collapse)
-
- (Object) agent
An Agent who saves all Bond.complete missions and executes the correct one when a completion is called.
-
- (Object) complete(options = {}, &block)
Creates a completion rule (Mission).
-
- (Hash) config
Global config.
-
- (Object) list_methods
Lists all methods that have argument completion.
-
- (Object) load_gems(*gems)
Loads completions for gems that ship with them under lib/bond/completions/, relative to the gem’s base directory.
-
- (Object) load_yard_gems(*gems)
Generates and loads completions for yardoc documented gems.
-
- (Object) recomplete(options = {}, &block)
Redefines an existing completion mission to have a different action.
-
- (Object) spy(*args)
Reports what completion mission matches for a given input.
-
- (Object) start(options = {}, &block)
Starts Bond with a default set of completions that replace and improve irb’s completion.
Instance Method Details
- (Object) agent
An Agent who saves all Bond.complete missions and executes the correct one when a completion is called.
117 |
# File 'lib/bond.rb', line 117 def agent; M.agent end |
- (Object) complete(options = {}, &block)
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 |
- (Hash) config
Global config
76 |
# File 'lib/bond.rb', line 76 def config; M.config end |
- (Object) list_methods
Lists all methods that have argument completion.
120 |
# File 'lib/bond.rb', line 120 def list_methods; MethodMission.all_methods end |
- (Object) load_gems(*gems)
Loads completions for gems that ship with them under lib/bond/completions/, relative to the gem’s base directory.
108 |
# File 'lib/bond.rb', line 108 def load_gems(*gems) M.load_gems(*gems) end |
- (Object) load_yard_gems(*gems)
Generates and loads completions for yardoc documented gems.
114 |
# File 'lib/bond.rb', line 114 def load_yard_gems(*gems) Yard.load_yard_gems(*gems) end |
- (Object) recomplete(options = {}, &block)
Redefines an existing completion mission to have a different action. The condition can only be varied if :name is used to identify and replace a mission. Takes same options as #complete.
Example:
Bond.recomplete(:on=>/man/, :name=>:count) { %w{4 5 6}}
66 |
# File 'lib/bond.rb', line 66 def recomplete(={}, &block) M.recomplete(, &block) end |
- (Object) spy(*args)
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 |
- (Object) start(options = {}, &block)
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
105 |
# File 'lib/bond.rb', line 105 def start(={}, &block) M.start(, &block) end |