Sha256: 4d48523672a514b166ea2287ae71561a338bf4a4080576501450ae18a09f4103

Contents?: true

Size: 1.74 KB

Versions: 7

Compression:

Stored size: 1.74 KB

Contents

# Parser for metadata header in plain-text files

[![Gem Version](https://badge.fury.io/rb/metaheader.svg)](http://badge.fury.io/rb/metaheader)
[![Build Status](https://travis-ci.org/cfillion/metaheader.svg?branch=master)](https://travis-ci.org/cfillion/metaheader)
[![Coverage Status](https://coveralls.io/repos/cfillion/metaheader/badge.svg?branch=master&service=github)](https://coveralls.io/github/cfillion/metaheader?branch=master)

## Syntax

```
@key value

@key
  value line 1
  value line 2

@key
@key true

@nokey
@key false
```

Any kind of comment syntax or prefix can be used:

```cpp
/*
 * @key value
 */
```

An alternative syntax is also supported:

```
Key Name: Value
```

Parsing stops at the first empty line (ignoring white space).

## Usage

```ruby
require 'metaheader'

input = '@key value'
mh = MetaHeader.new input

# alternatively:
# mh = MetaHeader.from_file path

# mark unknown keys as invalid
# mh.strict = true

# set @key as mandatory
errors = mh.validate key: MetaHeader::REQUIRED

# other validators are available:
# mh.validate key: MetaHeader::BOOLEAN
# mh.validate key: MetaHeader::OPTIONAL
# mh.validate key: MetaHeader::SINGLELINE
# mh.validate key: MetaHeader::VALUE
# mh.validate key: /^\w{2,}$/
# mh.validate key: proc {|value| 'return nil or error' }

value = mh[:key]
```

## Documentation

MetaHeader's documentation is hosted at
[http://rubydoc.info/gems/metaheader/MetaHeader](http://rubydoc.info/gems/metaheader/MetaHeader).

## Contributing

1. [Fork this repository](https://github.com/cfillion/metaheader/fork)
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push -u origin my-new-feature`)
5. Create a new Pull Request

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
metaheader-1.3 README.md
metaheader-1.3beta4 README.md
metaheader-1.3beta3 README.md
metaheader-1.3beta2 README.md
metaheader-1.3beta1 README.md
metaheader-1.2.1 README.md
metaheader-1.2 README.md