CircleCI

BlackHoleStruct

BlackHoleStruct is a data structure similar to an OpenStruct that allows: - infinite chaining of attributes or autovivification - deep merging of BlackHoleStruct/Hash

Installation

Add it to your Gemfile:

ruby gem "black_hole_struct"

Or install the gem manually:

sh $ gem install black_hole_struct

Basic Usage

```ruby require “black_hole_struct”

config = BlackHoleStruct.new config.dashboard.theme = “white” config.dashboard.time.from = “now-1h” config.dashboard.time.to = “now”

puts config.dashboard.theme # “white” puts config.dashboard.time # #<BlackHoleStruct :from=”now-1h” :to=”now”> puts config.dashboard.time.from # “now-1h”

config[:connection][:host] = “localhost” config[:connection][:port] = 3000

puts config.to_h # { # connection: { # host: “localhost”, # port: 3000 # } # dashboard: { # theme: “white”, # time: { # from: “now-1h”, # to: “now” # } # } # }

config = BlackHoleStruct.new(theme: “white”, connection: 3000) config.deep_merge!(connection: ‘localhost’) puts config.to_h # { # connection: { # host: “localhost”, # port: 3000 # } # theme: “white” # }

```

Is it any good

Yes

Advanced usage

Check the documentation.