gcr 0.0.1 → 0.0.2

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 (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/gcr.rb +18 -0
  3. data/lib/gcr/cassette.rb +16 -11
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 654092852f61d95659958cc4b7bdc57863d92474
4
- data.tar.gz: 1475ecc16fb24ca8c8b69e63ff5ff63fcfc3cbea
3
+ metadata.gz: f696a250611b0cbadc2e91cddd237cf50b2e27b9
4
+ data.tar.gz: 88a409dd0e5e79c4ec79090586e30c423c1cf422
5
5
  SHA512:
6
- metadata.gz: 14a2b562b9238808de93eea48fbb2ced1cf8a5ba0d52b1c8bdb009f1bcf38179c5387d29a57be9c1ab4efca4efd99e99ed4f60b7c86e3909d681703fce8f5f95
7
- data.tar.gz: 8b8a4c32de38ba8dffa4801db17076617e8763080825e4b7e4942531490adbcde99f9a69f4fe99389836ed502969f32d3992ce4883f7d9dd09d02ac2fbc6bdb8
6
+ metadata.gz: ae01f371856584277568fabb390ed6a6ff61aebb7f980f0917e26c3f5d6ae69df394a93c8c3a0601270d1c5039e4308d3f97db4741d3b44f81cec36a6c8a2380
7
+ data.tar.gz: cc4e7f95cbdea865881569ad00e797d1fe9fb5e86971c413f77d28c48a9804a988a6241fcd978083f19ae4022253eaa1746b5d94e2c7f38193d2b04781f6d998
data/lib/gcr.rb CHANGED
@@ -38,6 +38,24 @@ module GCR
38
38
  @stub || (raise ConfigError, "no cassette dir configured")
39
39
  end
40
40
 
41
+ def insert(name)
42
+ @cassette = Cassette.new(name)
43
+ if @cassette.exist?
44
+ @cassette.start_playing
45
+ else
46
+ @cassette.start_recording
47
+ end
48
+ end
49
+
50
+ def remove
51
+ if @cassette.exist?
52
+ @cassette.stop_playing
53
+ else
54
+ @cassette.stop_recording
55
+ end
56
+ @cassette = nil
57
+ end
58
+
41
59
  def cassette
42
60
  @cassette
43
61
  end
@@ -47,27 +47,23 @@ class GCR::Cassette
47
47
  #
48
48
  # Returns nothing.
49
49
  def record(&blk)
50
- install_record_hook
50
+ start_recording
51
51
  blk.call
52
- save
53
52
  ensure
54
- remove_hook
53
+ stop_recording
55
54
  end
56
55
 
57
56
  # Play recorded GRPC responses.
58
57
  #
59
58
  # Returns nothing.
60
59
  def play(&blk)
61
- load
62
- install_play_hook
60
+ start_playing
63
61
  blk.call
64
62
  ensure
65
- remove_hook
63
+ stop_playing
66
64
  end
67
65
 
68
- private
69
-
70
- def install_record_hook
66
+ def start_recording
71
67
  GCR.stub.class.class_eval do
72
68
  alias_method :orig_request_response, :request_response
73
69
 
@@ -81,7 +77,16 @@ class GCR::Cassette
81
77
  end
82
78
  end
83
79
 
84
- def install_play_hook
80
+ def stop_recording
81
+ GCR.stub.class.class_eval do
82
+ alias_method :request_response, :orig_request_response
83
+ end
84
+ save
85
+ end
86
+
87
+ def start_playing
88
+ load
89
+
85
90
  GCR.stub.class.class_eval do
86
91
  alias_method :orig_request_response, :request_response
87
92
 
@@ -97,7 +102,7 @@ class GCR::Cassette
97
102
  end
98
103
  end
99
104
 
100
- def remove_hook
105
+ def stop_playing
101
106
  GCR.stub.class.class_eval do
102
107
  alias_method :request_response, :orig_request_response
103
108
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gcr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - mastahyeti
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-10 00:00:00.000000000 Z
11
+ date: 2017-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf