weixin_rails_middleware 1.1.1 → 1.2.0
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 +4 -4
- data/lib/generators/weixin_rails_middleware/migration_generator.rb +41 -1
- data/lib/weixin_rails_middleware.rb +1 -0
- data/lib/weixin_rails_middleware/engine.rb +0 -16
- data/lib/weixin_rails_middleware/helpers/auto_generate_weixin_token_secret_key.rb +20 -0
- data/lib/weixin_rails_middleware/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da756c0c956a72e759c9ce775f7632ba43eb0ae4
|
4
|
+
data.tar.gz: a9a611e9c90db9a3a2b2a2493ea3e9b1b94ed8a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c51ed60641ca6bba90b2c96e3d5ce145eb35f8b919a3feac03e814c549e5f45632e9e5552764784a61705c4cc80eb9b6ac495254d43eb5c01b5246e12fb18f7b
|
7
|
+
data.tar.gz: e68524e8cf517e9b1653957704368dced8922f8f95a30e99b0250babff6df016dddb217a825b297a24884adb2a36b0ce513a369c0790e96426fbc3f67589f938
|
@@ -7,7 +7,47 @@ module WeixinRailsMiddleware
|
|
7
7
|
|
8
8
|
desc 'Adds a Wexin Secret Key for your application.'
|
9
9
|
def create_migration_file
|
10
|
-
|
10
|
+
if !migration_exists?(table_name)
|
11
|
+
migration_template "add_weixin_secret_key_and_weixin_token_migration.rb", "db/migrate/add_weixin_secret_key_and_weixin_token_to_#{plural_name}.rb"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def inject_model_content
|
16
|
+
|
17
|
+
content = <<-CONTENT
|
18
|
+
# It will auto generate weixin token and secret
|
19
|
+
include WeixinRailsMiddleware::AutoGenerateWeixinTokenSecretKey
|
20
|
+
|
21
|
+
CONTENT
|
22
|
+
|
23
|
+
class_path = if namespaced?
|
24
|
+
class_name.to_s.split("::")
|
25
|
+
else
|
26
|
+
[class_name]
|
27
|
+
end
|
28
|
+
|
29
|
+
indent_depth = class_path.size - 1
|
30
|
+
content = content.split("\n").map { |line| " " * indent_depth + line } .join("\n") << "\n"
|
31
|
+
|
32
|
+
inject_into_class(model_path, class_path.last, content) if model_exists?
|
33
|
+
end
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
def model_exists?
|
38
|
+
File.exists?(File.join(destination_root, model_path))
|
39
|
+
end
|
40
|
+
|
41
|
+
def model_path
|
42
|
+
@model_path ||= File.join("app", "models", "#{file_path}.rb")
|
43
|
+
end
|
44
|
+
|
45
|
+
def migration_exists?(table_name)
|
46
|
+
Dir.glob("#{File.join(destination_root, migration_path)}/[0-9]*_*.rb").grep(/\d+_add_weixin_secret_key_and_weixin_token_to_#{table_name}.rb/).first
|
47
|
+
end
|
48
|
+
|
49
|
+
def migration_path
|
50
|
+
@migration_path ||= File.join("db", "migrate")
|
11
51
|
end
|
12
52
|
|
13
53
|
end
|
@@ -5,6 +5,7 @@ require "weixin_rails_middleware/models/reply_message"
|
|
5
5
|
require "weixin_rails_middleware/helpers/reply_weixin_message_helper"
|
6
6
|
require "weixin_rails_middleware/helpers/unique_token_helper"
|
7
7
|
require "weixin_rails_middleware/helpers/weixin_authorize_helper"
|
8
|
+
require "weixin_rails_middleware/helpers/auto_generate_weixin_token_secret_key"
|
8
9
|
|
9
10
|
module WeixinRailsMiddleware
|
10
11
|
|
@@ -5,21 +5,5 @@ module WeixinRailsMiddleware
|
|
5
5
|
isolate_namespace WeixinRailsMiddleware
|
6
6
|
engine_name :weixin_engine
|
7
7
|
|
8
|
-
config.after_initialize do
|
9
|
-
token_model_callback if token_model.present?
|
10
|
-
end
|
11
|
-
|
12
|
-
private
|
13
|
-
|
14
|
-
def token_model_callback
|
15
|
-
token_model_class.class_eval do
|
16
|
-
before_create do
|
17
|
-
# TODO: refactor
|
18
|
-
self.weixin_secret_key = WeiXinUniqueToken.generate(generator: :urlsafe_base64, size: 24) if weixin_secret_key.blank?
|
19
|
-
self.weixin_token = WeiXinUniqueToken.generate if weixin_token.blank?
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
8
|
end
|
25
9
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module WeixinRailsMiddleware
|
2
|
+
module AutoGenerateWeixinTokenSecretKey
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
included do
|
6
|
+
|
7
|
+
before_create do
|
8
|
+
# TODO: refactor
|
9
|
+
self.weixin_secret_key = generate_weixin_secret_key
|
10
|
+
self.weixin_token = WeiXinUniqueToken.generate
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def generate_weixin_secret_key
|
17
|
+
WeiXinUniqueToken.generate(generator: :urlsafe_base64, size: 24)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: weixin_rails_middleware
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- lanrion
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -114,6 +114,7 @@ files:
|
|
114
114
|
- lib/weixin_rails_middleware.rb
|
115
115
|
- lib/weixin_rails_middleware/configuration.rb
|
116
116
|
- lib/weixin_rails_middleware/engine.rb
|
117
|
+
- lib/weixin_rails_middleware/helpers/auto_generate_weixin_token_secret_key.rb
|
117
118
|
- lib/weixin_rails_middleware/helpers/reply_weixin_message_helper.rb
|
118
119
|
- lib/weixin_rails_middleware/helpers/unique_token_helper.rb
|
119
120
|
- lib/weixin_rails_middleware/helpers/weixin_authorize_helper.rb
|