{"id":16682199,"url":"https://github.com/segiddins/segmodules","last_synced_at":"2025-04-09T23:12:41.400Z","repository":{"id":13530146,"uuid":"16221550","full_name":"segiddins/SEGModules","owner":"segiddins","description":"A library to bring modules/mixins/concrete protocols to Objective-C.","archived":false,"fork":false,"pushed_at":"2014-10-02T17:48:08.000Z","size":184,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-09T23:12:34.386Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Objective-C","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/segiddins.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-01-25T00:46:07.000Z","updated_at":"2017-07-06T04:15:06.000Z","dependencies_parsed_at":"2022-09-05T02:50:33.342Z","dependency_job_id":null,"html_url":"https://github.com/segiddins/SEGModules","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/segiddins%2FSEGModules","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/segiddins%2FSEGModules/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/segiddins%2FSEGModules/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/segiddins%2FSEGModules/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/segiddins","download_url":"https://codeload.github.com/segiddins/SEGModules/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248125589,"owners_count":21051770,"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":[],"created_at":"2024-10-12T14:06:32.503Z","updated_at":"2025-04-09T23:12:41.384Z","avatar_url":"https://github.com/segiddins.png","language":"Objective-C","readme":"# SEGModules\n\n[![Version](https://cocoapod-badges.herokuapp.com/v/SEGModules/badge.png)](http://cocoadocs.org/docsets/SEGModules)\n[![Platform](https://cocoapod-badges.herokuapp.com/p/SEGModules/badge.png)](http://cocoadocs.org/docsets/SEGModules)\n\n## Usage\n\nTo create a module, declare a protocol with all of the methods of the module. Then, subclass `SEGModule` with the same name as your module's protocol, declare your subclass as adopting the protocol, and implement all the methods in the protocol. (Note: you cannot access ivars in any way, so if you need any properties, you should store them as associated objects on `self`.) For each class you wish to include the module, just declare that class as conforming to the module's protocol (you can even do this on the declaration of a category or class extension). The rest of the work will be done automatically upon the initialization of the runtime.\n\n\u003e A class should be used for functionality that will require instantiation or that needs to keep track of state. A module can be used either as a way to mix functionality into multiple classes, or as a way to provide one-off features that don't need to be instantiated or to keep track of state.\t\n [Jimmy Cuadra (on SO)](http://stackoverflow.com/a/2671706/1675979)\n\nTo run the example project; clone the repo, and run `pod install` from the Project directory first.\n\n## Requirements\n\n## Installation\n\nSEGModules is available through [CocoaPods](http://cocoapods.org), to install\nit simply add the following line to your Podfile:\n\n    pod \"SEGModules\"\n\n## Author\n\nSamuel E. Giddins, segiddins@segiddins.me\n\n## License\n\nSEGModules is available under the MIT license. See the LICENSE file for more info.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsegiddins%2Fsegmodules","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsegiddins%2Fsegmodules","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsegiddins%2Fsegmodules/lists"}