merb-action-args 1.0.8.1 → 1.0.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -32,9 +32,11 @@ class Merb::AbstractController
32
32
  arguments, defaults = self.class.action_argument_list[action]
33
33
 
34
34
  args = arguments.map do |arg, default|
35
- arg = arg
36
35
  p = params.key?(arg.to_sym)
37
- raise BadRequest unless p || (defaults && defaults.include?(arg))
36
+ unless p || (defaults && defaults.include?(arg))
37
+ missing = arguments.reject {|arg| params.key?(arg[0].to_sym || arg[1])}
38
+ raise BadRequest, "Your parameters (#{params.inspect}) were missing #{missing.join(", ")}"
39
+ end
38
40
  p ? params[arg.to_sym] : default
39
41
  end
40
42
  __send__(action, *args)
@@ -54,4 +54,14 @@ describe Merb::AbstractController do
54
54
  dispatch_to(ActionArgs, :with_default_array, :foo => "bar").body.should == "bar []"
55
55
  end
56
56
 
57
+ it "should print out the missing parameters if all are required" do
58
+ lambda { dispatch_to(ActionArgs, :multi) }.should raise_error(
59
+ Merb::ControllerExceptions::BadRequest, /were missing foo, bar/)
60
+ end
61
+
62
+ it "should only print out missing parameters" do
63
+ lambda { dispatch_to(ActionArgs, :multi, :foo => "Hello") }.should raise_error(
64
+ Merb::ControllerExceptions::BadRequest, /were missing bar/)
65
+ end
66
+
57
67
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: merb-action-args
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.8.1
4
+ version: 1.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yehuda Katz
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-01-19 00:00:00 -07:00
12
+ date: 2009-02-12 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -20,7 +20,7 @@ dependencies:
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 1.0.8.1
23
+ version: 1.0.9
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: ruby2ruby