Skip to content

Commit

Permalink
error array :method completions, fixed Kernel completions
Browse files Browse the repository at this point in the history
  • Loading branch information
cldwalker committed May 13, 2010
1 parent c647f52 commit 1da85a5
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 4 deletions.
2 changes: 1 addition & 1 deletion lib/bond/completions/kernel.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
complete(:methods=>%w{Kernel#raise Kernel#fail}) { objects_of(Class).select {|e| e < StandardError } }
complete(:method=>%w{Kernel#system Kernel#exec}) {|e|
complete(:methods=>%w{Kernel#system Kernel#exec}) {|e|
ENV['PATH'].split(File::PATH_SEPARATOR).uniq.map {|e|
File.directory?(e) ? Dir.entries(e) : []
}.flatten.uniq - ['.', '..']
Expand Down
3 changes: 2 additions & 1 deletion lib/bond/missions/method_mission.rb
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,9 @@ def create(options)
end
end

raise InvalidMissionError, "array :method" if options[:method].is_a?(Array)
meths = options[:methods] || Array(options[:method])
raise InvalidMissionError, ":method(s)" unless meths.all? {|e| e.is_a?(String) }
raise InvalidMissionError, "non-string :method(s)" unless meths.all? {|e| e.is_a?(String) }
if options[:class].is_a?(String)
options[:class] << '#' unless options[:class][/[#.]$/]
meths.map! {|e| options[:class] + e }
Expand Down
8 changes: 6 additions & 2 deletions test/agent_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -121,11 +121,15 @@ def complete_prints_error(msg, *args, &block)
end

it "with invalid :method prints error" do
complete_prints_error(/Invalid :method\(s\)/, :method=>true) {}
complete_prints_error(/Invalid.*:method\(s\)/, :method=>true) {}
end

it "with invalid array :method prints error" do
complete_prints_error(/Invalid array :method/, :method=>%w{one two}) {}
end

it "with invalid :methods prints error" do
complete_prints_error(/Invalid :method\(s\)/, :methods=>[:blah]) {}
complete_prints_error(/Invalid.*:method\(s\)/, :methods=>[:blah]) {}
end

it "with invalid :action for method completion prints error" do
Expand Down

0 comments on commit 1da85a5

Please sign in to comment.