Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sshaw/property_hash
Access a nested Ruby Hash using Java-style properties as keys
https://github.com/sshaw/property_hash
hash java java-properties property-files property-wrapper ruby
Last synced: 14 days ago
JSON representation
Access a nested Ruby Hash using Java-style properties as keys
- Host: GitHub
- URL: https://github.com/sshaw/property_hash
- Owner: sshaw
- License: mit
- Created: 2022-12-08T07:13:26.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2022-12-27T04:19:26.000Z (almost 2 years ago)
- Last Synced: 2024-10-10T18:53:35.849Z (about 1 month ago)
- Topics: hash, java, java-properties, property-files, property-wrapper, ruby
- Language: Ruby
- Homepage:
- Size: 9.77 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# PropertyHash
![PropertyHash CI Status](https://github.com/sshaw/property_hash/workflows/CI/badge.svg "PropertyHash CI Status")
Access a nested Ruby Hash using Java-style properties as keys.
## Usage
```rb
require "property_hash"
require "pp"h = {
:a => {
:b => 1,
:c => { :d => "DEEEE" },
:x => 888,
:y => [9999]
},
:b => {
:zeee => 888
}
}ph = PropertyHash.new(h)
p ph["a.c.d"] # DEEEE
p ph["b.zeee"] # 888ph["a.c.x"] = "X"
pp ph.keys # ["a.b", "a.c.d", "a.x", "a.y", "b.zeee", "a.c.x"]
pp ph.values # [1, "DEEEE", 888, [9999], 888, "X"]ph.each { |k, v| p k }
pp ph.to_h # h but with :a => { :c => { :x => "X" } }
```## Installation
Add this line to your application's Gemfile:
```ruby
gem "property_hash"
```And then execute:
bundle
Or install it yourself as:
gem install property_hash
## See Also
- [JavaProperties](https://github.com/jnbt/java-properties)
- [Localio](https://github.com/mrmans0n/localio)## License
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).