Ore uses the gemspec.yml
file to store all static data about a project.
The gemspec.yml
is a simple YAML file, which contains the same data
that a normal Ruby .gemspec
file would. Below is the complete listing
of valid data that can be listed in a gemspec.yml
file.
The name of the project can be listed like so:
name: foo
The name of the project must be specified.
The version of the project can be listed like so:
version: 1.2.3
If the version is not listed, Ore will first search for a VERSION
file in the root of the project. If Ore cannot find any version files,
it will then search within the lib/
directory for a version.rb
.
The summary of the project can be listed like so:
summary: My awesome project
The description of the project can be listed in a variety of ways:
-
Single line:
description: My project, which provides various functionality.
-
Text block:
description: My project, which provides the developer with various attributes and behaviors.
If the description is not listed, it will default to the summary
.
The license of the project can be listed like so:
license: MIT
Multiple licenses can also be listed:
license:
- LGPL-2.1
- GPL-2
The authors of the project can be listed like so:
authors: Alice
If a project has more than one author, each author can be listed:
authors:
- Alice
- Eve
- Bob
The primary email contact for the project can be listed like so:
email: [email protected]
If a project has more than one email contact, each email address can be listed:
email:
- [email protected]
- [email protected]
- [email protected]
The require_paths of a project can be listed like so:
require_paths: lib
If there are more than one require_path that needs listing:
require_paths:
- ext
- lib
The names of the executables provided by the project can be listed like so:
executables: bin/*
One can also list the executables individually:
executables:
- util1
- util2
If the executables
are not listed, Ore will use the names of any
executable file within the bin/
directory.
Any Ruby C-extensions can be listed like so:
extensions: ext/foo/extconf.rb
The format of the documentation can be listed like so:
documentation: yard
The extra files that should also be scanned for documentation can be listed like so:
extra_doc_files:
- ChangeLog.md
- LICENSE.txt
If extra_doc_files
is not listed, Ore will use the extra-files listed in
the .document
file.
The files of the project can be listed like so:
files: lib/**/*.rb
More than one file pattern can be specification:
files:
- lib/**/*.rb
- spec/**/*
- data/**/*
If files
is not listed, Ore will check if the project is using
Git, can will find all tracked files using:
git ls-files -z
If the project is not using Git, Ore will default files
to every file in
the project.
The files used to test the project can be listed like so:
test_files: spec/**/*_spec.rb
More than one test-file pattern can be supplied:
test_files:
- spec/**/*_spec.rb
- features/**/*
If test_files
is not listed, Ore will default files
to
test/{**/}test_*.rb
and spec/{**/}*_spec.rb
.
The post-installation message for a project can be listed like so:
post_install_message: |
Thank you for installing MyProject 0.1.0. To start MyProject, simply
run the following command:
$ my_project
The external requirements of the project can be listed like so:
requirements: libcairo >= 1.8
Multiple external requirements can also be listed:
requirements:
- libcairo >= 1.8.0
- libclutter >= 1.2.0
The version of Ruby required by the project can be listed like so:
required_ruby_version: >= 1.9.1
The version of RubyGems required by the project can be listed like so:
required_rubygems_version: >= 1.3.7
If required_rubygems_version
is not listed and the project uses
Bundler, Ore will default required_rubygems_version
to >= 1.3.6
.
The dependencies of the project can be listed like so:
dependencies:
foo: ~> 0.1.0
bar: 1.2.3
More than one version can be specified for each dependency:
dependencies:
foo: ~> 0.1.0, >= 0.0.7
bar:
- 1.2.3
- 1.3.1
The purely developmental-dependencies for a project can be specified like so:
development_dependencies:
foo: ~> 0.1.0
bar: 1.2.3
More than one version can be specified for each dependency:
development_dependencies:
foo: ~> 0.1.0, >= 0.0.7
bar:
- 1.2.3
- 1.3.1