{"id":17321415,"url":"https://github.com/tompave/reference_book","last_synced_at":"2025-10-12T21:12:35.673Z","repository":{"id":19522415,"uuid":"22769602","full_name":"tompave/reference_book","owner":"tompave","description":"A multi-context configuration library and DSL.","archived":false,"fork":false,"pushed_at":"2014-10-31T00:35:51.000Z","size":284,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-25T08:21:50.942Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tompave.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-08-08T19:48:10.000Z","updated_at":"2014-10-31T00:35:51.000Z","dependencies_parsed_at":"2022-08-05T04:30:34.472Z","dependency_job_id":null,"html_url":"https://github.com/tompave/reference_book","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tompave%2Freference_book","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tompave%2Freference_book/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tompave%2Freference_book/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tompave%2Freference_book/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tompave","download_url":"https://codeload.github.com/tompave/reference_book/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245773173,"owners_count":20669719,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-15T13:37:24.241Z","updated_at":"2025-10-12T21:12:30.628Z","avatar_url":"https://github.com/tompave.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ReferenceBook\n\nA multi-context configuration library and DSL.  \n**ReferenceBook** provides an easy interface to define, validate and query **multi-context** configuration data.\n\nWhat does **multi-context** mean?  \nAny setting that should be static and that exist in different alternative versions.\n\n\n\n\n## Usage\n\nTODO: Write usage instructions here\n\n## Examples\n\nLots are available [in the repo](https://github.com/tompave/reference_book/tree/master/examples).\n\n\n\n\n## Features/Problems\n\n* requires Ruby \u003e= 2.0.0\n* simple configuration DSL, with validations\n* configuration data exists as frozen objects, not namespaced constants\n* library and books metaphor\n* easy and flexible query interface\n\n\n\n\n\n\n\n\n## Rubies\n\n**ReferenceBook** requires a Ruby patch level `\u003e= 2.0`.  \nIt doesn't use any _2-only_ syntax features, but it does rely on some core classes' methods that only appeared with MRI 2.0.0.\n\n**MRI**: supported, tested with 2.0 and 2.1.  \n**JRuby**: tested in 2.0 mode (`JRUBY_OPTS=--2.0 rake test`).  \n**Rubinius**: not supported, even in 2.1 mode its standard library classes seem to expose a 1.9 interface.  \n\n\n## Tests\n\n`rake test`\n\n\n\n\n## To Do\n\n* add support for different libraries, each with an enforced book structure\n* make it work with Ruby 1.9.3 (involves implementing methods that at the moment are provided by core classes).\n* memoize results of `pluck` and `hash_pluck`\n* implement `library_key` aliases, so that books can be retrieved with strings. Library keys have to be symbols, because they are used to define the accessor methods\n\n\n## Installation\n\n\nAdd this line to your application's Gemfile:\n\n    gem 'reference_book'\n\nAnd then execute:\n\n    $ bundle\n\nOr install it yourself as:\n\n    $ gem install reference_book\n\n\n## Contributing\n\n1. Fork it ( https://github.com/[my-github-username]/reference_book/fork )\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create a new Pull Request\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftompave%2Freference_book","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftompave%2Freference_book","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftompave%2Freference_book/lists"}