Sha256: fe245e07b69e45624f3e084ceb4ca96fc1258146ceb39264dcc804731c8ff161

Contents?: true

Size: 1.89 KB

Versions: 4

Compression:

Stored size: 1.89 KB

Contents

# @title dry-plugins: DSL for plugins
# @author Alex Semyonov <alex@semyonov.us>

# dry-plugins: DSL for plugins

Abstract DSL for providing plug-in interface for PORO and complex structures.

Wikipedia says following:
 
> The host application {Dry::Plugins::Host::DSL provides services} which the plug-in can use, including {Dry::Plugins::Registry#register a way for plug-ins to register themselves} with the host application and a protocol for the exchange of data with plug-ins. Plug-ins depend on the services provided by the host application and do not usually work by themselves. Conversely, the host application operates independently of the plug-ins, making it possible for end-users to add and update plug-ins dynamically without needing to make changes to the host application.
> 
> Programmers typically implement plug-in functionality using shared libraries installed in a place prescribed by the host application. HyperCard supported a similar facility, but more commonly included the plug-in code in the HyperCard documents (called stacks) themselves. Thus the HyperCard stack became a self-contained application in its own right, distributable as a single entity that end-users could run without the need for additional installation-steps. Programs may also implement plugins by loading a directory of simple script files written in a scripting language like Python or Lua.

## TL;DR

dry-plugins is a utility to provide plug-ins interface for your Ruby class (called *host* in documentation).

See {Dry::Plugins}.

Configuration: see {Dry::Plugins::Config}.

## 

Documentation:

* {Dry::Plugins::Registry} - a plug-ins registry;
    * {Dry::Plugins::Registry::Resolver} - a plug-in resolver;
* {Dry::Plugins::Plugin} — a proxy for a plug-in;

## Copyright and License

© [Alex Semyonov](https://alex.semyonov.us/) <[alex@semyonov.us](mailto:alex@semyonov.us?subject=dry-plugins)>, 2017, [MIT license](LICENSE.md)

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
dry-plugins-0.4.0 README.md
dry-plugins-0.3.0 README.md
dry-plugins-0.2.0 README.md
dry-plugins-0.1.0 README.md