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 |