{"id":15484877,"url":"https://github.com/dblock/obcd","last_synced_at":"2025-09-20T04:32:10.201Z","repository":{"id":15484943,"uuid":"18218609","full_name":"dblock/obcd","owner":"dblock","description":"Deal with obsessive compulsive issues of programmers in Objective-C.","archived":false,"fork":false,"pushed_at":"2014-04-21T11:26:24.000Z","size":352,"stargazers_count":41,"open_issues_count":13,"forks_count":8,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-09-04T10:18:17.769Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","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/dblock.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-03-28T16:23:20.000Z","updated_at":"2024-11-28T16:29:02.000Z","dependencies_parsed_at":"2022-08-04T04:45:13.721Z","dependency_job_id":null,"html_url":"https://github.com/dblock/obcd","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/dblock/obcd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dblock%2Fobcd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dblock%2Fobcd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dblock%2Fobcd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dblock%2Fobcd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dblock","download_url":"https://codeload.github.com/dblock/obcd/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dblock%2Fobcd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276046887,"owners_count":25575876,"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-09-20T02:00:10.207Z","response_time":63,"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-10-02T05:53:25.249Z","updated_at":"2025-09-20T04:32:09.897Z","avatar_url":"https://github.com/dblock.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"Obcd\n====\n\n[![Build Status](https://travis-ci.org/dblock/obcd.png)](https://travis-ci.org/dblock/obcd)\n\nDeal with obsessive compulsive issues of programmers in Objective-C.\n\nEventually, the goal of OBCD is to become to Objective-C what [Rubocop](https://github.com/bbatsov/rubocop) is to Ruby. So far it does one useful thing: help you fix the comment style on top of .h and .m files. For example, it can tell you that the name of the file in that comment doesn't match the actual file name.\n\n## Checks\n\n* [HeaderStyle](docs/checks/HeaderStyle.md): Check header style on top of .h, .m and .pch files.\n* [SpectaFocus](docs/checks/SpectaFocus.md): Detect instances of focused specs (e.g. fdescribe(…), fit(…)).\n\n## Usage\n\n```\ngem install obcd\n```\n\n#### Get Help\n\n```\nobcd help\n```\n\n#### Example: Find Files with Invalid Headers\n\n```\n$ obcd --path=spec/fixtures find HeaderStyle\n\nHeaderStyle/WrongExtension.m: 1 violation\n/Users/artsy/HeaderStyle/WrongExtension.m:2:1: warning: HeaderStyle: Filename extension doesn't match, expected .m, got .h.\n\nHeaderStyle/WrongFilename.h: 1 violation\n/Users/artsy/HeaderStyle/WrongExtension.h:2:1: warning: HeaderStyle: Expected header to include file name, instead got //  ThisFilenameIsWrong.h.\n\nFound 2 violations.\n```\n\n#### Example: Find Focused Specs\n\n```\n$ obcd --path=spec/fixtures find SpectaFocus\n\nSpectaFocus/FocusedSpec.m: 5 violations\n/Users/artsy/SpectaFocus/FocusedSpec.m:5:1: warning: SpectaFocus: Unexpected fcontext(…) found.\n/Users/artsy/SpectaFocus/FocusedSpec.m:6:1: warning: SpectaFocus: Unexpected fdescribe(…) found.\n/Users/artsy/SpectaFocus/FocusedSpec.m:7:1: warning: SpectaFocus: Unexpected fexample(…) found.\n/Users/artsy/SpectaFocus/FocusedSpec.m:9:1: warning: SpectaFocus: Unexpected fit(…) found.\n/Users/artsy/SpectaFocus/FocusedSpec.m:11:1: warning: SpectaFocus: Unexpected fspecify(…) found.\nSpectaFocus/InconsistentlyFormattedSpec.m: 2 violations\n\n/Users/artsy/SpectaFocus/InconsistentlyFormattedSpec.m:4:1: warning: SpectaFocus: Unexpected fdescribe(…) found.\n/Users/artsy/SpectaFocus/InconsistentlyFormattedSpec.m:5:1: warning: SpectaFocus: Unexpected fit(…) found.\nFound 7 violations.\n```\n\n#### Xcode\n\nYou can also run OBCD as an Xcode build phase in order to see warnings inline in your files.\n\n1. Add a new Run Script Build Phase\n2. Add something like:\n\n    ```\n    source ~/.zshrc # or `source ~/.bashrc`\n    obcd find HeaderStyle\n    ```\n\nThe next time you build your project you should see any OBCD warnings alongside others:\n\n![Xcode Warnings Screenshot](docs/xcode/obcd-warnings.png)\n\n## Contributing\n\nSee [CONTRIBUTING](CONTRIBUTING.md).\n\n## Copyright and License\n\nCopyright (c) 2014, Daniel Doubrovkine, [Artsy](http://artsy.github.io).\n\nThis project is licensed under the [MIT License](LICENSE.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdblock%2Fobcd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdblock%2Fobcd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdblock%2Fobcd/lists"}