tapping_device 0.4.10 → 0.4.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: 23d3086bd40ed2665b040147abdbd7ca9cf2fd6e8d0e4300e0dfe8c6c14def70
4
- data.tar.gz: b980e4cbf079204151b81645aa9c097254c0be1f514c2e09482ee3a4ede1ec68
3
+ metadata.gz: d8328ddf34918bc8be607eb8bad74e3588f435a13dcefdf0690dd7f03ec4774f
4
+ data.tar.gz: d34dd35817a235e92e12f7c086a3911d11c8564851a29e3ae31676b9b699f67f
5
5
  SHA512:
6
- metadata.gz: 4d731a0cc9436e48354a55afe094cd16ce93778876fd541702813645be21e2d77cdfa0580b93486c0a59ddf48c614df9106d752483842da5bec2bb19ee06e97a
7
- data.tar.gz: 1de7093fd6b474260a7b819ddffa8839dc26ff5e5553d450084515e9ce6b1d69cb97066c69fa49f48777548e18768dd52dc8114efc5a469e63e870f3005086c2
6
+ metadata.gz: c12632e9ecdfed8970b36f191f2d2ea736cf1dc61a12096559cf25dfd791ee22c240e80d0230ffad4dc334d8dd9e6071efb1d6372256e339cd4387f79316a995
7
+ data.tar.gz: 92a81f59e1f130ea25a41e58fb06c4ca153fa0eaa021094c59782737d16af34160ccb257a42a1bdd0a589d3e739a17ebf126c2cf72e233a0b61eab133825311e
data/Gemfile.lock CHANGED
@@ -1,27 +1,25 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tapping_device (0.4.10)
4
+ tapping_device (0.4.11)
5
5
  activerecord (>= 5.2)
6
- awesome_print
7
6
 
8
7
  GEM
9
8
  remote: https://rubygems.org/
10
9
  specs:
11
- activemodel (6.0.2.1)
12
- activesupport (= 6.0.2.1)
13
- activerecord (6.0.2.1)
14
- activemodel (= 6.0.2.1)
15
- activesupport (= 6.0.2.1)
16
- activesupport (6.0.2.1)
10
+ activemodel (6.0.2.2)
11
+ activesupport (= 6.0.2.2)
12
+ activerecord (6.0.2.2)
13
+ activemodel (= 6.0.2.2)
14
+ activesupport (= 6.0.2.2)
15
+ activesupport (6.0.2.2)
17
16
  concurrent-ruby (~> 1.0, >= 1.0.2)
18
17
  i18n (>= 0.7, < 2)
19
18
  minitest (~> 5.1)
20
19
  tzinfo (~> 1.1)
21
20
  zeitwerk (~> 2.2)
22
- awesome_print (1.8.0)
23
21
  coderay (1.1.2)
24
- concurrent-ruby (1.1.5)
22
+ concurrent-ruby (1.1.6)
25
23
  database_cleaner (1.7.0)
26
24
  diff-lcs (1.3)
27
25
  docile (1.3.2)
@@ -33,7 +31,7 @@ GEM
33
31
  pry (0.12.2)
34
32
  coderay (~> 1.1.0)
35
33
  method_source (~> 0.9.0)
36
- rake (10.0.4)
34
+ rake (13.0.1)
37
35
  rspec (3.8.0)
38
36
  rspec-core (~> 3.8.0)
39
37
  rspec-expectations (~> 3.8.0)
@@ -54,9 +52,9 @@ GEM
54
52
  simplecov-html (0.10.2)
55
53
  sqlite3 (1.4.1)
56
54
  thread_safe (0.3.6)
57
- tzinfo (1.2.6)
55
+ tzinfo (1.2.7)
58
56
  thread_safe (~> 0.1)
59
- zeitwerk (2.2.2)
57
+ zeitwerk (2.3.0)
60
58
 
61
59
  PLATFORMS
62
60
  ruby
@@ -65,7 +63,7 @@ DEPENDENCIES
65
63
  bundler (~> 2.0)
66
64
  database_cleaner
67
65
  pry
68
- rake (~> 10.0)
66
+ rake (~> 13.0)
69
67
  rspec (~> 3.0)
70
68
  simplecov (= 0.17.1)
71
69
  sqlite3 (>= 1.3.6)
data/README.md CHANGED
@@ -113,7 +113,7 @@ Called :apply_discount FROM /Users/st0012/projects/tapping_device-demo/app/servi
113
113
  It prints the object's calls in detail (including call location, arguments, and return value). It's useful for observing an object's behavior when debugging.
114
114
 
115
115
  #### Options
