{"id":22980951,"url":"https://github.com/rubyworks/cuts","last_synced_at":"2025-08-13T17:33:35.399Z","repository":{"id":659800,"uuid":"302661","full_name":"rubyworks/cuts","owner":"rubyworks","description":"Cut-based AOP for Ruby","archived":false,"fork":false,"pushed_at":"2012-12-01T00:18:10.000Z","size":676,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-02T00:19:39.606Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://rubyworks.github.com/cuts","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rubyworks.png","metadata":{"files":{"readme":"README.rdoc","changelog":"HISTORY.rdoc","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":"2009-09-10T02:10:28.000Z","updated_at":"2019-08-13T14:28:01.000Z","dependencies_parsed_at":"2022-08-16T10:35:20.839Z","dependency_job_id":null,"html_url":"https://github.com/rubyworks/cuts","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubyworks%2Fcuts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubyworks%2Fcuts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubyworks%2Fcuts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubyworks%2Fcuts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rubyworks","download_url":"https://codeload.github.com/rubyworks/cuts/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229773540,"owners_count":18122031,"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-12-15T01:46:16.189Z","updated_at":"2024-12-15T01:46:16.775Z","avatar_url":"https://github.com/rubyworks.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Cuts - Cut-based AOP for Ruby\n\n{Homepage}[http://rubyworks.github.com/cuts] |\n{Source Code}[http://github.com/rubyworks/cuts] |\n{Issue Tracker}[http://github.com/rubyworks/cuts/issues]\n\n{\u003cimg src=\"http://travis-ci.org/rubyworks/cuts.png\" /\u003e}[http://travis-ci.org/rubyworks/cuts]\n\n\n== Description\n\nCuts is an expiremental pure-Ruby implimentation of cut-base AOP.\nCuts are a failry low-level system, so implementing them in pure-Ruby is no\nsimple accomplishment, even for a language as reflective and metaprogrammable\nas Ruby.\n\n\n== History\n\nCuts started it's life as a discussion about AOP on Ruby-talk, which led to \na in-depth discussion between Trans and Peter Vanbroekhoven. The outcome of those talks\nwere three projects. {Suby}[http://suby.rubyforge.org] an early expiremental\nbranch of Ruby; the RCRFoundry, a section of the Ruby Garden Wiki dedicated to jointly\ndeveloping RCRs; and the {Cut-based AOP RCR}[rcr.html]. The RCR of course,\nultimately led to this project, as well as an expiremental Ruby 1.8.3 core\nimplementation (see the Suby homepage). We continue to touch up the {RCR}[rcr.html]\nbut on the whole it is now complete.\n\nPlease read {Cut-based AOP for Ruby RCR}[rcr.html].\n\nThis Cuts library comes by way of {Ruby Facets}[http://rubyworks.github.com/facets],\nwhere the implementation was orginally housed. Becuase of it's expiremental nature,\nit was deemd best to move it into it's own project as part of the ongoing work to\nmake Facets a rock solid library. Despite being expiremental, this implementation\ndoes pass it's unit test. However, it has had litte trial in integrated tests.\nIt will be interesting to see if this library, as it matures, can prove robust\nenough for production use. In either case, clearly it would be preferable to have\na Ruby-core implementation instead, but that potential is completely in other\npersons hands.\n\n\n== Usage\n\nHere is a quick and dirty example:\n\n  require 'cuts'\n\n  class C\n    def f ; \"f\" ; end\n  end\n\n  cut :G \u003c C do\n    def f; '\u003c'+super+'\u003e' ; end\n  end\n\n  c = C.new\n\n  c.f  #=\u003e \"\u0026lt;f\u0026gt;\"\n\n\nFor detailed usage documentation, please refer to the {API Documentation}[http://rubydoc.info/gems/cuts].\n\n\n== Install\n\nInstall via RubyGems:\n\n  $ gem install cuts\n\n\n== Special Thanks\n\nSpecial thanks to Peter Van Broekhoven. The man is a genius!\n\n\n== Copyrights\n\nCuts, Copyright (c) 2007 Thomas Sawyer \u0026 Peter Van Broekhoven\n\nCuts is distributable in accrodance with the *FreeBSD* License.\n\nSee NOTICE.rdoc for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubyworks%2Fcuts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frubyworks%2Fcuts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubyworks%2Fcuts/lists"}