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:

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

email

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