Packmatic (Packmatic v1.2.0) View Source

Top-level module holding the Packmatic library, which provides Zip-oriented stream aggregation services from various sources.

Link to this section Summary

Functions

Builds a Stream which can be consumed to construct a Zip file from various sources, as specified in the Manifest. When building the Stream, options can be passed to configure how the Encoder should behave when Source acquisition fails.

Link to this section Functions

Link to this function

build_stream(target, options \\ [])

View Source

Specs

build_stream(manifest | manifest_entries, options) :: Enumerable.t()
when manifest: Packmatic.Manifest.t(),
     manifest_entries: [
       Packmatic.Manifest.Entry.t() | Packmatic.Manifest.Entry.proplist(),
       ...
     ],
     options: [Packmatic.Encoder.option()]

Builds a Stream which can be consumed to construct a Zip file from various sources, as specified in the Manifest. When building the Stream, options can be passed to configure how the Encoder should behave when Source acquisition fails.

Examples

The Stream can be created by passing a Packmatic.Manifest.t/0 struct, a list of Manifest Entries (Packmatic.Manifest.Entry.t/0), or a list of Keyword Lists that are understood and can be transformed to Manifest Entries (Packmatic.Manifest.Entry.proplist/0).

iex(1)> stream = Packmatic.build_stream(Packmatic.Manifest.create())
iex(2)> is_function(stream)
true

iex(1)> stream = Packmatic.build_stream([])
iex(2)> is_function(stream)
true

iex(1)> stream = Packmatic.build_stream([[source: {:file, "foo.bar"}]])
iex(2)> is_function(stream)
true