sinatra-wechat 0.1.0 → 0.1.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: 86233c3037ef8bd2e6d48fa0d321aa6a4279e41f
4
- data.tar.gz: 2d2eb697ffa61f47e149a4718c0b21b4dbdb7212
3
+ metadata.gz: f787f9d4d96d419501b7be1824a87ff1407b88d2
4
+ data.tar.gz: f6ce0d2d62d221861f1183814dbed8ad8016acb3
5
5
  SHA512:
6
- metadata.gz: 97f9ff1ed899844dd1aef81127b765b8b14e783b132e77e594facc8864fdd2a90f2261aaf50f39c9edf75ee147108ad62edfc45d0a2ddce63e73e3be97e47a26
7
- data.tar.gz: fe24ff24774e0c9d15c3efc4eb7e284d9704ab6fa5e73f38a65ada3ec45cba63c18b3c6856990b71f654b3aea7ac3c02e9dc7f6212e42ea9fa044fbde3bf1776
6
+ metadata.gz: e97bbaa663a3fca6219aff350b4d45f968e8e8725d1c23ec065dc36907cee81e7ba3f826d609ba3cb2c02acddf30c53bc6d971288b6ba7d45539f434728aadb0
7
+ data.tar.gz: 5ee37aaef6d99d010fc506e77924d35310cfe0ac141f7a18b4e49ef373dc03620059a52ea126975ac6807cc984a19e850b814db7b65584ef10f68549b9026ccd
@@ -1,5 +1,5 @@
1
1
  module Sinatra
2
2
  module Wechat
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.1"
4
4
  end
5
5
  end
@@ -33,14 +33,18 @@ module Sinatra
33
33
  end
34
34
 
35
35
  def wechat(endpoint = '/', wechat_token: '', validate_msg: true, &block)
36
- before endpoint do
36
+ # XXX: 'before' doesn't work in Padrino framework
37
+ # seems like Padrino has redefined before, and make it incompatible with original one
38
+ # use a proc instead.
39
+ validation = Proc.new {
37
40
  if validate_msg then
38
41
  raw = [wechat_token, params[:timestamp], params[:nonce]].compact.sort.join
39
42
  halt 403 unless Digest::SHA1.hexdigest(raw) == params[:signature]
40
43
  end
41
- end
44
+ }
42
45
 
43
46
  get endpoint do
47
+ instance_eval &validation
44
48
  content_type 'text/plain'
45
49
  params[:echostr]
46
50
  end
@@ -48,6 +52,8 @@ module Sinatra
48
52
  dispatcher = DispatcherBuilder.new(&block)
49
53
 
50
54
  post endpoint do
55
+ instance_eval &validation
56
+
51
57
  body = request.body.read || ""
52
58
  halt 400 if body.empty? # bad request, cannot handle this kind of message
53
59
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra-wechat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lu, Jun