weixin_rails_middleware 1.1.1 → 1.2.0

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: 328982300f97b4e56ae76baac5df06ae9b8e5605
4
- data.tar.gz: 330a98f5c4c6b13cd86a0740b2a91cf6f2a3c4cb
3
+ metadata.gz: da756c0c956a72e759c9ce775f7632ba43eb0ae4
4
+ data.tar.gz: a9a611e9c90db9a3a2b2a2493ea3e9b1b94ed8a9
5
5
  SHA512:
6
- metadata.gz: 999b82f09d4bf3cc3731e6ab1bf7dd7ad19b3183e2cbb0aef72c49c688e53065b4b201407ed28e4720e0bfd7d1f7792c6180ff20438b35aba771d239e0b646a9
7
- data.tar.gz: 9f5ae33310059880dda908ad38bb7faf4aebce6763e5df0c04eb0da65cbc4c5c689a213206dc0017eb4ec2e4ecfdec3fc9cd09b088174fe029abf8efa667476d
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
- migration_template "add_weixin_secret_key_and_weixin_token_migration.rb", "db/migrate/add_weixin_secret_key_and_weixin_token_to_#{plural_name}.rb"
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
@@ -1,3 +1,3 @@
1
1
  module WeixinRailsMiddleware
2
- VERSION = "1.1.1"
2
+ VERSION = "1.2.0"
3
3
  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.1.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-24 00:00:00.000000000 Z
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