{"id":15107705,"url":"https://github.com/bouraqadi/components","last_synced_at":"2026-01-18T00:23:14.028Z","repository":{"id":169995745,"uuid":"269399216","full_name":"bouraqadi/Components","owner":"bouraqadi","description":"Component-Based Programming","archived":false,"fork":false,"pushed_at":"2024-07-25T10:26:34.000Z","size":67,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-18T11:14:08.411Z","etag":null,"topics":["pharo","pharo-smalltalk"],"latest_commit_sha":null,"homepage":"","language":"Smalltalk","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bouraqadi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-04T15:41:16.000Z","updated_at":"2024-07-25T10:26:38.000Z","dependencies_parsed_at":"2024-07-25T12:04:34.341Z","dependency_job_id":null,"html_url":"https://github.com/bouraqadi/Components","commit_stats":{"total_commits":19,"total_committers":1,"mean_commits":19.0,"dds":0.0,"last_synced_commit":"8ab47344366a212148209104d7d479edeaa4e5f3"},"previous_names":["bouraqadi/components"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bouraqadi%2FComponents","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bouraqadi%2FComponents/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bouraqadi%2FComponents/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bouraqadi%2FComponents/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bouraqadi","download_url":"https://codeload.github.com/bouraqadi/Components/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247353679,"owners_count":20925324,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pharo","pharo-smalltalk"],"created_at":"2024-09-25T21:41:06.717Z","updated_at":"2026-01-18T00:23:13.998Z","avatar_url":"https://github.com/bouraqadi.png","language":"Smalltalk","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Components\nComponent-Based Software Development solutions with Pharo.\n\n## Hydrogen\nSimple component model. Each component has a lifecycle with 2 states : Started or Stopped.\nA component should be started once it has been initialized and its required ports connected.\n\n### Component\nA component is an object which is instance of `HyComponent` or its subclasses.\nEach component has a 1 unique provided port and 0 or more required ports.\nComponent classes define \n\n### Ports\n- Provided port: Allows performing any message. That is the reference of the component.\n- Singleton required port: That is an instance variables with setter accessor for connections. Allows sending a message to another component just like objects do.\n- 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.\n- 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.\n\n\n### Install Hydrogen\nTo install Hydrogen evaluate the following in a playground.\n```Smalltalk\nMetacello new\n    baseline: 'HydrogenComponents';\n    repository: 'github://bouraqadi/Components';\n    load.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbouraqadi%2Fcomponents","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbouraqadi%2Fcomponents","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbouraqadi%2Fcomponents/lists"}