{"id":17239162,"url":"https://github.com/binarymuse/dci-ruby","last_synced_at":"2025-04-14T02:32:45.569Z","repository":{"id":2165921,"uuid":"3112042","full_name":"BinaryMuse/dci-ruby","owner":"BinaryMuse","description":"Playing with DCI in Ruby","archived":false,"fork":false,"pushed_at":"2012-01-07T20:00:47.000Z","size":97,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-07T02:42:33.347Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"mkosola/sp-endurance","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BinaryMuse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-01-05T17:55:48.000Z","updated_at":"2013-10-16T01:59:13.000Z","dependencies_parsed_at":"2022-09-15T16:21:22.910Z","dependency_job_id":null,"html_url":"https://github.com/BinaryMuse/dci-ruby","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/BinaryMuse%2Fdci-ruby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BinaryMuse%2Fdci-ruby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BinaryMuse%2Fdci-ruby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BinaryMuse%2Fdci-ruby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BinaryMuse","download_url":"https://codeload.github.com/BinaryMuse/dci-ruby/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248810883,"owners_count":21165195,"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-15T05:47:54.269Z","updated_at":"2025-04-14T02:32:45.538Z","avatar_url":"https://github.com/BinaryMuse.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"DCI in Ruby\n===========\n\nDCI, which stands for \"data, context and interaction\", is a software design model. This model consists of three types of objects:\n\n  * **Data** - describes what the system is. Usually a relatively static data model with relations. They do not contain any application logic, they are only data.\n  * **Context** - describes a use case for a system. Determines the objects that need to be involved in a use case and ties them to one or more Roles.\n  * **Interaction** - describes what the system does. Implemented as Roles which are played by objects at run time.\n\nIn DCI, an actor in a Context is injected with only enough application logic to get the job done. Thus, DCI cleanly separates what the application is (Data) from what it does (Interactions); this is in contrast to, say, a typical Rails application with a skinny-controller-fat-model paradigm.\n\nFor more reading, check out (among many others):\n\n  * http://en.wikipedia.org/wiki/Data,_context_and_interaction\n  * http://blog.firsthand.ca/2011/10/rails-is-not-your-application.html\n  * http://confreaks.net/videos/759-rubymidwest2011-keynote-architecture-the-lost-years","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinarymuse%2Fdci-ruby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbinarymuse%2Fdci-ruby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinarymuse%2Fdci-ruby/lists"}