#+SUBTITLE: Simplifying Concourse Resources in Ruby
~fuselage~ simplifies development of resources for Concourse by providing
classes for standard resource steps, interface contracts between Concourse and
your resource, and clear errors for most failure conditions.
- Implementing a Resource
Inherit from the appropriate class and implement the required methods.
~Check~ is used to poll for new versions.
Should return a ~Hash~ that describes the latest version. This will be called
when no prior version has been detected.
Will be passed a ~Hash~ in the form ~Out#version~ returns.
Should return an ~Array~ of ~Hashes~, similar to what ~#latest~ would return.
~In~ is called for the ~get~ step of a resource.
Fetch ~#version~ place it in ~#workdir~.
Should fail if ~#version~ is unavailable.
~Out~ is called for the ~put~ step of a resource.
Update the resource. All outputs from prior steps are available in ~#workdir~.
Should return a ~Hash~ that describes the resulting version.
~concourse-fuselage~ is available under the [[https://tldrlegal.com/license/mit-license][MIT License]]. See ~LICENSE.txt~ for
the full text.