{"id":13745335,"url":"https://github.com/squeedee/Boiler","last_synced_at":"2025-05-09T05:31:40.106Z","repository":{"id":136618219,"uuid":"2024043","full_name":"squeedee/Boiler","owner":"squeedee","description":"Now called Boiler.. And staying that way! If you see a 'metalegs' reference, that was this projects original name","archived":false,"fork":false,"pushed_at":"2011-10-20T05:51:15.000Z","size":3184,"stargazers_count":10,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-08T23:13:38.030Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://squeedee.github.com/Boiler","language":"ActionScript","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/squeedee.png","metadata":{"files":{"readme":"README.markdown","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}},"created_at":"2011-07-10T00:05:23.000Z","updated_at":"2018-06-12T23:12:51.000Z","dependencies_parsed_at":"2023-03-14T14:16:01.890Z","dependency_job_id":null,"html_url":"https://github.com/squeedee/Boiler","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squeedee%2FBoiler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squeedee%2FBoiler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squeedee%2FBoiler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squeedee%2FBoiler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/squeedee","download_url":"https://codeload.github.com/squeedee/Boiler/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224819925,"owners_count":17375362,"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-08-03T05:01:27.759Z","updated_at":"2024-11-15T17:31:46.530Z","avatar_url":"https://github.com/squeedee.png","language":"ActionScript","readme":"Boiler is a complete IoC microarchitecture. It takes automated DI (from SwiftSuspenders) and tacks on inversion of control for configuration and initialisation. \n\nBoiler begs you to avoid writing a framework that lets people extend framework classes.\n\nSteam is a reference framework emerging from Boiler\nYou probably want to start by looking at Steam or the FlickrGallerySample \n\n[Steam Docs](http://github.com/squeedee/Boiler/blob/master/Steam/README.textile)\n\n## Boiler is about convention\n\n  * Add a DI mapping of a class, it's namespace and/or structure will do the rest (Like Rails)\n  * Add Metadata only when you can't depend on convention\n  * Change the conventions by injecting different 'detectors'\n\n## Boiler is about extensibility\n  \n  * Does not add methods to the injector (called lifetime) other than the configuration support.\n  * Sugar is added by injection or detection. You never base an actor on a superclass from the framework.\n  * Configure the order that 'detectors' are run in.\n  * Define the kinds of mapping and injections that 'detectors' run on.\n\nHere's a poem:\n\n      Invert Control.\n \n    If you're writing a framework, and you don't want it to force people into a hole.\n      Invert Control.\n \n    When you think it's finished but something nags you about a classes role\n      Invert Control\n\n    When having to extend framework classes is not your goal...\n\n      I N V E R T  C O N T R O L\n\n# Architecture\n\n## Absolute guiding principles\n\n  * To be easily extensible\n  * Very little boilerplate (but only lose it by injecting helpers!)\n  * strict/strong typed\n  * Does not stop you from leaning on your tools (I use Intellij's refactoring heavily)\n  * Metadata never defines type (that includes 'names'). If metadata needs to attach to type, it should annotate strong typed, first class language constructs such as var and function.\n\n## Still very incomplete\n\nLots of WIP, so don't be suprised at:\n  \n  * The lack of tests (Im not a TDDer, that might turn you off to begin with)\n  * Sanity.. I'm not sane.\n\n  [Current todo list](http://github.com/squeedee/Boiler/blob/master/todo.markdown)\n\t\n## Shoulders of giants.\n\nAll of this is possible because of the amazing work of:\n\n  * Robotlegs and the team.\n  * SwiftSuspenders and Till.\n  * Ruby On Rails and the team.\n  * Ruby and the team.\n","funding_links":[],"categories":["Unsorted"],"sub_categories":["Other API"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsqueedee%2FBoiler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsqueedee%2FBoiler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsqueedee%2FBoiler/lists"}