Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bouraqadi/components
Component-Based Programming
https://github.com/bouraqadi/components
pharo pharo-smalltalk
Last synced: 6 days ago
JSON representation
Component-Based Programming
- Host: GitHub
- URL: https://github.com/bouraqadi/components
- Owner: bouraqadi
- License: mit
- Created: 2020-06-04T15:41:16.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-07-25T10:26:34.000Z (5 months ago)
- Last Synced: 2024-12-18T21:17:29.231Z (6 days ago)
- Topics: pharo, pharo-smalltalk
- Language: Smalltalk
- Homepage:
- Size: 65.4 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Components
Component-Based Software Development solutions with Pharo.## Hydrogen
Simple component model. Each component has a lifecycle with 2 states : Started or Stopped.
A component should be started once it has been initialized and its required ports connected.### Component
A component is an object which is instance of `HyComponent` or its subclasses.
Each component has a 1 unique provided port and 0 or more required ports.
Component classes define### Ports
- Provided port: Allows performing any message. That is the reference of the component.
- Singleton required port: That is an instance variables with setter accessor for connections. Allows sending a message to another component just like objects do.
- Collection required port: That is an instance variable referencing a `HyCollectionPort`. Allows sending a specific message with 0 or more args to a set of components attached to the port.
- ID filtering collection port. That is an instance variable referencing a `HyIdFilteringCollectionPort`. Allows sending a specific message with 0 or more args to a subset of components attached to the port. The subset is defined dynamically based on an id.### Install Hydrogen
To install Hydrogen evaluate the following in a playground.
```Smalltalk
Metacello new
baseline: 'HydrogenComponents';
repository: 'github://bouraqadi/Components';
load.
```