{"id":22981008,"url":"https://github.com/rubyworks/anise","last_synced_at":"2025-10-13T09:13:48.649Z","repository":{"id":662226,"uuid":"305202","full_name":"rubyworks/anise","owner":"rubyworks","description":"Dynamic Annotations System for Ruby","archived":false,"fork":false,"pushed_at":"2013-03-09T21:03:30.000Z","size":1124,"stargazers_count":4,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-04T08:18:37.014Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://rubyworks.github.com/anise","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rubyworks.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2009-09-12T18:35:49.000Z","updated_at":"2019-03-20T18:07:00.000Z","dependencies_parsed_at":"2022-08-16T10:35:24.003Z","dependency_job_id":null,"html_url":"https://github.com/rubyworks/anise","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/rubyworks/anise","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubyworks%2Fanise","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubyworks%2Fanise/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubyworks%2Fanise/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubyworks%2Fanise/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rubyworks","download_url":"https://codeload.github.com/rubyworks/anise/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubyworks%2Fanise/sbom","scorecard":{"id":788994,"data":{"date":"2025-08-11","repo":{"name":"github.com/rubyworks/anise","commit":"40cb4f2c7fe7410bfb2baae503ec039b989e7f65"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-23T06:55:36.674Z","repository_id":662226,"created_at":"2025-08-23T06:55:36.674Z","updated_at":"2025-08-23T06:55:36.674Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279013944,"owners_count":26085431,"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","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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:41.330Z","updated_at":"2025-10-13T09:13:48.617Z","avatar_url":"https://github.com/rubyworks.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Anise\n\n[Homepage](http://rubyworks.github.com/anise) /\n[Documentation](http://rubydoc.info/gems/anise) /\n[Report Issue](http://github.com/rubyworks/anise/issues) /\n[Source Code](http://github.com/rubyworks/anise)\n\n[![Gem Version](https://badge.fury.io/rb/anise.png)](http://badge.fury.io/rb/anise)\n[![Build Status](https://secure.travis-ci.org/rubyworks/anise.png)](http://travis-ci.org/rubyworks/anise) \u0026nbsp; \u0026nbsp;\n[![Flattr Me](http://api.flattr.com/button/flattr-badge-large.png)](http://flattr.com/thing/324911/Rubyworks-Ruby-Development-Fund)\n\n\n## *Dynamic Annotations for Ruby*\n\nAnise is an Annotation System for the Ruby programming language.\nUnlike most other annotations systems it is not a comment-based or\nmacro-based system that sits over-and-above the rest of the code.\nRather, Anise is a dynamic annotations system operating at runtime.\n\nThe following example briefly demonstrates all three major features. To use\nany of them first require the `anise` library.\n\n     require 'anise'\n\nGeneral annotations are provided by the `Anise::Annotations` module.\n\n    class X\n      extend Anise::Annotations\n\n      ann :grape, :class=\u003eString\n    end\n\n    X.ann(:grape, :class)  #=\u003e String\n\nAnnotated attributes can be easily added to a class via the `Annotative::Attributes`\nmodule.\n\n    class X\n      extend Anise::Annotative::Attributes\n\n      attr :baz, Integer, :max =\u003e 10\n    end\n\n    X.ann(:baz)  #=\u003e {:class=\u003eInteger, :max=\u003e10}\n\nMewthod annotations can be had via the `Annotative::Methods` module.\n\n    class X\n      extend Anise::Annotative::Methods\n\n      def self.doc(string)\n        method_annotation(:doc=\u003estring)\n      end\n\n      doc \"This is an entry.\"\n\n      def bar\n        # ...\n      end\n    end\n\n    X.ann(:bar)  #=\u003e {:doc=\u003e\"This is an entry.\"}\n\nAny of these modules can be used in conjunction. Since both `Annotative::Methods`\nand `Annotative::Attributes` preclude `Annotations` all three can be used by simply\nusing the later two.\n\n     class X\n       extend Anise::Annotative::Attributes\n       extend Anise::Annotative::Methods\n\n       ...\n     end\n\nNote also that the `Anise` module is clean and contains only modules and classes\nwith detailed names starting the \"Annotat-\", so it is prefectly convenient for\ninclusion in the toplevel namespace or your own applications namespace.\n\n    module MyApp\n      include Anise\n\n      class Foo\n        extend Annotative::Attributes\n\n        ...\n      end\n    end\n\n\n## Installation\n\n### RubyGems\n\nRubyGems.org hosts the [gem](http://rubygems.org/gems/anise) package.\nTo install via RubyGems simply open a console and type:\n\n    gem install anise\n\n### Setup.rb (not recommended)\n\nTo manually install you will need Setup.rb (see http://setup.rubyforge.org).\nThen download the tarball package and do:\n\n    $ tar -xvzf anise-0.2.0.tgz\n    $ cd anise-0.2.0\n    $ sudo setup.rb all\n\n\n## Documentation\n\n### Demonstrations\n\nFully tested demonstrations can be seen in the DEMO document.\n\n### API Reference\n\nThe [API documentation](http://rubydoc.info/gems/anise/frames) is available \nin YARD format via [rubydoc.info](a href=\"http://rubydoc.info\").\n\n\n## Support\n\nIf you experience a problem, have a question or a feature request file a ticket\nwith the [issue tracker](http://github.com/rubyworks/anise/issues) on GitHub.\n\nIf you would like to discuss something about this project in more detail try\ncontacting the author(s) via the Rubyworks [IRC channel](http://chat.us.freenode.net/rubyworks)\nor the [Mailing List](http://groups.google.com/groups/rubyworks-mailinglist).\n\n\n## Development\n\n### Contributing\n\nIf you would like to contribute code or documentation to the Anise project, fork\nthe upstream repository and create a branch for you changes. When your changes are\nready for review (and no, they do not have to 100% perfect if you still have some\nissues you need help working out) then submit a pull request.\n\nIt you need to personally discuss some ideas or issues you can try to get up with\nus via the mailing list or the IRC channel.\n\n* [IRC Channel](irc://irc.freenode.net/rubyworks) /\n* [Mailing List](http://googlegroups.com/group/rubyworks-mailinglist)\n\n### Git Repository\n\nThe [upstream git repository](http://github.com/rubyworks/anise.git) is \nhosted on [GitHub](http://github.com/rubyworks/anise).\n\n### Development Requirements\n\nAnise uses the following development tools.\n\n* [qed](http://rubyworks.github.com/qed) (test development)\n* [ae](http://rubyworks.github.com/ae) (test development)\n* [citron](http://rubyworks.github.com/citron) (test development)\n* [rubytest-cli](http://rubyworks.github.com/rubytest-cli) (test development)\n* [detroit](http://rubyworks.github.com/detroit) (build development)\n* [ergo](http://rubyworks.github.com/ergo) (build development)\n\n### Test Instructions\n\nAinse has two test suites, one using [QED](http://rubyworks.github.com/qed) and\nthe other using [Citron](http://rubyworks.github.com/citron) which is built on\n[RubyTest](http://rubyworks.github.com/rubytest).\n\nTo run the QED demonstrations simple run:\n\n    $ qed\n\nTo run the Citron-based unit tests use:\n\n    $ rubytest\n\n\n## Authors\n\n* Trans \u0026lt;[transfire@gmail.com](mailto:transfire@gmail.com)\u0026gt;\n\n\n## Organizations\n\n* [Rubyworks](http://rubyworks.github.com)\n\n\n## Copyrights\n\nCopyright (c) 2008 Rubyworks. All rights reserved.\n\nThis program is distributed under the terms of the\n[BSD-2-Clause](http://www.spdx.org/licenses/BSD-2-Clause) license.\n\nSee LICNESE.txt file for details.\n\nThis project was created on *2008-02-21*.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubyworks%2Fanise","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frubyworks%2Fanise","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubyworks%2Fanise/lists"}