object_identifier 0.8.0 → 0.9.0

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: 5b85174f7e95e1acad9f62da0d27dd867435668009aaf20d37a77de955835837
4
- data.tar.gz: bbf1820134da13adc7bf0cc1ed41653afa63a0b0023b205d5b5179156227f202
3
+ metadata.gz: '094534f4602cabb611358d4935e2ea86b9f5904537d63ca7cee56e5fad764211'
4
+ data.tar.gz: 033ba507ffe4a2ff276b7bd41a8f69dd84c610b13bba7a6427e3033f7904792e
5
5
  SHA512:
6
- metadata.gz: 0beefb1a00fe450580879bcd8b1095f30a412eaa2b6a32033c614753b828eb6a4bb96e5d891935666d82cde9233bf73c010162d9bccb345a4946ab4f4e7f2833
7
- data.tar.gz: 48b59efffdb83a460f471d6ba957b6ba3166b3aaf6cc1b19d7d17afd4a274b607de02a4f853f51806489f56de77bfaa4c2cc2461665f8dd5bee61f8dd4b27145
6
+ metadata.gz: e782bac889af1fc3c4db0f65b43a00386553e992bd0c8b90d2a705d56507d72a0f7367edbd6e051f4b49e1a97265a783815775bad51b92fd08d55f140d9c2cdf
7
+ data.tar.gz: 65da82e615b7ce4b1e4c53007c2e659df7e68fe5d968e8bc4b7f616629319400b015284d53624ce43c5611ed84eb722e2b5002f800fa4832131fb06817ef6be7
data/README.md CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  [![Gem Version](https://img.shields.io/github/v/release/pdobb/object_identifier)](https://img.shields.io/github/v/release/pdobb/object_identifier)
4
4
  [![CI Actions](https://github.com/pdobb/object_identifier/actions/workflows/ci.yml/badge.svg)](https://github.com/pdobb/object_identifier/actions)
5
- [![Maintainability](https://api.codeclimate.com/v1/badges/0b737a72d16ec755c1ff/maintainability)](https://codeclimate.com/github/pdobb/object_identifier/maintainability)
6
5
 
7
6
  Object Identifier allows quick, easy, and uniform identification of an object by inspecting its class name and outputting any desirable attributes/methods. It is great for logging, sending descriptive notification messages, etc.
8
7
 
@@ -133,36 +132,6 @@ The number of results that will be identified from a collection can be truncated
133
132
  {}.identify # => [no objects]
134
133
  ```
135
134
 
136
- ## Custom Object Identifiers
137
-
138
- Internally, Object Identifier calls `inspect_lit` to return a "literally-inspected" string representation of an object. This works because Object, itself, is monkey-patched to define `inspect_lit` which just returns `inspect`. This is sufficient for most objects, but some objects will benefit from defining special output from `inspect_lit`.
139
-
140
- Object Identifier defines `inspect_lit` on three other core objects: String, Symbol, and BigDecimal.
141
-
142
- ```ruby
143
- "a_string".inspect_lit # => "\"a_string\""
144
- :a_symbol.inspect_lit # => ":\"a_symbol\""
145
- BigDecimal(1.99, 3).inspect_lit # => "<BD:1.99>"
146
- ```
147
-
148
- To identify an object in a special way, just define `inspect_lit` to return a custom String.
149
-
150
- ```ruby
151
- class MyValueObject
152
- def initialize(val)
153
- @val = val
154
- end
155
-
156
- def inspect_lit
157
- "#{@val} Meters"
158
- end
159
- end
160
-
161
- my_value_object = MyValueObject.new(42)
162
- OpenStruct.new(my_value: my_value_object).identify(:my_value)
163
- # => "OpenStruct[my_value:42 Meters]"
164
- ```
165
-
166
135
  ## Supporting Gems
167
136
 
168
137
  Object Identifier works great with the [Object Inspector](https://github.com/pdobb/object_inspector) gem.
@@ -191,7 +160,7 @@ To install this gem onto your local machine, run `bundle exec rake install`.
191
160
 
192
161
  ### Testing
193
162
 
194
- To test this gem (gemwork):
163
+ To test this gem:
195
164
 
196
165
  ```bash
197
166
  rake
@@ -210,7 +179,7 @@ npx prettier . --write
210
179
 
211
180
  ### Releases
212
181
 
213
- To release a new version of Gemwork to RubyGems:
182
+ To release a new version of this gem to RubyGems:
214
183
 
215
184
  1. Update the version number in `version.rb`
216
185
  2. Update `CHANGELOG.md`
@@ -2,14 +2,6 @@
2
2
 
3
3
  # Reopen the core Object class to add {#identify} to all objects.
4
4
  class Object
5
- # Standard #inspect for any object that doesn't override this method. This
6
- # method is meant to make an object's type inherently obvious inspected.
7
- #
8
- # @return [String] a String-literal representation of this object
9
- def inspect_lit
10
- inspect
11
- end
12
-
13
5
  # Instance method for constructing a self-identifying string for any given
14
6
  # object or list of objects.
15
7
  #
@@ -23,14 +23,14 @@ class ObjectIdentifier::StringFormatter < ObjectIdentifier::BaseFormatter
23
23
 
24
24
  private
25
25
 
26
- def format_collection
27
- Collection.new(objects, parameters).call
28
- end
29
-
30
26
  def format_item(object = objects.first)
31
27
  Item.new(object, parameters).call
32
28
  end
33
29
 
30
+ def format_collection
31
+ Collection.new(objects, parameters).call
32
+ end
33
+
34
34
  # ObjectIdentifier::StringFormatter::Collection formats a collection-specific
35
35
  # identification String, which will also necessarily be composed of
36
36
  # {ObjectIdentifier::StringFormatter::Item} identification Strings.
@@ -122,9 +122,9 @@ class ObjectIdentifier::StringFormatter < ObjectIdentifier::BaseFormatter
122
122
  def attributes_formatter
123
123
  @attributes_formatter ||=
124
124
  if attributes_hash.one?
125
- ->(_key, value) { value.inspect_lit }
125
+ ->(_key, value) { value.inspect }
126
126
  else # attributes_hash.size > 1
127
- ->(key, value) { "#{key}:#{value.inspect_lit}" }
127
+ ->(key, value) { "#{key}:#{value.inspect}" }
128
128
  end
129
129
  end
130
130
 
@@ -2,5 +2,5 @@
2
2
 
3
3
  module ObjectIdentifier
4
4
  # The current ObjectIdentifier gem version.
5
- VERSION = "0.8.0"
5
+ VERSION = "0.9.0"
6
6
  end
@@ -18,6 +18,3 @@ require "object_identifier/formatters/string_formatter"
18
18
  # CORE EXTENSIONS
19
19
 
20
20
  require "core_ext/object"
21
- require "core_ext/string"
22
- require "core_ext/symbol"
23
- require "core_ext/big_decimal"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: object_identifier
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul DobbinSchmaltz
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-11-21 00:00:00.000000000 Z
11
+ date: 2024-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: benchmark-ips
@@ -63,10 +63,7 @@ extra_rdoc_files: []
63
63
  files:
64
64
  - LICENSE.txt
65
65
  - README.md
66
- - lib/core_ext/big_decimal.rb
67
66
  - lib/core_ext/object.rb
68
- - lib/core_ext/string.rb
69
- - lib/core_ext/symbol.rb
70
67
  - lib/object_identifier.rb
71
68
  - lib/object_identifier/array_wrap.rb
72
69
  - lib/object_identifier/configuration.rb
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "bigdecimal"
4
-
5
- # Reopen the core BigDecimal class to represent {#inspect_lit}.
6
- class BigDecimal
7
- # Formats this BigDecimal as an object-type-revealing String.
8
- #
9
- # @return [String] a String representation of this BigDecimal object
10
- #
11
- # @example
12
- # BigDecimal.new(1).inspect_lit # => "<BD:1.0>"
13
- # BigDecimal.new(99.999, 5).inspect_lit # => "<BD:99.999>"
14
- def inspect_lit
15
- "<BD:#{self}>"
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Reopen the core String class to represent {#inspect_lit}.
4
- class String
5
- # Formats self to look like a String literal so that object type will be
6
- # inherently obvious when inspected.
7
- #
8
- # @return [String] a String-literal representation of this object
9
- #
10
- # @example
11
- # "test".inspect_lit # => "\"test\"" (i.e. '"test"')
12
- # "1".inspect_lit # => "\"1\"" (i.e. '"1"')
13
- # "12.3".inspect_lit # => "\"12.3\"" (i.e. '"12.3"')
14
- def inspect_lit
15
- %("#{self}")
16
- end
17
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Reopen the core Symbol class to represent {#inspect_lit}.
4
- class Symbol
5
- # Formats this symbol to look like a symbol literal so that object type will
6
- # be inherently obvious when used in logging methods, etc.
7
- #
8
- # @return [String] a symbol literal representation of this object
9
- #
10
- # @example
11
- # :test.inspect_lit # => ":\"test\"" (or ':"test"')
12
- # :"ta-da!".inspect_lit # => ":\"ta-da!\"" (or ':"ta-da!"')
13
- def inspect_lit
14
- %(:"#{self}")
15
- end
16
- end