nice_http 1.7.10 → 1.7.11

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
  SHA256:
3
- metadata.gz: 03b1d68a17324f108e8d32773b3ec3bea92822717cbf539951e9048bad1f8229
4
- data.tar.gz: 50d20e359b003ea4eade1f12d5b3284446467cfb8baf74d9062a026226e6b40a
3
+ metadata.gz: b25e87b3aa0fc0441ef89f640ab48775c51d18d15bfc9432436560f2ed419350
4
+ data.tar.gz: 7ebac02ad1e04ec6ceec028d3bd8755cfda8ae3c8e89900c49d1fbd313907ef2
5
5
  SHA512:
6
- metadata.gz: 1c07a6792ed676456b9eda248e78625569f291d87d30c8b9b511abfb558fd6daa6d55de5d5a85748b9a99ab54a6c77cb85e1f6bc8ea63a6d4db65f16a579ae5b
7
- data.tar.gz: f008518d2ee64203104718dbd5d214209f2aa9f0b986d366c7ceced756d51e3f85b4d63f54b46d6755576c84e72082d4b6da1fc095833e68fb8b69d34124d672
6
+ metadata.gz: 3ca1df8e19b1d4632bfdff00c9e358386597b10501006c9c7f877e4b311c11e0ceff6e53217b1843402e6a2c4dae01dbd304af3f59c29bcba5526e9d9a8d4133
7
+ data.tar.gz: d0c52aeee6739d242b7fd417dc622f05ea6b8d8517b77809d64a55945385230766b422753a4c07293231bc2f8e8bc1f269dd875c54a0202f6dee6c5a3caf2422
@@ -103,11 +103,11 @@ class NiceHttp
103
103
  num_requests: 0,
104
104
  started: nil,
105
105
  finished: nil,
106
- real_time_elapsed: nil,
106
+ real_time_elapsed: 0,
107
107
  time_elapsed: {
108
108
  total: 0,
109
109
  maximum: 0,
110
- minimum: 100000,
110
+ minimum: 1000000,
111
111
  average: 0,
112
112
  },
113
113
  method: {},
@@ -168,14 +168,18 @@ class NiceHttp
168
168
  # end
169
169
  # NiceHttp.add_stats(:customer, :create, started, Time.now)
170
170
  ######################################################
171
- def self.add_stats(name, state, started, finished, item=nil)
171
+ def self.add_stats(name, state, started, finished, item = nil)
172
172
  self.stats[:specific] ||= {}
173
- self.stats[:specific][name] ||= { num: 0, started: started, finished: finished, real_time_elapsed: nil, time_elapsed: { total: 0, maximum: 0, minimum: 1000, average: 0 }}
173
+ self.stats[:specific][name] ||= { num: 0, started: started, finished: started, real_time_elapsed: 0, time_elapsed: { total: 0, maximum: 0, minimum: 100000, average: 0 } }
174
174
  self.stats[:specific][name][:num] += 1
175
175
 
176
+ if started < self.stats[:specific][name][:finished]
177
+ self.stats[:specific][name][:real_time_elapsed] += (finished - self.stats[:specific][name][:finished])
178
+ else
179
+ self.stats[:specific][name][:real_time_elapsed] += (finished - started)
180
+ end
176
181
  self.stats[:specific][name][:finished] = finished
177
- self.stats[:specific][name][:real_time_elapsed] = finished - self.stats[:specific][name][:started]
178
-
182
+
179
183
  time_elapsed = self.stats[:specific][name][:time_elapsed]
180
184
  time_elapsed[:total] += finished - started
181
185
  if time_elapsed[:maximum] < (finished - started)
@@ -187,7 +191,7 @@ class NiceHttp
187
191
  end
188
192
  end
189
193
  if time_elapsed[:minimum] > (finished - started)
190
- time_elapsed[:minimum] = (finished - started)
194
+ time_elapsed[:minimum] = (finished - started)
191
195
  if !item.nil?
192
196
  time_elapsed[:item_minimum] = item
193
197
  elsif Thread.current.name.to_s != ""
@@ -196,16 +200,21 @@ class NiceHttp
196
200
  end
197
201
  time_elapsed[:average] = time_elapsed[:total] / self.stats[:specific][name][:num]
198
202
 
199
- self.stats[:specific][name][state] ||= { num: 0, started: started, finished: finished, real_time_elapsed: nil, time_elapsed: { total: 0, maximum: 0, minimum: 1000, average: 0 }, items: [] }
203
+ self.stats[:specific][name][state] ||= { num: 0, started: started, finished: started, real_time_elapsed: 0, time_elapsed: { total: 0, maximum: 0, minimum: 1000, average: 0 }, items: [] }
200
204
  self.stats[:specific][name][state][:num] += 1
205
+ if started < self.stats[:specific][name][state][:finished]
206
+ self.stats[:specific][name][state][:real_time_elapsed] += (finished - self.stats[:specific][name][state][:finished])
207
+ else
208
+ self.stats[:specific][name][state][:real_time_elapsed] += (finished - started)
209
+ end
210
+
201
211
  self.stats[:specific][name][state][:finished] = finished
202
- self.stats[:specific][name][state][:real_time_elapsed] = finished - self.stats[:specific][name][:started]
203
212
 
