rreplay 0.2.0 → 0.2.1

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
  SHA256:
3
- metadata.gz: 14173bb308c83ce39166a267e8f1477616aa6f51b24fc68e2df4e9f9accfa292
4
- data.tar.gz: d472b8bbe77689121115f7d40758ff2a9c928a22057771f3237a3b181fc396ef
3
+ metadata.gz: a760a5c3adaeb64c64bbdcfd76733d09ebf9f5114aec60c8bd950ffffff63caf
4
+ data.tar.gz: aadec8a45a78ca6e65105b99a7f6528f97b568291b55d823746dc41cf1d42e9a
5
5
  SHA512:
6
- metadata.gz: 4ac669fe52af177b7f7133e9d842315137e361eb5c7875ff673f8e12f83a83b440a5523f61dc82c32e5ddc80ad7427c35511ae9109ce91ba9071bf8a6e5b24a5
7
- data.tar.gz: e2dcf2b4772208628c4d8b63ffa194b1c93f10424f92bb7c2d3840b13ec0fb646273da8d48f09b486d38c7f3d5d96fd58ecfe58ab8c37aafe99770ab2a1733de
6
+ metadata.gz: 209402c25a45afc3bf0e158468e91d267051766dad55984a40b6cbb4dd06962cf5f94887925eda357549d91762979ef17106faf1438bbb69c4c980622003fe03
7
+ data.tar.gz: 42820a3689cb753c0c35104dc4a722d0543bd4bbe4fd5e55695cbbcb585a1c7674753b258063938d8322f6776b43c68113b1b03e610d46bef7819f3031149bbd
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rreplay (0.1.2)
4
+ rreplay (0.2.1)
5
5
  msgpack
6
6
  rack
7
7
 
data/lib/rack/rreplay.rb CHANGED
@@ -26,6 +26,7 @@ module Rack
26
26
  ::File.join(directory, ::Rreplay::LOG_FILE_NAME_PREFIX + format.file_suffix),
27
27
  shift_age: 10,
28
28
  shift_size: 1048576,
29
+ binmode: format.is_binary?
29
30
  )
30
31
  else
31
32
  logger = logger
@@ -1,14 +1,16 @@
1
1
  module Rreplay
2
2
  module Format
3
- Format = Struct.new(:file_suffix, :serializer, :deserializer)
3
+ Format = Struct.new(:file_suffix, :serializer, :deserializer, :is_binary?)
4
4
 
5
5
  Json = Format.new('.json',
6
6
  ->(str) { JSON.dump(str) },
7
7
  ->(str) { JSON.parse(str) },
8
+ false,
8
9
  )
9
10
  Msgpack = Format.new('.msgpack',
10
11
  ->(str) { MessagePack.pack(str) },
11
12
  ->(str) { MessagePack.unpack(str) },
13
+ true,
12
14
  )
13
15
 
14
16
  class << self
@@ -34,6 +34,8 @@ module Rreplay
34
34
  end
35
35
  end
36
36
  end
37
+ rescue Interrupt
38
+ @debugger.out { "Interrupted." }
37
39
  end
38
40
 
39
41
  private
@@ -71,7 +73,7 @@ module Rreplay
71
73
  # @param record [Hash]
72
74
  # @param result [Http::Result]
73
75
  def call(record, result)
74
- response_json = {
76
+ response_hash = {
75
77
  status: result.response.code,
76
78
  headers: record['response']['headers'].reduce({}) do |acc, (key, _)|
77
79
  acc.merge({key => result.response[key]})
@@ -79,7 +81,7 @@ module Rreplay
79
81
  body: Array(result.response.body),
80
82
  }
81
83
 
82
- @builder.call(record, result.response_time, response_json)
84
+ @builder.call(record, result.response_time, response_hash)
83
85
  end
84
86
 
85
87
  private
@@ -101,17 +103,16 @@ module Rreplay
101
103
  end
102
104
 
103
105
  def build_string(record, response_time, actual_response)
104
-
105
106
  <<~EOF
106
107
  #{record['uuid']}:
107
108
  * request:
108
- #{record['request']}
109
+ #{record['request'].to_json}
109
110
  * response(actual):
110
111
  #{response_time} sec
111
- #{actual_response}
112
+ #{actual_response.to_json}
112
113
  * response(recorded):
113
114
  #{record['response_time']} sec
114
- #{record['response']}
115
+ #{record['response'].to_json}
115
116
  EOF
116
117
  end
117
118
  end
@@ -153,7 +154,7 @@ module Rreplay
153
154
  :use_ssl => uri.scheme == 'https') { |http|
154
155
  http.request(request)
155
156
  }
156
- Result.new(response, Time.now - start_time)
157
+ Result.new(response, (Time.now - start_time).to_s)
157
158
  end
158
159
  end
159
160
  end
data/rreplay.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "rreplay"
3
- spec.version = "0.2.0"
3
+ spec.version = "0.2.1"
4
4
  spec.authors = ["petitviolet"]
5
5
  spec.email = ["violethero0820@gmail.com"]
6
6
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rreplay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - petitviolet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-31 00:00:00.000000000 Z
11
+ date: 2020-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack