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: alice@example.com
If a project has more than one email contact, each email address can be listed:
email:
- alice@example.com
- eve@example.com
- bob@example.com
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