204
213
  self.stats[:specific][name][state][:items] << item unless item.nil? or self.stats[:specific][name][state][:items].include?(item)
205
214
  time_elapsed = self.stats[:specific][name][state][:time_elapsed]
206
215
  time_elapsed[:total] += finished - started
207
216
  if time_elapsed[:maximum] < (finished - started)
208
- time_elapsed[:maximum] = (finished - started)
217
+ time_elapsed[:maximum] = (finished - started)
209
218
  if !item.nil?
210
219
  time_elapsed[:item_maximum] = item
211
220
  elsif Thread.current.name.to_s != ""
@@ -213,7 +222,7 @@ class NiceHttp
213
222
  end
214
223
  end
215
224
  if time_elapsed[:minimum] > (finished - started)
216
- time_elapsed[:minimum] = (finished - started)
225
+ time_elapsed[:minimum] = (finished - started)
217
226
  if !item.nil?
218
227
  time_elapsed[:item_minimum] = item
219
228
  elsif Thread.current.name.to_s != ""
@@ -226,7 +235,7 @@ class NiceHttp
226
235
  ######################################################
227
236
  # It will save the NiceHttp.stats on different files, each key of the hash in a different file.
228
237
  #
229
- # @param file_name [String] path and file name to be used to store the stats.
238
+ # @param file_name [String] path and file name to be used to store the stats.
230
239
  # In case no one supplied it will be used the value in NiceHttp.log and it will be saved on YAML format.
231
240
  # In case extension is .yaml will be saved on YAML format.
232
241
  # In case extension is .json will be saved on JSON format.
@@ -236,28 +245,29 @@ class NiceHttp
236
245
  # NiceHttp.save_stats('./stats/my_stats.yaml')
237
246
  # NiceHttp.save_stats('./stats/my_stats.json')
238
247
  ######################################################
239
- def self.save_stats(file_name = '')
240
- if file_name == ''
248
+ def self.save_stats(file_name = "")
249
+ if file_name == ""
241
250
  if self.log.is_a?(String)
242
251
  file_name = self.log
243
252
  else
244
- file_name = './nice_http.log'
253
+ file_name = "./nice_http.log"
245
254
  end
246
255
  end
256
+ require "fileutils"
257
+ FileUtils.mkdir_p File.dirname(file_name)
247
258
  if file_name.match?(/\.json$/)
248
- require 'json'
259
+ require "json"
249
260
  self.stats.keys.each do |key|
250
261
  File.open("#{file_name.gsub(/.json$/, "_stats_")}#{key}.json", "w") { |file| file.write(self.stats[key].to_json) }
251
262
  end
252
263
  else
253
- require 'yaml'
264
+ require "yaml"
254
265
  self.stats.keys.each do |key|
255
266
  File.open("#{file_name.gsub(/.\w+$/, "_stats_")}#{key}.yaml", "w") { |file| file.write(self.stats[key].to_yaml) }
256
267
  end
257
268
  end
258
269
  end
259
270
 
260
-
261
271
  ######################################################
262
272
  # Creates a new http connection.
263
273
  #
@@ -363,6 +373,8 @@ class NiceHttp
363
373
  folder += "/" unless log_filename.start_with?("/")
364
374
  log_filename = folder + log_filename
365
375
  end
376
+ require "fileutils"
377
+ FileUtils.mkdir_p File.dirname(log_filename)
366
378
  unless Dir.exist?(File.dirname(log_filename))
367
379
  @logger = Logger.new nil
368
380
  raise InfoMissing, :log, "Wrong directory specified for logs.\n"
@@ -182,7 +182,7 @@ module NiceHttpManageResponse
182
182
  @logger.fatal stack
183
183
  @logger.fatal "manage_response Error on method #{method_s} "
184
184
  end
185
-
185
+
186
186
  @start_time = nil
187
187
  end
188
188
 
@@ -198,8 +198,8 @@ module NiceHttpManageResponse
198
198
 
199
199
  hash[:num_requests] = 0
200
200
  hash[:started] = @start_time
201
- hash[:finished] = @finish_time
202
- hash[:real_time_elapsed] = @finish_time - @start_time
201
+ hash[:finished] = @start_time
202
+ hash[:real_time_elapsed] = 0
203
203
  hash[:time_elapsed] = {
204
204
  total: 0,
205
205
  maximum: 0,
@@ -213,9 +213,14 @@ module NiceHttpManageResponse
213
213
  end
214
214
  end
215
215
  hash[:num_requests] += 1
216
- hash[:started] = @start_time if hash[:started].nil?
216
+ hash[:started] = hash[:finished] = @start_time if hash[:started].nil?
217
+
218
+ if @start_time < hash[:finished]
219
+ hash[:real_time_elapsed] += (@finish_time - hash[:finished])
220
+ else
221
+ hash[:real_time_elapsed] += (@finish_time - @start_time)
222
+ end
217
223
  hash[:finished] = @finish_time
218
- hash[:real_time_elapsed] = @finish_time - hash[:started]
219
224
 
220
225
  hash[:time_elapsed][:total] += @response[:time_elapsed]
221
226
  hash[:time_elapsed][:maximum] = @response[:time_elapsed] if @response[:time_elapsed] > hash[:time_elapsed][:maximum]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nice_http
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.10
4
+ version: 1.7.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mario Ruiz