116
- - `awesome_print:` - will print calls in prettier format if set to `true`. Default is `false`
116
+ - `inspect:` - will print objects with `#inspect` instead of `#to_s` if set to `true` (very noisy when having large objects). Default is `false`.
117
117
 
118
118
  ```ruby
119
119
  class OrdersController < ApplicationController
@@ -1,4 +1,3 @@
1
- require "awesome_print"
2
1
  class TappingDevice
3
2
  class Payload < Hash
4
3
  ATTRS = [
@@ -52,14 +51,9 @@ class TappingDevice
52
51
  end
53
52
  end
54
53
 
55
- def detail_call_info(awesome_print: false)
56
- arguments_output = arguments.inspect
57
- return_value_output = return_value.inspect
58
-
59
- if awesome_print
60
- arguments_output = arguments.ai(ruby19_syntax: true, multiline: false)
61
- return_value_output = return_value.ai(ruby19_syntax: true, multiline: false)
62
- end
54
+ def detail_call_info(inspect: false)
55
+ arguments_output = generate_string_result(arguments, inspect)
56
+ return_value_output = generate_string_result(return_value, inspect)
63
57
 
64
58
  <<~MSG
65
59
  #{method_name_and_defined_class}
@@ -69,5 +63,42 @@ class TappingDevice
69
63
 
70
64
  MSG
71
65
  end
66
+
67
+ def generate_string_result(obj, inspect)
68
+ case obj
69
+ when Array
70
+ array_to_string(obj, inspect)
71
+ when Hash
72
+ hash_to_string(obj, inspect)
73
+ when String
74
+ "\"#{obj}\""
75
+ else
76
+ inspect ? obj.inspect : obj.to_s
77
+ end
78
+ end
79
+
80
+ def array_to_string(array, inspect)
81
+ elements_string = array.map do |elem|
82
+ generate_string_result(elem, inspect)
83
+ end.join(", ")
84
+ "[#{elements_string}]"
85
+ end
86
+
87
+ def hash_to_string(hash, inspect)
88
+ elements_string = hash.map do |key, value|
89
+ "#{key.to_s}: #{generate_string_result(value, inspect)}"
90
+ end.join(", ")
91
+ "{#{elements_string}}"
92
+ end
93
+
94
+ def obj_to_string(element, inspect)
95
+ to_string_method = inspect ? :inspect : :to_s
96
+
97
+ if !inspect && element.is_a?(String)
98
+ "\"#{element}\""
99
+ else
100
+ element.send(to_string_method)
101
+ end
102
+ end
72
103
  end
73
104
  end
@@ -21,10 +21,10 @@ class TappingDevice
21
21
  end
22
22
 
23
23
  def print_calls_in_detail(target, options = {})
24
- awesome_print = options.delete(:awesome_print)
24
+ inspect = options.delete(:inspect)
25
25
 
26
26
  tap_on!(target, options) do |payload|
27
- puts(payload.detail_call_info(awesome_print: awesome_print))
27
+ puts(payload.detail_call_info(inspect: inspect))
28
28
  end
29
29
  end
30
30
 
@@ -1,3 +1,3 @@
1
1
  class TappingDevice
2
- VERSION = "0.4.10"
2
+ VERSION = "0.4.11"
3
3
  end
@@ -32,13 +32,11 @@ Gem::Specification.new do |spec|
32
32
  spec.add_dependency "activerecord", ">= 5.2"
33
33
  end
34
34
 
35
- spec.add_dependency "awesome_print"
36
-
37
35
  spec.add_development_dependency "sqlite3", ">= 1.3.6"
38
36
  spec.add_development_dependency "database_cleaner"
39
37
  spec.add_development_dependency "bundler", "~> 2.0"
40
38
  spec.add_development_dependency "pry"
41
- spec.add_development_dependency "rake", "~> 10.0"
39
+ spec.add_development_dependency "rake", "~> 13.0"
42
40
  spec.add_development_dependency "rspec", "~> 3.0"
43
41
  spec.add_development_dependency "simplecov", "0.17.1"
44
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tapping_device
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.10
4
+ version: 0.4.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - st0012
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-05 00:00:00.000000000 Z
11
+ date: 2020-04-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '5.2'
27
- - !ruby/object:Gem::Dependency
28
- name: awesome_print
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: sqlite3
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +86,14 @@ dependencies:
100
86
  requirements:
101
87
  - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: '10.0'
89
+ version: '13.0'
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: '10.0'
96
+ version: '13.0'
111
97
  - !ruby/object:Gem::Dependency
112
98
  name: rspec
113
99
  requirement: !ruby/object:Gem::Requirement