that_object_is_so_basic 0.0.3 → 0.0.4

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: b3240b6bc2376e8bbd65e92e3efe56d316d9f38c914e56aa0a023e4aafce5f9e
4
- data.tar.gz: c07e199fd6558461208354792815bfc6dc5ed3b3c4ebb06563259c8064fb851c
3
+ metadata.gz: d70e81573066f449fdfe140c9d0bde90e50e1b893003496531cd4a1259a83570
4
+ data.tar.gz: c009ebb990e7afba8586ff5004ca882901497deb6caf0920e3fe8daefe105b55
5
5
  SHA512:
6
- metadata.gz: 629bd1061c85d0f22d9b77f9f69e86b9c624fee8ad996acba880e335cda66afe5555771914f8f9a56efe43bcea27edbd9a42ab2b519a3ccb12d8da7cb4ee6e58
7
- data.tar.gz: 20d2695a437b94d17598ba8687871b9179d708cb16f56ef3738dd61aa279c1c6f5d9e75322606aba72e3f905afc35e9d4f579979798845c6b85f2153ec704a0c
6
+ metadata.gz: cd66e59107d25c71448709ca9a41be9e1978693c71f7bf6730fe8e3a4618be0d7c091e9a2ba69266db22f8db715801455980d2ed218476d59a7573035ac3212b
7
+ data.tar.gz: 8286f9a068be52d055806aef6b5362e049d3148bb67aaeb2df20b470ba797bc246ee1eb8812782a623fa5f7aaa924399a9c4619da7bde4f357750727ce2c56d0
data/.rubocop.yml ADDED
@@ -0,0 +1,56 @@
1
+ # Rubocop override settings
2
+
3
+ AllCops:
4
+ TargetRubyVersion: 2.0
5
+
6
+ Metrics/LineLength:
7
+ Max: 120
8
+ Exclude:
9
+ - config_module.gemspec
10
+ - "uspec/**/*"
11
+
12
+ Naming/PredicateName:
13
+ Enabled: false
14
+
15
+ Style/PreferredHashMethods:
16
+ Exclude:
17
+ - "**/*"
18
+
19
+ Style/Documentation:
20
+ Enabled: false
21
+
22
+ Style/MethodDefParentheses:
23
+ Enabled: false
24
+
25
+ Style/ParallelAssignment:
26
+ Enabled: false
27
+
28
+ Style/SingleLineMethods:
29
+ Enabled: false
30
+
31
+ Style/Alias:
32
+ Enabled: false
33
+
34
+ Style/CaseEquality:
35
+ Enabled: false
36
+
37
+ Style/SymbolArray:
38
+ Enabled: false
39
+
40
+ Bundler/OrderedGems:
41
+ Enabled: false
42
+
43
+ Style/StringLiterals:
44
+ EnforcedStyle: double_quotes
45
+
46
+ Style/StringLiteralsInInterpolation:
47
+ EnforcedStyle: double_quotes
48
+
49
+ Layout/AccessModifierIndentation:
50
+ EnforcedStyle: outdent
51
+
52
+ Style/EnforcedStyleForMultiline:
53
+ EnforcedStyle: consistent_comma
54
+
55
+ Naming/RescuedExceptionsVariableName:
56
+ PreferredName: error
data/lib/toisb/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module TOISB
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/toisb/wrapper.rb CHANGED
@@ -7,10 +7,19 @@ module TOISB; class Wrapper
7
7
 
8
8
  # Checks for an inspect method and falls back to Superclass/Class:ID
9
9
  def inspector
10
- fallback = "#<#{superklass}/#{klass}:0x#{get_id}>"
11
- klass && klass.public_method_defined?(:inspect) ? object.inspect : fallback
10
+ inspector!
12
11
  rescue
13
- fallback
12
+ simple_inspector
13
+ end
14
+
15
+ # This version doesn't rescue when #inspect raises
16
+ def inspector!
17
+ klass && klass.public_method_defined?(:inspect) ? object.inspect : simple_inspector
18
+ end
19
+
20
+ # Simple inspect-ish output with a low chance of failure
21
+ def simple_inspector
22
+ "#<#{superklass}/#{klass}:0x#{get_id}>"
14
23
  end
15
24
 
16
25
  # Obtain the singleton class of an object
@@ -47,3 +47,15 @@ spec "can get the ancestors of a BasicObject subclass" do
47
47
  actual.size == expected || actual
48
48
  end
49
49
 
50
+ spec "#inspector! doesn't mask exceptions if the associated inspect method fails" do
51
+ class ::FailingInspectObject < BasicObject
52
+ def inspect; ::Kernel.raise ::NotImplementedError, "This is supposed to fail"; end;
53
+ end
54
+ inspect_fail = TOISB.wrap ::FailingInspectObject.new
55
+
56
+ begin
57
+ inspect_fail.inspector!
58
+ rescue NotImplementedError => error
59
+ error.message.include?("supposed to fail") || error
60
+ end
61
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: that_object_is_so_basic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony M. Cook
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-17 00:00:00.000000000 Z
11
+ date: 2019-06-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: uspec
@@ -61,6 +61,7 @@ extra_rdoc_files: []
61
61
  files:
62
62
  - ".editorconfig"
63
63
  - ".gitignore"
64
+ - ".rubocop.yml"
64
65
  - ".ruby-version"
65
66
  - ".travis.yml"
66
67
  - Gemfile