sinatra-wechat 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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