gemspec.yml
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.
name
The name of the project can be listed like so:
name: foo
If the name is not listed, Ore will use the base-name of the project directory.
version
The version of the project can be listed like so:
version: 1.2.3
The version may also be listed as a Hash:
version:
major: 1
minor: 2
patch: 3
build: pre
If the version is not listed, Ore will first search for a VERSION or
VERSION.yml 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. Ore can load both Ruby VERSION constants or Version
modules that contain MAJOR, MINOR, PATCH and BUILD constants.
summary
The summary of the project can be listed like so:
summary: My awesome project
description
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.
license
The license of the project can be listed like so:
license: MIT
Multiple licenses can also be listed:
license:
- LGPL-2.1
- GPL-2
authors
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
date
The publish date of the current version can be listed like so:
date: 2010-10-23
Ore will use Date.parse
to parse the date value.
If the date is not listed, Ore will default it to the current date.
require_paths
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
executables
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.
default_executable
The primary executable of the project can be listed like so:
default_executable: util1
If default_executable is not listed, Ore will use the first element
in executables.
has_rdoc
One can specify the project contains RDoc documentation:
has_rdoc: true
has_yard
If the project contains YARD and not RDoc documentation, one can specify this:
has_yard: true
If neither has_yard or has_rdoc are listed, Ore will set has_yard
if the .yardopts file exists in the root directory of the project.
Otherwise, Ore will default has_rdoc to true.
extra_doc_files
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.
files
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.
test_files
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.
post_install_message
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
requirements
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
required_ruby_version
The version of Ruby required by the project can be listed like so:
required_ruby_version: >= 1.9.1
required_rubygems_version
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.
dependencies
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
runtime_dependencies
The purely runtime-dependencies for a project can be specified like so:
runtime_dependencies:
foo: ~> 0.1.0
bar: 1.2.3
More than one version can be specified for each dependency:
runtime_dependencies:
foo: ~> 0.1.0, >= 0.0.7
bar:
- 1.2.3
- 1.3.1
development_dependencies
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