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 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