webrick-route_servlet 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8c0162b442d50867355a76985facd0a6557453f6
4
- data.tar.gz: 1e5b074844be091adeaf2bd27c9c5a5a4a9a57f3
3
+ metadata.gz: 1a1b0f4ab6a7f0d6c068df163c11cd01434e9511
4
+ data.tar.gz: dd6622a22e81c2a4d99c99519af1e080491e6e3d
5
5
  SHA512:
6
- metadata.gz: 9c634ba1c14372d967976930d112aec4ad1f57135eb8a2deb0f2fa524e67280d405d050064fb62fce55e7dc5b2a9e729023263073811f8015516b92ad6073e53
7
- data.tar.gz: 2831c6281d71e3f2175838e3d0ee6196c093442af1f5078b140d6ef12db0d38dfa03018cc8ed6c374ed69fe0fd5e61810d0f4fe33bf1cdd4a09ab45a08081710
6
+ metadata.gz: eb231b422ae59a9f130f6795d0868f0258c63bbcbed6660100f66acbd24e22e7a7264834db5b8e7637027a88a8a78fff60b64346bec8569723d735760170ea64
7
+ data.tar.gz: 7c225b2f52c7aac4d728091a87348c392d1066bf50f30d52b22a56db91badb9439183b084cfc2ceb3402b200d5ae3d28a4062ef993838ca9c1af36dd8a21dcf5
@@ -88,6 +88,10 @@ class NotFoundServlet < WEBrick::HTTPServlet::AbstractServlet
88
88
  res.body += "path: #{req.params[:path]}"
89
89
  res.body += "<p><a href='/'>index</a></p>"
90
90
  end
91
+
92
+ def do_POST(req, res)
93
+ do_GET(req, res)
94
+ end
91
95
  end
92
96
 
93
97
  server = WEBrick::HTTPServer.new(:Port=>3000)
@@ -79,23 +79,39 @@ module WEBrick
79
79
 
80
80
  def resources(re, servlet, *servlet_options, **request_options)
81
81
  re = re.to_s.sub(%r#/$#, "")
82
- get "#{re}(.:format)", servlet, *servlet_options, request_options.merge({:action => :index})
83
- post "#{re}(.:format)", servlet, *servlet_options, request_options.merge({:action => :create})
84
- get "#{re}/new(.:format)", servlet, *servlet_options, request_options.merge({:action => :new})
85
- get "#{re}/:id/edit(.:format)", servlet, *servlet_options, request_options.merge({:action => :edit})
86
- get "#{re}/:id(.:format)", servlet, *servlet_options, request_options.merge({:action => :show})
87
- put "#{re}/:id(.:format)", servlet, *servlet_options, request_options.merge({:action => :update})
88
- delete "#{re}/:id(.:format)", servlet, *servlet_options, request_options.merge({:action => :destroy})
82
+
83
+ actions = {
84
+ :index => [:get, "#{re}(.:format)"],
85
+ :create => [:post, "#{re}(.:format)"],
86
+ :new => [:get, "#{re}/new(.:format)"],
87
+ :edit => [:get, "#{re}/:id/edit(.:format)"],
88
+ :show => [:get, "#{re}/:id(.:format)"],
89
+ :update => [:put, "#{re}/:id(.:format)"],
90
+ :delete => [:delete, "#{re}/:id(.:format)"],
91
+ }
92
+ actions = _select_rest_actions(actions, request_options)
93
+
94
+ actions.each do |action, (method, re)|
95
+ send(method, re, servlet, *servlet_options, request_options.merge({:action => action}))
96
+ end
89
97
  end
90
98
 
91
99
  def resource(re, servlet, *servlet_options, **request_options)
92
100
  re = re.to_s.sub(%r#/$#, "")
93
- post "#{re}(.:format)", servlet, *servlet_options, request_options.merge({:action => :create})
94
- get "#{re}/new(.:format)", servlet, *servlet_options, request_options.merge({:action => :new})
95
- get "#{re}/edit(.:format)", servlet, *servlet_options, request_options.merge({:action => :edit})
96
- get "#{re}(.:format)", servlet, *servlet_options, request_options.merge({:action => :show})
97
- put "#{re}(.:format)", servlet, *servlet_options, request_options.merge({:action => :update})
98
- delete "#{re}(.:format)", servlet, *servlet_options, request_options.merge({:action => :destroy})
101
+
102
+ actions = {
103
+ :create => [:post, "#{re}(.:format)"],
104
+ :new => [:get, "#{re}/new(.:format)"],
105
+ :edit => [:get, "#{re}/edit(.:format)"],
106
+ :show => [:get, "#{re}(.:format)"],
107
+ :update => [:put, "#{re}(.:format)"],
108
+ :delete => [:delete, "#{re}(.:format)"],
109
+ }
110
+ actions = _select_rest_actions(actions, request_options)
111
+
112
+ actions.each do |action, (method, re)|
113
+ send(method, re, servlet, *servlet_options, request_options.merge({:action => action}))
114
+ end
99
115
  end
100
116
 
101
117
  def routes
@@ -121,6 +137,27 @@ module WEBrick
121
137
  re
122
138
  end
123
139
  private :_normalize_path_re
140
+
141
+ def _select_rest_actions(actions, request_options)
142
+ actions
143
+
144
+ # only
145
+ if request_options[:only]
146
+ only = request_options[:only]
147
+ only = [only] unless Array===only
148
+ actions.select!{|k,v| only.include?(k)}
149
+ end
150
+
151
+ # expect
152
+ if request_options[:expect]
153
+ expect = request_options[:expect]
154
+ expect = [expect] unless Array===expect
155
+ actions.delete_if{|k,v| expect.include?(k)}
156
+ end
157
+
158
+ actions
159
+ end
160
+ private :_select_rest_actions
124
161
  end
125
162
 
126
163
  class << self
@@ -1,5 +1,5 @@
1
1
  module WEBrick
2
2
  module RouteServlet
3
- VERSION = "1.2.0"
3
+ VERSION = "1.2.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webrick-route_servlet
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoshida Tetsuya