nested_objects 0.1.16 → 0.1.18

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: 1e46cbbe94fd34a0e69804d0ce6e1a6d3228fa5ff656db4e050c9d29c0e592fc
4
- data.tar.gz: 0adb30d3a7ead3749df4f863efaabd2dbc8bb20332ff5e7b1d131bc86dbeb267
3
+ metadata.gz: b66e6f931bd1c3210be80d713fe4496620b09f8182c5933552fc698aae03f67a
4
+ data.tar.gz: de45fbee0beecf353d08c46063f93ac97535c1f3f839897ad9e58b97fc7f3fa8
5
5
  SHA512:
6
- metadata.gz: 69ce1523d3959da5f968dc197d1d2375afbdf25be62c5faea10c9cb911edc637733f9172e326e0b0be8b77e24b2880625ee3f8cc659dcc15098417e366ec22e2
7
- data.tar.gz: af925766a658fdef76b2ca260e9bdf6322afd737a35e16e56974e2ab7a1769d868fc7b0ec6c0b42d6358bd32c82e86774ecf3f16288da484dab16a8789182411
6
+ metadata.gz: d65e4dfa7a9c77122e67b0ba7be8c024e774d332bae191a4003e51a30be4a471cf9a6454913f4f2f8cf5b275621fac3726a8e9fe18fa0e098b207ff0d1091c0c
7
+ data.tar.gz: 0a2531ee5d534f442f94d70ee23ad4f0a1386da8895619b924db8e24bc302b9f01a308e7f302b2f3f661f4e6ff22b0b5e89b38a65ca8349da04ae27c24d4e160
@@ -1,3 +1,3 @@
1
1
  {
2
- ".": "0.1.16"
2
+ ".": "0.1.18"
3
3
  }
