we_chat 0.5.15

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.
Files changed (48) hide show
  1. checksums.yaml +7 -0
  2. data/README.rdoc +3 -0
  3. data/Rakefile +26 -0
  4. data/app/assets/javascripts/we_chat/application.js +13 -0
  5. data/app/assets/stylesheets/we_chat/application.css +15 -0
  6. data/app/controllers/we_chat/application_controller.rb +4 -0
  7. data/app/helpers/we_chat/application_helper.rb +4 -0
  8. data/app/views/layouts/we_chat/application.html.erb +14 -0
  9. data/config/routes.rb +4 -0
  10. data/lib/tasks/we_chat/access_token.rake +26 -0
  11. data/lib/we_chat/access_token.rb +56 -0
  12. data/lib/we_chat/acts_as_we_chat_entity.rb +72 -0
  13. data/lib/we_chat/category.rb +19 -0
  14. data/lib/we_chat/category_property.rb +20 -0
  15. data/lib/we_chat/category_property_item.rb +17 -0
  16. data/lib/we_chat/engine.rb +5 -0
  17. data/lib/we_chat/entity/base.rb +62 -0
  18. data/lib/we_chat/entity/creator.rb +67 -0
  19. data/lib/we_chat/entity/destroyer.rb +16 -0
  20. data/lib/we_chat/entity/identity_entity.rb +21 -0
  21. data/lib/we_chat/entity/named_entity.rb +21 -0
  22. data/lib/we_chat/entity/retriever.rb +21 -0
  23. data/lib/we_chat/error.rb +105 -0
  24. data/lib/we_chat/headers.rb +15 -0
  25. data/lib/we_chat/menu.rb +36 -0
  26. data/lib/we_chat/messaging/message.rb +46 -0
  27. data/lib/we_chat/messaging/message_validator.rb +15 -0
  28. data/lib/we_chat/messaging/responder.rb +92 -0
  29. data/lib/we_chat/multipart_ext.rb +12 -0
  30. data/lib/we_chat/product.rb +119 -0
  31. data/lib/we_chat/product_attribute.rb +23 -0
  32. data/lib/we_chat/rest/api.rb +17 -0
  33. data/lib/we_chat/rest/client.rb +41 -0
  34. data/lib/we_chat/rest/media.rb +18 -0
  35. data/lib/we_chat/rest/menu.rb +21 -0
  36. data/lib/we_chat/rest/request.rb +103 -0
  37. data/lib/we_chat/rest/store.rb +172 -0
  38. data/lib/we_chat/rest/template_message.rb +14 -0
  39. data/lib/we_chat/rest/user.rb +20 -0
  40. data/lib/we_chat/rest/utils.rb +27 -0
  41. data/lib/we_chat/sku.rb +55 -0
  42. data/lib/we_chat/sku_definition.rb +21 -0
  43. data/lib/we_chat/sku_definition_item.rb +17 -0
  44. data/lib/we_chat/subscriber.rb +32 -0
  45. data/lib/we_chat/symbolizable.rb +18 -0
  46. data/lib/we_chat/version.rb +3 -0
  47. data/lib/we_chat.rb +46 -0
  48. metadata +257 -0
@@ -0,0 +1,172 @@
1
+ require 'we_chat/rest/utils'
2
+
3
+ module WeChat
4
+ module REST
5
+ module Store
6
+ include WeChat::REST::Utils
7
+
8
+ # Products
9
+ #------------------------
10
+
11
+ def product_get(product_id)
12
+ perform_get('/merchant/get', {product_id: product_id})
13
+ end
14
+
15
+ def product_get_by_status(status)
16
+ perform_post('/merchant/getbystatus', {status: status})
17
+ end
18
+
19
+ def product_create(merchant)
20
+ perform_post('/merchant/create', merchant)
21
+ end
22
+
23
+ def product_delete(product_id)
24
+ perform_post('/merchant/del', {product_id: product_id})
25
+ end
26
+
27
+ def product_update(new_merchant)
28
+ perform_post('/merchant/update', new_merchant)
29
+ end
30
+
31
+ def product_modify_product_status(product_id, status)
32
+ perform_post('/merchant/modproductstatus', {product_id: product_id, status: status})
33
+ end
34
+
35
+ # Categories
36
+ #------------------------
37
+
38
+ def category_get_children(category_id)
39
+ perform_post '/merchant/category/getsub', { cate_id: category_id }
40
+ end
41
+
42
+ def category_get_sku_definitions(category_id)
43
+ perform_post '/merchant/category/getsku', { cate_id: category_id }
44
+ end
45
+
46
+ def category_get_properties(category_id)
47
+ perform_post '/merchant/category/getproperty', { cate_id: category_id }
48
+ end
49
+
50
+ # Stock
51
+ #------------------------
52
+
53
+ def stock_add(product_id, sku_info, quantity)
54
+ perform_post '/merchant/stock/add', { product_id: product_id, sku_info: sku_info, quantity: quantity}
55
+ end
56
+
57
+ def stock_reduce(product_id, sku_info, quantity)
58
+ perform_post '/merchant/stock/reduce', { product_id: product_id, sku_info: sku_info, quantity: quantity}
59
+ end
60
+
61
+ def stock_update(product_id, sku_info, original_quantity, new_quantity)
62
+ if new_quantity > original_quantity # Adding stock
63
+ stock_add(product_id, sku_info, new_quantity - original_quantity)
64
+ end
65
+
66
+ if new_quantity < original_quantity # Reducing stock
67
+ stock_reduce(product_id, sku_info, original_quantity - new_quantity)
68
+ end
69
+ end
70
+
71
+ # Delivery Template
72
+ #------------------------
73
+
74
+ def delivery_template_create(data)
75
+ perform_post 'merchant/express/add', data
76
+ end
77
+
78
+ def delivery_template_delete(template_id)
79
+ perform_post 'merchant/express/del', { template_id: template_id }
80
+ end
81
+
82
+ def delivery_template_update(new_data)
83
+ perform_post 'merchant/express/update', new_data
84
+ end
85
+
86
+ def delivery_template_get(template_id)
87
+ perform_post 'merchant/express/getbyid', { template_id: template_id }
88
+ end
89
+
90
+ def delivery_template_get_all
91
+ perform_post 'merchant/express/getall'
92
+ end
93
+
94
+ # Group
95
+ #------------------------
96
+
97
+ def group_create(data)
98
+ perform_post 'merchant/group/add', data
99
+ end
100
+
101
+ def group_delete(group_id)
102
+ perform_post 'merchant/group/del', { group_id: group_id }
103
+ end
104
+
105
+ def group_update(new_data)
106
+ perform_post 'merchant/group/propertymod', new_data
107
+ end
108
+
109
+ def group_product_update(data)
110
+ perform_post 'merchant/group/productmod', data
111
+ end
112
+
113
+ def group_get_all
114
+ perform_post 'merchant/group/getall'
115
+ end
116
+
117
+ def group_get(group_id)
118
+ perform_post 'merchant/group/getbyid', { group_id: group_id }
119
+ end
120
+
121
+ # Shelf
122
+ #------------------------
123
+
124
+ def shelf_create(data)
125
+ perform_post 'merchant/shelf/add', data
126
+ end
127
+
128
+ def shelf_delete(shelf_id)
129
+ perform_post 'merchant/shelf/del', { shelf_id: shelf_id }
130
+ end
131
+
132
+ def shelf_update(new_data)
133
+ perform_post 'merchant/shelf/mod', new_data
134
+ end
135
+
136
+ def shelf_get_all
137
+ perform_post 'merchant/shelf/getall'
138
+ end
139
+
140
+ def shelf_get(shelf_id)
141
+ perform_post 'merchant/shelf/getbyid', { shelf_id: shelf_id }
142
+ end
143
+
144
+ # Order
145
+ #------------------------
146
+
147
+ def order_get(order_id)
148
+ perform_post 'merchant/order/getbyid', {order_id: order_id}
149
+ end
150
+
151
+ def order_get_by_filter(filter)
152
+ perform_post 'merchant/order/getbyfilter', filter
153
+ end
154
+
155
+ def order_set_delivery(data)
156
+ perform_post 'merchant/order/setdelivery', data
157
+ end
158
+
159
+ def order_close(order_id)
160
+ perform_post 'merchant/order/close', {order_id: order_id}
161
+ end
162
+
163
+ # Misc
164
+ #------------------------
165
+
166
+ def store_upload_image(file_path, file_name)
167
+ perform_multipart_post('/merchant/common/upload_img', { key: 'media', file: file_path, params: { filename: file_name } })
168
+ end
169
+
170
+ end
171
+ end
172
+ end
@@ -0,0 +1,14 @@
1
+ require 'we_chat/rest/utils'
2
+
3
+ module WeChat
4
+ module REST
5
+ module TemplateMessage
6
+ include WeChat::REST::Utils
7
+
8
+ def add_template(template_id_short)
9
+ perform_post('/template/api_add_template', {template_id_short: template_id_short})
10
+ end
11
+
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,20 @@
1
+ require 'we_chat/rest/utils'
2
+
3
+ module WeChat
4
+ module REST
5
+ module User
6
+ include WeChat::REST::Utils
7
+
8
+ def user_get(next_openid = nil)
9
+ options = {}
10
+ options.merge!(params: {next_openid: next_openid}) unless next_openid.nil?
11
+ perform_get('/user/get', options)
12
+ end
13
+
14
+ def user_info(openid)
15
+ perform_get('/user/info', params: {openid: openid})
16
+ end
17
+
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,27 @@
1
+ require 'we_chat/rest/request'
2
+
3
+ module WeChat
4
+ module REST
5
+ module Utils
6
+
7
+ private
8
+
9
+ def perform_get(path, options={})
10
+ perform_request(:get, path, options)
11
+ end
12
+
13
+ def perform_post(path, options={})
14
+ perform_request(:post, path, options)
15
+ end
16
+
17
+ def perform_request(request_method, path, options={})
18
+ WeChat::REST::Request.new(self, request_method, path, options).perform
19
+ end
20
+
21
+ def perform_multipart_post(path, options={})
22
+ perform_request(:multipart_post, path, options)
23
+ end
24
+
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,55 @@
1
+ require 'we_chat/entity/base'
2
+
3
+ module WeChat
4
+ module Sku
5
+ extend ActiveSupport::Concern
6
+ include WeChat::Entity::Base
7
+
8
+ CHILDREN = {sku_definition_item: nil}.freeze
9
+
10
+ def to_we_chat_data
11
+ we_chat_data = {}
12
+ we_chat_data[:sku_id] = self.we_chat_id
13
+ we_chat_data[:price] = self.price
14
+ we_chat_data[:quantity] = self.quantity
15
+ we_chat_data[:icon_url] = self.icon_url
16
+ we_chat_data[:product_code] = self.product_code
17
+ we_chat_data[:ori_price] = self.original_price
18
+
19
+ we_chat_data
20
+ end
21
+
22
+ included do
23
+ end
24
+
25
+ module ClassMethods
26
+
27
+ def prepare_instance_data(data)
28
+ result = {}
29
+ result[:we_chat_id] = data[:sku_id]
30
+ result[:price] = data[:price]
31
+ result[:icon_url] = data[:icon_url]
32
+ result[:quantity] = data[:quantity]
33
+ result[:product_code] = data[:product_code]
34
+ result[:original_price] = data[:ori_price]
35
+ result
36
+ end
37
+
38
+ def prepare_children(instance, data)
39
+
40
+ definition = children_definition[:sku_definition_item]
41
+
42
+ data[:sku_id].split(';').each do |sku_id|
43
+ sku_ids = sku_id.split(':')
44
+ sku_definite_we_chat_id = sku_ids[0]
45
+ sku_definition_item_we_chat_id = sku_ids[1]
46
+ child_instance = definition[:klass].find_by_we_chat_id(sku_definition_item_we_chat_id)
47
+ instance.send(definition[:method]) << child_instance if child_instance
48
+ end
49
+
50
+ instance
51
+
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,21 @@
1
+ require 'we_chat/entity/named_entity'
2
+ require 'we_chat/entity/identity_entity'
3
+
4
+ module WeChat
5
+ module SkuDefinition
6
+ extend ActiveSupport::Concern
7
+ include WeChat::Entity::NamedEntity
8
+ include WeChat::Entity::IdentityEntity
9
+
10
+ CHILDREN = {
11
+ sku_definition_item: :value_list
12
+ }
13
+
14
+ included do
15
+ end
16
+
17
+ module ClassMethods
18
+
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,17 @@
1
+ require 'we_chat/entity/named_entity'
2
+ require 'we_chat/entity/identity_entity'
3
+
4
+ module WeChat
5
+ module SkuDefinitionItem
6
+ extend ActiveSupport::Concern
7
+ include WeChat::Entity::NamedEntity
8
+ include WeChat::Entity::IdentityEntity
9
+
10
+ included do
11
+ end
12
+
13
+ module ClassMethods
14
+
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,32 @@
1
+ require 'we_chat/entity/base'
2
+
3
+ module WeChat
4
+ module Subscriber
5
+ extend ActiveSupport::Concern
6
+ include WeChat::Entity::Base
7
+
8
+ included do
9
+
10
+ end
11
+
12
+ module ClassMethods
13
+
14
+ def prepare_instance_data(data)
15
+ result = {}
16
+ result[:we_chat_id] = data[:openid]
17
+ result[:name] = data[:nickname]
18
+ result[:gender] = data[:sex]
19
+ result[:language] = data[:language]
20
+ result[:city] = data[:city]
21
+ result[:province] = data[:province]
22
+ result[:country] = data[:country]
23
+ result[:we_chat_avatar_url] = data[:headimgurl]
24
+ result[:we_chat_followed_at] = Time.at(data[:subscribe_time].to_i)
25
+ result[:we_chat_union_id] = data[:unionid]
26
+ result[:we_chat_open_id] = data[:openid]
27
+ result
28
+ end
29
+
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,18 @@
1
+ module WeChat
2
+ module Symbolizable
3
+
4
+ private
5
+ def symbolize_keys!(object)
6
+ if object.is_a?(Array)
7
+ object.each_with_index do |val, index|
8
+ object[index] = symbolize_keys!(val)
9
+ end
10
+ elsif object.is_a?(Hash)
11
+ object.keys.each do |key|
12
+ object[key.to_sym] = symbolize_keys!(object.delete(key))
13
+ end
14
+ end
15
+ object
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,3 @@
1
+ module WeChat
2
+ VERSION = "0.5.15"
3
+ end
data/lib/we_chat.rb ADDED
@@ -0,0 +1,46 @@
1
+ require 'we_chat/messaging/message'
2
+ require 'we_chat/messaging/message_validator'
3
+ require 'we_chat/messaging/responder'
4
+ require 'we_chat/rest/client'
5
+ require 'we_chat/access_token'
6
+
7
+ require 'we_chat/acts_as_we_chat_entity'
8
+
9
+ require 'we_chat/version'
10
+ require "we_chat/engine"
11
+
12
+ module WeChat
13
+
14
+ class Engine < ::Rails::Engine
15
+ isolate_namespace WeChat
16
+
17
+ config.generators do |config|
18
+ config.test_framework :rspec
19
+ end
20
+ end
21
+
22
+ # WeChat API base url
23
+ mattr_accessor :wechat_api_base_url
24
+ @@wechat_api_base_url = 'https://api.weixin.qq.com/cgi-bin'
25
+
26
+ # AppId of WeChat API
27
+ mattr_accessor :wechat_appid
28
+ @@wechat_appid = ''
29
+
30
+ # App secret of WeChat API
31
+ mattr_accessor :wechat_secret
32
+ @@wechat_secret = ''
33
+
34
+ # Message token of WeChat API
35
+ mattr_accessor :wechat_token
36
+ @@wechat_token = ''
37
+
38
+ # The default WeChat API access token file path
39
+ mattr_accessor :wechat_access_token_file_path
40
+ @@wechat_access_token_file_path = 'public/system/wechat_access_token'
41
+
42
+ def self.setup
43
+ yield self
44
+ end
45
+
46
+ end
metadata ADDED
@@ -0,0 +1,257 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: we_chat
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.15
5
+ platform: ruby
6
+ authors:
7
+ - babaru
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-04-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 4.2.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 4.2.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: http
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 0.7.2
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 0.7.2
41
+ - !ruby/object:Gem::Dependency
42
+ name: addressable
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: activesupport
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '4.2'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '4.2'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: sqlite3
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec-rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '='
102
+ - !ruby/object:Gem::Version
103
+ version: 3.2.1
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '='
109
+ - !ruby/object:Gem::Version
110
+ version: 3.2.1
111
+ - !ruby/object:Gem::Dependency
112
+ name: autotest-rails
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '='
116
+ - !ruby/object:Gem::Version
117
+ version: 4.2.1
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '='
123
+ - !ruby/object:Gem::Version
124
+ version: 4.2.1
125
+ - !ruby/object:Gem::Dependency
126
+ name: rspec-autotest
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '='
130
+ - !ruby/object:Gem::Version
131
+ version: 1.0.0
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '='
137
+ - !ruby/object:Gem::Version
138
+ version: 1.0.0
139
+ - !ruby/object:Gem::Dependency
140
+ name: webmock
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '='
144
+ - !ruby/object:Gem::Version
145
+ version: 1.20.4
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '='
151
+ - !ruby/object:Gem::Version
152
+ version: 1.20.4
153
+ - !ruby/object:Gem::Dependency
154
+ name: simplecov
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: factory_girl_rails
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ description: A rails plugin gem for WeChat API
182
+ email:
183
+ - babaru.trinit@gmail.com
184
+ executables: []
185
+ extensions: []
186
+ extra_rdoc_files: []
187
+ files:
188
+ - README.rdoc
189
+ - Rakefile
190
+ - app/assets/javascripts/we_chat/application.js
191
+ - app/assets/stylesheets/we_chat/application.css
192
+ - app/controllers/we_chat/application_controller.rb
193
+ - app/helpers/we_chat/application_helper.rb
194
+ - app/views/layouts/we_chat/application.html.erb
195
+ - config/routes.rb
196
+ - lib/tasks/we_chat/access_token.rake
197
+ - lib/we_chat.rb
198
+ - lib/we_chat/access_token.rb
199
+ - lib/we_chat/acts_as_we_chat_entity.rb
200
+ - lib/we_chat/category.rb
201
+ - lib/we_chat/category_property.rb
202
+ - lib/we_chat/category_property_item.rb
203
+ - lib/we_chat/engine.rb
204
+ - lib/we_chat/entity/base.rb
205
+ - lib/we_chat/entity/creator.rb
206
+ - lib/we_chat/entity/destroyer.rb
207
+ - lib/we_chat/entity/identity_entity.rb
208
+ - lib/we_chat/entity/named_entity.rb
209
+ - lib/we_chat/entity/retriever.rb
210
+ - lib/we_chat/error.rb
211
+ - lib/we_chat/headers.rb
212
+ - lib/we_chat/menu.rb
213
+ - lib/we_chat/messaging/message.rb
214
+ - lib/we_chat/messaging/message_validator.rb
215
+ - lib/we_chat/messaging/responder.rb
216
+ - lib/we_chat/multipart_ext.rb
217
+ - lib/we_chat/product.rb
218
+ - lib/we_chat/product_attribute.rb
219
+ - lib/we_chat/rest/api.rb
220
+ - lib/we_chat/rest/client.rb
221
+ - lib/we_chat/rest/media.rb
222
+ - lib/we_chat/rest/menu.rb
223
+ - lib/we_chat/rest/request.rb
224
+ - lib/we_chat/rest/store.rb
225
+ - lib/we_chat/rest/template_message.rb
226
+ - lib/we_chat/rest/user.rb
227
+ - lib/we_chat/rest/utils.rb
228
+ - lib/we_chat/sku.rb
229
+ - lib/we_chat/sku_definition.rb
230
+ - lib/we_chat/sku_definition_item.rb
231
+ - lib/we_chat/subscriber.rb
232
+ - lib/we_chat/symbolizable.rb
233
+ - lib/we_chat/version.rb
234
+ homepage: https://github.com/babaru/we_chat
235
+ licenses: []
236
+ metadata: {}
237
+ post_install_message:
238
+ rdoc_options: []
239
+ require_paths:
240
+ - lib
241
+ required_ruby_version: !ruby/object:Gem::Requirement
242
+ requirements:
243
+ - - ">="
244
+ - !ruby/object:Gem::Version
245
+ version: '0'
246
+ required_rubygems_version: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ requirements: []
252
+ rubyforge_project:
253
+ rubygems_version: 2.4.5
254
+ signing_key:
255
+ specification_version: 4
256
+ summary: WeChat API rails plugin gem
257
+ test_files: []