mini_program 1.1.3 → 1.3.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/README.md +1 -1
- data/app/controllers/mini_program/wechat_controller.rb +8 -5
- data/lib/exceptions/initialize_denied.rb +2 -0
- data/lib/exceptions/unsupported_param_type.rb +2 -0
- data/lib/mini_program/client.rb +116 -56
- data/lib/mini_program/r_logger.rb +34 -0
- data/lib/mini_program/request_result.rb +4 -0
- data/lib/{service_result.rb → mini_program/service_result.rb} +9 -6
- data/lib/mini_program/version.rb +1 -1
- data/lib/mini_program.rb +3 -2
- metadata +7 -4
- data/lib/r_logger.rb +0 -36
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 299067c25a9cc3d5d9070719da62f4239dafa89990540db1c81d5686475d9dbe
|
|
4
|
+
data.tar.gz: 857dfd0f801159319c7663d12d2d4472149c7f3e34f0a32002dcc6b88cdd0fad
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4ff9c4555528100bee8afdcb11c0c8de0b8c1df110ee1f2cbf149ff78caba1cc035189b0f21a4a0dc18f1b395820bde5e2f63c4d68a1a4fdc3bb5ba8e865f79c
|
|
7
|
+
data.tar.gz: 6cd0e717e952fd257dd873d0511501c8098f8741a935254ed0b9c190370f0b46d7d6d676a82c56d9a785cf89e2be18b667c56f4bcae2db0bdb3e987b22461e61
|
data/README.md
CHANGED
|
@@ -48,7 +48,7 @@ code = "041PuvGa1rysrB0noDJa1n7RBv2PuvGe"
|
|
|
48
48
|
encrypted_data = "3G/+Fh6kCBaQszXFTxz3h3HFSbu0UuVW/4aLbz8WGzrKfmbGpvnxYHAa4QrKXJvHpB++3ogOYoU6iiG+1HW18Lkt9qEJE9GyRw5OnuXSjTnUIPSRROT3sxeAYnT1kf4ngTAfrD3f4TFtLXkRIrrc1MzSqx/LV8iXA8Lu5Y+7kZx26eulz3yVrlXDH3BOIX6zcGOeprsK5XzDx2ltmf3j5w=="
|
|
49
49
|
iv = "5tiyfVEHNVgHN4n8lzDrUA=="
|
|
50
50
|
|
|
51
|
-
result = mp.
|
|
51
|
+
result = mp.decrypt_phone_num(code: code, encrypted_data: encrypted_data, iv: iv)
|
|
52
52
|
|
|
53
53
|
if result.success?
|
|
54
54
|
phone_num = result.data[:phone]
|
|
@@ -15,23 +15,26 @@ module MiniProgram
|
|
|
15
15
|
|
|
16
16
|
after_mp_login if respond_to? :after_mp_login
|
|
17
17
|
|
|
18
|
-
render json:
|
|
18
|
+
render json: ServiceResult.new(success: true,
|
|
19
|
+
data: { current_user: current_mp_user },
|
|
20
|
+
message: "登录成功",
|
|
21
|
+
message_kind: :login_success)
|
|
19
22
|
else
|
|
20
|
-
render json:
|
|
23
|
+
render json: result, status: 500
|
|
21
24
|
end
|
|
22
25
|
end
|
|
23
26
|
|
|
24
27
|
# POST /wechat/phone_num
|
|
25
28
|
def phone_num
|
|
26
29
|
client = MiniProgram::Client.new
|
|
27
|
-
result = client.
|
|
30
|
+
result = client.decrypt_phone_num(code: params[:code], encrypted_data: params[:encrypted_data], iv: params[:iv])
|
|
28
31
|
|
|
29
32
|
if result.success?
|
|
30
33
|
cookies.signed[:phone_num] = result.data[:phone_num]
|
|
31
34
|
|
|
32
|
-
render json: result
|
|
35
|
+
render json: result
|
|
33
36
|
else
|
|
34
|
-
render json:
|
|
37
|
+
render json: result, status: 500
|
|
35
38
|
end
|
|
36
39
|
end
|
|
37
40
|
end
|
data/lib/mini_program/client.rb
CHANGED
|
@@ -23,17 +23,22 @@ module MiniProgram
|
|
|
23
23
|
access_token = Rails.cache.read(access_token_store_key)
|
|
24
24
|
|
|
25
25
|
if access_token.present? && !fresh
|
|
26
|
-
return MiniProgram::ServiceResult.new(success: true,
|
|
26
|
+
return MiniProgram::ServiceResult.new(success: true,
|
|
27
|
+
data: { access_token: access_token },
|
|
28
|
+
message: "获取 access token 成功",
|
|
29
|
+
message_kind: :get_access_token_success)
|
|
27
30
|
end
|
|
28
31
|
|
|
29
32
|
result = request_access_token
|
|
30
33
|
|
|
31
34
|
if result.success?
|
|
32
|
-
# redis.setex access_token_store_key, 1.5.hours.to_i, result.data["access_token"]
|
|
33
35
|
Rails.cache.write(access_token_store_key,
|
|
34
36
|
result.data["access_token"],
|
|
35
37
|
expires_in: 1.5.hours.to_i,
|
|
36
38
|
race_condition_ttl: 10)
|
|
39
|
+
|
|
40
|
+
result.message = "获取 access token 成功"
|
|
41
|
+
result.message_kind = :get_access_token_success
|
|
37
42
|
end
|
|
38
43
|
|
|
39
44
|
yield result if block_given?
|
|
@@ -57,15 +62,24 @@ module MiniProgram
|
|
|
57
62
|
result = JSON.parse(response)
|
|
58
63
|
|
|
59
64
|
if result["errcode"] && result["errcode"].to_s != "0"
|
|
60
|
-
logger.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
logger.tagged "request access token" do
|
|
66
|
+
logger.error <<~ERROR
|
|
67
|
+
Get access token failed.
|
|
68
|
+
api: #{api}
|
|
69
|
+
error: #{result}
|
|
70
|
+
ERROR
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
MiniProgram::ServiceResult.new(success: false,
|
|
74
|
+
error: result,
|
|
75
|
+
message: result["errmsg"],
|
|
76
|
+
message_kind: :request_access_token_failed)
|
|
77
|
+
else
|
|
78
|
+
MiniProgram::ServiceResult.new(success: true,
|
|
79
|
+
data: { access_token: result["access_token"] },
|
|
80
|
+
message: "请求 access token 成功",
|
|
81
|
+
message_kind: :request_access_token_success)
|
|
66
82
|
end
|
|
67
|
-
|
|
68
|
-
MiniProgram::ServiceResult.new(success: true, data: result)
|
|
69
83
|
end
|
|
70
84
|
|
|
71
85
|
# 调用微信授权登录 api
|
|
@@ -85,21 +99,31 @@ module MiniProgram
|
|
|
85
99
|
result = JSON.parse(response)
|
|
86
100
|
|
|
87
101
|
if result["errcode"] && result["errcode"].to_s != "0"
|
|
102
|
+
logger.tagged "login mini program"
|
|
88
103
|
logger.error <<~ERROR
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
104
|
+
Get session key failed.
|
|
105
|
+
api: #{api}
|
|
106
|
+
result: #{result}
|
|
92
107
|
ERROR
|
|
93
|
-
|
|
108
|
+
|
|
109
|
+
MiniProgram::ServiceResult.new(success: false,
|
|
110
|
+
error: result,
|
|
111
|
+
message: result["errmsg"],
|
|
112
|
+
message_kind: :login_failed)
|
|
113
|
+
|
|
114
|
+
else
|
|
115
|
+
MiniProgram::ServiceResult.new(success: true,
|
|
116
|
+
data: result,
|
|
117
|
+
message: "小程序登录成功",
|
|
118
|
+
message_kind: :login_success)
|
|
94
119
|
end
|
|
95
120
|
|
|
96
|
-
MiniProgram::ServiceResult.new(success: true, data: result)
|
|
97
121
|
end
|
|
98
122
|
|
|
99
123
|
# 发送订阅消息
|
|
100
124
|
# @param [MiniProgram::Msg] msg
|
|
101
125
|
# @param [String] to 用户的openid
|
|
102
|
-
def send_msg(msg, to:
|
|
126
|
+
def send_msg(msg, to:)
|
|
103
127
|
openid = to.try(:openid) || to
|
|
104
128
|
|
|
105
129
|
payload = msg.as_json.merge!(touser: openid)
|
|
@@ -114,19 +138,34 @@ module MiniProgram
|
|
|
114
138
|
result = post(api, payload)
|
|
115
139
|
|
|
116
140
|
if result["errcode"].to_s != "0"
|
|
117
|
-
|
|
118
|
-
|
|
141
|
+
logger.tagged "Subscribe Message" do
|
|
142
|
+
logger.error { "{params: #{payload}, response: #{result}}" }
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
MiniProgram::ServiceResult.new(success: false,
|
|
146
|
+
error: result,
|
|
147
|
+
message: "发送订阅消息失败",
|
|
148
|
+
message_kind: :send_subscribed_message_failed)
|
|
149
|
+
else
|
|
150
|
+
logger.tagged "Subscribe Message" do
|
|
151
|
+
logger.info { "{params: #{payload}, response: #{result}}" }
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
MiniProgram::ServiceResult.new(success: true,
|
|
155
|
+
data: {
|
|
156
|
+
msgid: result.data["msgid"]
|
|
157
|
+
},
|
|
158
|
+
message: "发送订阅消息成功",
|
|
159
|
+
message_kind: :send_subscribed_message_success)
|
|
119
160
|
end
|
|
120
161
|
|
|
121
|
-
msg_logger.info {"{params: #{payload}, response: #{result}}"}
|
|
122
|
-
MiniProgram::ServiceResult.new(success: true, data: result)
|
|
123
162
|
end
|
|
124
163
|
|
|
125
164
|
# 「发送统一服务消息」
|
|
126
165
|
# 统一服务消息原本是可以从调用小程序的 api ,通过用户小程序的 openid 发送模板消息到小程序和公众号那里去,
|
|
127
166
|
# 现在小程序的模板消息功能关闭了,就只剩下发送模板消息到公众号这个功能了
|
|
128
167
|
#
|
|
129
|
-
def send_uniform_msg(msg, to:
|
|
168
|
+
def send_uniform_msg(msg, to:)
|
|
130
169
|
openid = to.try(:openid) || to
|
|
131
170
|
|
|
132
171
|
payload = msg.as_json
|
|
@@ -143,16 +182,26 @@ module MiniProgram
|
|
|
143
182
|
})
|
|
144
183
|
|
|
145
184
|
if result["errcode"].to_s != "0"
|
|
146
|
-
|
|
147
|
-
|
|
185
|
+
logger.tagged "uniform message" do
|
|
186
|
+
logger.error { "{params: #{payload}, response: #{result}}" }
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
MiniProgram::ServiceResult.new(success: false,
|
|
190
|
+
error: result["errmsg"],
|
|
191
|
+
message: "发送统一服务消息失败",
|
|
192
|
+
message_kind: :send_uniform_message_failed)
|
|
193
|
+
else
|
|
194
|
+
msg_logger.info { "{params: #{payload}, response: #{result}}" }
|
|
195
|
+
MiniProgram::ServiceResult.new(success: true,
|
|
196
|
+
data: result,
|
|
197
|
+
message: "发送统一服务消息成功",
|
|
198
|
+
message_kind: :send_uniform_message_success)
|
|
148
199
|
end
|
|
149
200
|
|
|
150
|
-
msg_logger.info { "{params: #{payload}, response: #{result}}"}
|
|
151
|
-
MiniProgram::ServiceResult.new(success: true, data: result)
|
|
152
201
|
end
|
|
153
202
|
|
|
154
203
|
# 获取用户手机号
|
|
155
|
-
def
|
|
204
|
+
def decrypt_phone_num(code:, encrypted_data:, iv:)
|
|
156
205
|
login_result = login(code)
|
|
157
206
|
return login_result if login_result.failure?
|
|
158
207
|
|
|
@@ -165,17 +214,26 @@ module MiniProgram
|
|
|
165
214
|
|
|
166
215
|
MiniProgram::ServiceResult.new(
|
|
167
216
|
success: true,
|
|
217
|
+
message: "解密手机号成功",
|
|
218
|
+
message_kind: :decrypt_phone_number_success,
|
|
168
219
|
data: {
|
|
169
220
|
openid: openid,
|
|
170
221
|
phone_num: phone_num
|
|
171
|
-
|
|
222
|
+
})
|
|
223
|
+
rescue OpenSSL::Cipher::CipherError => e
|
|
224
|
+
MiniProgram::ServiceResult.new(
|
|
225
|
+
success: false,
|
|
226
|
+
message: "解密手机号失败",
|
|
227
|
+
message_kind: :decrypt_phone_data_failed,
|
|
228
|
+
error: e
|
|
229
|
+
)
|
|
172
230
|
end
|
|
173
231
|
|
|
174
232
|
def config
|
|
175
233
|
appid, app_secret = if MiniProgram.appid && MiniProgram.app_secret
|
|
176
234
|
[MiniProgram.appid, MiniProgram.app_secret]
|
|
177
235
|
|
|
178
|
-
|
|
236
|
+
# 如果有挂载 WechatPayment 的 engine 时,使用里边的小程序配置
|
|
179
237
|
elsif Object.const_defined? "WechatPayment"
|
|
180
238
|
[WechatPayment.sub_appid || WechatPayment.appid, WechatPayment.sub_app_secret || WechatPayment.app_secret]
|
|
181
239
|
else
|
|
@@ -186,32 +244,32 @@ module MiniProgram
|
|
|
186
244
|
end
|
|
187
245
|
|
|
188
246
|
#获取小程序二维码
|
|
189
|
-
def qrcode_unlimited(scene:, page:, width: 280, check_path: true, env_version: "release")
|
|
190
|
-
get_token_result = get_access_token
|
|
191
|
-
|
|
192
|
-
return get_token_result
|
|
247
|
+
def qrcode_unlimited(scene:, page:, width: 280, check_path: true, env_version: "release")
|
|
248
|
+
get_token_result = get_access_token.on_failure do |result|
|
|
249
|
+
return result
|
|
193
250
|
end
|
|
194
|
-
|
|
251
|
+
|
|
195
252
|
api = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=#{get_token_result["access_token"]}"
|
|
196
|
-
|
|
197
|
-
params = {
|
|
198
|
-
scene:,
|
|
199
|
-
page:,
|
|
200
|
-
width:,
|
|
201
|
-
check_path:,
|
|
202
|
-
env_version:
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
result = post(api, params)
|
|
206
253
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
254
|
+
params = { scene:, page:, width:, check_path:, env_version: }
|
|
255
|
+
|
|
256
|
+
result = post(api, params)
|
|
257
|
+
|
|
258
|
+
if result["errcode"]
|
|
259
|
+
logger.error { "{ action: 'generate qrcode', params: #{params}, response: #{result}}" }
|
|
260
|
+
MiniProgram::ServiceResult.new(success: false,
|
|
261
|
+
error: result,
|
|
262
|
+
message: "获取二维码失败",
|
|
263
|
+
message_kind: :get_unlimited_qrcode_failed)
|
|
264
|
+
else
|
|
265
|
+
logger.info { "{ action: 'generate qrcode', params: #{params}, response: #{result} }" }
|
|
266
|
+
MiniProgram::ServiceResult.new(success: true,
|
|
267
|
+
data: { image: result },
|
|
268
|
+
message: "获取二维码成功",
|
|
269
|
+
message_kind: :get_unlimited_qrcode_success)
|
|
210
270
|
end
|
|
211
|
-
|
|
212
|
-
MiniProgram::ServiceResult.new(success: true, data: { image: result })
|
|
213
271
|
end
|
|
214
|
-
|
|
272
|
+
|
|
215
273
|
private
|
|
216
274
|
|
|
217
275
|
def get(api, payload = {})
|
|
@@ -222,7 +280,7 @@ module MiniProgram
|
|
|
222
280
|
end
|
|
223
281
|
|
|
224
282
|
Net::HTTP.get(uri)
|
|
225
|
-
end
|
|
283
|
+
end
|
|
226
284
|
|
|
227
285
|
def post(api, payload = {}, options = {})
|
|
228
286
|
uri = URI(api)
|
|
@@ -232,14 +290,16 @@ module MiniProgram
|
|
|
232
290
|
options = {
|
|
233
291
|
use_ssl: true
|
|
234
292
|
}.merge(options)
|
|
235
|
-
|
|
293
|
+
|
|
236
294
|
res = Net::HTTP.start(uri.host, uri.port, **options) do |http|
|
|
237
295
|
http.request(req, payload.to_json)
|
|
238
|
-
end
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
296
|
+
end
|
|
297
|
+
|
|
298
|
+
image_content_types = ["image/jpeg", "image/jpg", "image/gif", "image/png"]
|
|
299
|
+
|
|
300
|
+
return res.body if res["Content-Type"].in? image_content_types
|
|
301
|
+
|
|
302
|
+
JSON.parse(res.body)
|
|
243
303
|
end
|
|
244
304
|
|
|
245
305
|
def decrypt_phone_data(encrypted_data, iv, session_key)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
module MiniProgram
|
|
2
|
+
class RLogger
|
|
3
|
+
def initialize
|
|
4
|
+
raise Exceptions::InitializeDenied.new("please use 'RLogger.make' instead of 'RLogger.new'")
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
class << self
|
|
8
|
+
def make(given_filename)
|
|
9
|
+
filename = log_filename(given_filename)
|
|
10
|
+
|
|
11
|
+
# 如果已经存在日志对象,则返回已有的日志对象
|
|
12
|
+
logger = Logger.new(filename)
|
|
13
|
+
ActiveSupport::TaggedLogging.new(logger)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def log_filename(given_filename)
|
|
17
|
+
return STDOUT if ENV["RAILS_LOG_TO_STDOUT"].present?
|
|
18
|
+
|
|
19
|
+
if given_filename.class.in? [String, Symbol]
|
|
20
|
+
unless given_filename.end_with? ".log"
|
|
21
|
+
given_filename = "#{given_filename}.log"
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
Rails.root.join("log/#{given_filename}")
|
|
25
|
+
elsif given_filename.respond_to? :to_path
|
|
26
|
+
given_filename.to_path
|
|
27
|
+
else
|
|
28
|
+
raise Exception::UnsupportedParamType.new("\"log filename parameter must be a String type or a Symbol\"")
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -2,9 +2,9 @@ module MiniProgram
|
|
|
2
2
|
class ServiceResult
|
|
3
3
|
attr_accessor :success,
|
|
4
4
|
:error,
|
|
5
|
-
:error_type,
|
|
6
5
|
:data,
|
|
7
6
|
:message,
|
|
7
|
+
:message_kind,
|
|
8
8
|
:message_type
|
|
9
9
|
|
|
10
10
|
delegate :[], :[]=, to: :data
|
|
@@ -13,12 +13,15 @@ module MiniProgram
|
|
|
13
13
|
error: nil,
|
|
14
14
|
message: nil,
|
|
15
15
|
message_type: nil,
|
|
16
|
+
message_kind: nil,
|
|
16
17
|
data: {})
|
|
18
|
+
|
|
17
19
|
self.success = success
|
|
18
20
|
self.data = (data.presence || {}).with_indifferent_access
|
|
19
21
|
self.error = error
|
|
20
22
|
self.message = message
|
|
21
23
|
self.message_type = message_type
|
|
24
|
+
self.message_kind = message_kind
|
|
22
25
|
end
|
|
23
26
|
|
|
24
27
|
alias success? :success
|
|
@@ -49,12 +52,12 @@ module MiniProgram
|
|
|
49
52
|
|
|
50
53
|
def as_json(options = nil)
|
|
51
54
|
{
|
|
52
|
-
success
|
|
53
|
-
data
|
|
54
|
-
message
|
|
55
|
+
success:,
|
|
56
|
+
data:,
|
|
57
|
+
message:,
|
|
55
58
|
message_type: get_message_type,
|
|
56
|
-
|
|
57
|
-
|
|
59
|
+
message_kind:,
|
|
60
|
+
error:,
|
|
58
61
|
}
|
|
59
62
|
end
|
|
60
63
|
end
|
data/lib/mini_program/version.rb
CHANGED
data/lib/mini_program.rb
CHANGED
|
@@ -4,8 +4,9 @@ require "mini_program/client"
|
|
|
4
4
|
require "mini_program/msg"
|
|
5
5
|
require "mini_program/user"
|
|
6
6
|
require "application_controller_ext"
|
|
7
|
-
require "r_logger"
|
|
8
|
-
require "
|
|
7
|
+
require "mini_program/r_logger"
|
|
8
|
+
require "mini_program/log_formatter"
|
|
9
|
+
require "mini_program/service_result"
|
|
9
10
|
require "mocha"
|
|
10
11
|
|
|
11
12
|
module MiniProgram
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mini_program
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- ian
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-
|
|
11
|
+
date: 2022-03-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -63,6 +63,8 @@ files:
|
|
|
63
63
|
- app/views/mini_program/wechat/login.html.erb
|
|
64
64
|
- config/routes.rb
|
|
65
65
|
- lib/application_controller_ext.rb
|
|
66
|
+
- lib/exceptions/initialize_denied.rb
|
|
67
|
+
- lib/exceptions/unsupported_param_type.rb
|
|
66
68
|
- lib/generators/mini_program/install/USAGE
|
|
67
69
|
- lib/generators/mini_program/install/install_generator.rb
|
|
68
70
|
- lib/generators/mini_program/install/templates/initializer.rb
|
|
@@ -73,10 +75,11 @@ files:
|
|
|
73
75
|
- lib/mini_program/client.rb
|
|
74
76
|
- lib/mini_program/engine.rb
|
|
75
77
|
- lib/mini_program/msg.rb
|
|
78
|
+
- lib/mini_program/r_logger.rb
|
|
79
|
+
- lib/mini_program/request_result.rb
|
|
80
|
+
- lib/mini_program/service_result.rb
|
|
76
81
|
- lib/mini_program/user.rb
|
|
77
82
|
- lib/mini_program/version.rb
|
|
78
|
-
- lib/r_logger.rb
|
|
79
|
-
- lib/service_result.rb
|
|
80
83
|
- lib/tasks/mini_program_tasks.rake
|
|
81
84
|
homepage: https://github.com/bkyz/mini_program
|
|
82
85
|
licenses:
|
data/lib/r_logger.rb
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
module MiniProgram
|
|
2
|
-
class RLogger
|
|
3
|
-
def initialize
|
|
4
|
-
raise Exceptions::InitializeDenied.new("please use 'ILogger.make' instead of 'ILogger.new'")
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
class << self
|
|
8
|
-
def make(log_file)
|
|
9
|
-
@logger ||= {}
|
|
10
|
-
|
|
11
|
-
log_file_name = if log_file.class.in? [String, Symbol]
|
|
12
|
-
log_file_name = log_file.to_sym
|
|
13
|
-
|
|
14
|
-
unless log_file_name.to_s.end_with? ".log"
|
|
15
|
-
log_file_name = "#{log_file_name}.log"
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
"#{root_path}/#{log_file_name}"
|
|
19
|
-
elsif log_file.respond_to? :to_path
|
|
20
|
-
log_file.to_path
|
|
21
|
-
else
|
|
22
|
-
raise Exceptions::UnsupportdParamType.new("log file parameter only support 'File' or 'String' Type.")
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
# 如果已经存在日志对象,则返回已有的日志对象
|
|
26
|
-
@logger[log_file_name] ||= ::Logger.new(log_file_name)
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def root_path
|
|
30
|
-
@root ||= "#{Rails.root}/log"
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
end
|
|
36
|
-
end
|