data/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.18](https://github.com/main-branch/nested_objects/compare/v0.1.17...v0.1.18) (2026-04-24)
4
+
5
+
6
+ ### Other Changes
7
+
8
+ * Correct syntax error in example data and improve formatting in README ([64dc3b9](https://github.com/main-branch/nested_objects/commit/64dc3b9e804c801733d003c0c7eb54af3f644786))
9
+ * **dependencies:** Update dependencies for all GitHub Actions workflows ([ead4d20](https://github.com/main-branch/nested_objects/commit/ead4d2054bdc65bbf6d39559d69612463466d041))
10
+
11
+ ## [0.1.17](https://github.com/main-branch/nested_objects/compare/v0.1.16...v0.1.17) (2025-04-27)
12
+
13
+
14
+ ### Other Changes
15
+
16
+ * Update online yardoc links and simplify readme ([5777d3e](https://github.com/main-branch/nested_objects/commit/5777d3e6a643d3d14c05b1b699a20b0f9fdebebd))
17
+
3
18
  ## [0.1.16](https://github.com/main-branch/nested_objects/compare/v0.1.15...v0.1.16) (2025-04-27)
4
19
 
5
20
 
data/README.md CHANGED
@@ -2,72 +2,61 @@
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/nested_objects.svg)](https://badge.fury.io/rb/nested_objects)
4
4
  [![Build Status](https://github.com/main-branch/nested_objects/actions/workflows/continuous_integration.yml/badge.svg)](https://github.com/main-branch/nested_objects/actions/workflows/continuous_integration.yml)
5
- [![Documentation](https://img.shields.io/badge/Documentation-Latest-green)](https://rubydoc.info/gems/nested_objects/)
5
+ [![Documentation](https://img.shields.io/badge/Documentation-Latest-green)](https://gemdocs.org/gems/nested_objects)
6
6
  [![Change Log](https://img.shields.io/badge/CHANGELOG-Latest-green)](https://rubydoc.info/gems/nested_objects/file/CHANGELOG.md)
7
7
  [![Slack](https://img.shields.io/badge/slack-main--branch/track__open__instances-yellow.svg?logo=slack)](https://main-branch.slack.com/archives/C01CHR7TMM2)
8
8
 
9
- The `NestedObjects` module provides module level methods to safely navigate and
9
+ The `NestedObjects` module provides module methods to safely navigate and
10
10
  manage a heirarchy of Ruby POROs nested using Hashes or Arrays. Think of these
11
11
  nested data objects like what you would get after reading in a JSON file.
12
12
 
13
- The key methods are:
13
+ ## Usage
14
14
 
15
- * `NestedObjects.deep_copy(data)` - returns a deep copy of data including nested hash
16
- values and array elements
17
- * `NestedObjects.dig(data, path)` - returns the value at the given path
18
- * `NestedObjects.bury(data, path, value)` - sets a value within the data structure at
19
- the given path
20
- * `NestedObjects.delete(data, path)` - deletes the Hash key or Array index at the
21
- given path
22
- * `NestedObjects.path?(data, path)` - returns true if the path exists in the given
23
- data structure
15
+ ### Module Methods
24
16
 
25
- These methods (prefixed with `nested_` to avoid method conflicts) can be mixed into
26
- `Object` for ease of use:
17
+ These methods are exposted on the `NestedObjects` module. The key methods are:
18
+ `deep_copy`, `dig`, `bury`, `delete`, and `path?`.
27
19
 
28
- ```Ruby
29
- Object.include NestedObjects::Mixin
20
+ Here is an example of using the `dig` method:
30
21
 
31
- data = { 'users' => [{ 'name' => 'John Smith'}, { 'name' => 'Jane Doe' }] }
22
+ ```Ruby
23
+ require 'nested_objects'
32
24
 
33
- data.nested_dig(%w[users 1 name]) #=> 'Jane Doe'
25
+ data = { 'people' => [{ 'name' => 'John'}, { 'name' => 'Jane' }] }
26
+ path = 'people/0/name'.split('/')
27
+ NestedObjects.dig(data, path) #=> 'John'
34
28
  ```
35
29
 
36
- If the path is malformed or does not exist, a `BadPathError` will be raised.
30
+ See documentation and examples of the full API in
31
+ [the gem's YARD documentation](https://gemdocs.org/gems/nested_objects/).
37
32
 
38
- ## Development
33
+ ### Object Mixin
39
34
 
40
- After checking out the repo, run `bin/setup` to install dependencies. Then, run
41
- `bundle exec rake` to run tests, static analysis, and build the gem.
42
-
43
- For experimentation, you can also run `bin/console` for an interactive (IRB) prompt that
44
- automatically requires nested_objects.
45
-
46
- ## Contributing
35
+ As a convenience, these methods can be mixed into other classes by including the
36
+ `NestedObjects::Mixin` module.
47
37
 
48
- Bug reports and pull requests are welcome on GitHub at <https://github.com/main-branch/nested_objects>.
38
+ In order to reduce the possibility of method name conflicts, all methods are prefixed
39
+ with `nested_`.
49
40
 
50
- ### Commit message guidelines
51
-
52
- All commit messages must follow the [Conventional Commits
53
- standard](https://www.conventionalcommits.org/en/v1.0.0/). This helps us maintain a
54
- clear and structured commit history, automate versioning, and generate changelogs
55
- effectively.
41
+ ```Ruby
42
+ require 'nested_objects'
56
43
 
57
- To ensure compliance, this project includes:
44
+ Object.include NestedObjects::Mixin
58
45
 
59
- - A git commit-msg hook that validates your commit messages before they are accepted.
46
+ data = { 'people' => [{ 'name' => 'John'}, { 'name' => 'Jane' }] }
47
+ path = 'people/0/name'.split('/')
48
+ data.nested_dig(path) #=> 'John'
49
+ ```
60
50
 
61
- To activate the hook, you must have node installed and run `npm install`.
51
+ ## Development
62
52
 
63
- - A GitHub Actions workflow that will enforce the Conventional Commit standard as
64
- part of the continuous integration pipeline.
53
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run
54
+ `bundle exec rake` to run tests, static analysis, and build the gem.
65
55
 
66
- Any commit message that does not conform to the Conventional Commits standard will
67
- cause the workflow to fail and not allow the PR to be merged.
56
+ For experimentation, you can also run `bin/console` for an interactive (IRB) prompt
57
+ that automatically requires nested_objects.
68
58
 
69
- ### Pull request guidelines
59
+ ## Contributing
70
60
 
71
- All pull requests must be merged using rebase merges. This ensures that commit
72
- messages from the feature branch are preserved in the release branch, keeping the
73
- history clean and meaningful.
61
+ See [the contributing guildlines](CONTRIBUTING.md) for guidance on how to contriute
62
+ to this project.
@@ -2,5 +2,5 @@
2
2
 
3
3
  module NestedObjects
4
4
  # The last released gem version
5
- VERSION = '0.1.16'
5
+ VERSION = '0.1.18'
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nested_objects
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.16
4
+ version: 0.1.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Couball
@@ -218,8 +218,8 @@ metadata:
218
218
  allowed_push_host: https://rubygems.org
219
219
  homepage_uri: https://github.com/main-branch/nested_objects
220
220
  source_code_uri: https://github.com/main-branch/nested_objects
221
- documentation_uri: https://rubydoc.info/gems/nested_objects/0.1.16
222
- changelog_uri: https://rubydoc.info/gems/nested_objects/0.1.16/file/CHANGELOG.md
221
+ documentation_uri: https://gemdocs.org/nested_objects/0.1.18
222
+ changelog_uri: https://gemdocs.org/nested_objects/0.1.18/file.CHANGELOG.md
223
223
  rubygems_mfa_required: 'true'
224
224
  rdoc_options: []
225
225
  require_paths:
@@ -237,7 +237,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
237
237
  requirements:
238
238
  - 'Platform: Mac, Linux, or Windows'
239
239
  - 'Ruby: MRI 3.1 or later, TruffleRuby 24 or later, or JRuby 9.4 or later'
240
- rubygems_version: 3.6.7
240
+ rubygems_version: 4.0.6
241
241
  specification_version: 4
242
242
  summary: Utilities for working with PORO structures arbitrarily nested with Hashes
243
243
  and Arrays