RemiConf
NOTICE: This library is no longer maintained or supported. It has been merged into libremiliacr.
RemiConf is a small library to help build configuration files that are easy to handle in code.
Wanna support Remilia? Buy me a coffee on Ko-Fi, or support me through Liberapay.
How do I get set up?
Add this to your shard.yml
file:
dependencies:
remiconf:
fossil: https://chiselapp.com/user/MistressRemilia/repository/remiconf
You will need Fossil installed to clone this repo. You will also need Shards v0.17.1 or later. If you have an earlier version of Shards, you will need to to build the latest version manually.
Usage
Example usage using JSON (HJSON and YAML are also supported):
require "remiconf"
require "json"
module SomeProgram
# Define a class to represent a configuration file named "test.json".
@[RemiConf::ConfigOpts(filename: "test.json", format: :json)]
class Config
include ::RemiConf::ConfigFile
property username : String = ""
end
# Define a resolver that will automatically locate config files.
res = RemiConf::Resolver.xdg("some-program")
# Read the config. Since we're using an xdg resolver, this will look for the
# file at $XDG_CONFIG_HOME/some-program/test.json
config = Config.readConfig(res)
puts config.username
end
Development
Style info
I use a somewhat non-standard style for my code.
- Keep lines 118 characters or shorter. Obviously sometimes you can't, but please try. Use 80 or 115 characters for Markdown files, though.
- Please use pascalCase for variable and method names. Use CamelCase for type names. Use UPPER_SNAKE_CASE for constants.
- Put parentheses around method parameters, except for these methods:
puts
,pp
,p
,raise
,sleep
,spawn
,loop
, andexit
. - Always the full
do |foo|...end
syntax with blocks, except when it's all on one line or an anonymous function, then use { and } or the normaldo |foo|...end
. - The type name for exceptions end with Error. For example,
ExternalProgramError
.
How do I contribute?
- Go to https://chiselapp.com/user/MistressRemilia/repository/remiconf and clone the Fossil repository.
- Create a new branch for your feature.
- Push locally to the new branch.
- Create a bundle with Fossil that contains your changes.
- Get in contact with me.
Contributors
- Remilia Scarlet - creator and maintainer
- Homepage: https://remilia.sdf.org/
- Mastodon: @MistressRemilia@social.sdf.org
- Email: zremiliaz@postzeoz.jpz My real address does not contain Z's
Links and Licenses
RemiConf itself is under the GNU Affero General Public License version 3.