rreplay 0.2.0 → 0.2.1

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