{"id":336,"name":null,"description":"Extraction of the key_transform abilities of ActiveModelSerializers","url":"https://github.com/rails-api/case_transform","last_synced_at":"2026-05-02T17:30:25.517Z","repository":{"id":46212114,"uuid":"68319218","full_name":"rails-api/case_transform","owner":"rails-api","description":"Extraction of the key_transform abilities of ActiveModelSerializers","archived":false,"fork":false,"pushed_at":"2021-11-06T12:14:33.000Z","size":25,"stargazers_count":16,"open_issues_count":7,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-13T22:59:15.295Z","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/rails-api.png","metadata":{"files":{"readme":"README.md","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":"2016-09-15T18:14:48.000Z","updated_at":"2024-07-19T21:04:57.000Z","dependencies_parsed_at":"2022-09-23T05:40:22.018Z","dependency_job_id":null,"html_url":"https://github.com/rails-api/case_transform","commit_stats":null,"previous_names":["nullvoxpopuli/case_transform"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rails-api/case_transform","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails-api%2Fcase_transform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails-api%2Fcase_transform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails-api%2Fcase_transform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails-api%2Fcase_transform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails-api","download_url":"https://codeload.github.com/rails-api/case_transform/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails-api%2Fcase_transform/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30513324,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-14T14:51:43.155Z","status":"ssl_error","status_checked_at":"2026-03-14T14:47:41.964Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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"}},"owner":{"login":"rails-api","name":"rails-api","uuid":"2820360","kind":"organization","description":"","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/2820360?v=4","repositories_count":6,"last_synced_at":"2024-03-25T21:10:33.730Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/rails-api","funding_links":[],"total_stars":10505,"followers":12,"following":0,"created_at":"2022-11-02T16:40:12.390Z","updated_at":"2024-03-25T21:10:34.087Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails-api","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails-api/repositories"},"packages":[],"commits":{"id":1741551,"full_name":"rails-api/case_transform","default_branch":"master","total_commits":14,"total_committers":1,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":14.0,"dds":0.0,"past_year_total_commits":0,"past_year_total_committers":0,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":0.0,"past_year_dds":0.0,"last_synced_at":"2026-04-26T09:12:55.078Z","last_synced_commit":"b957f9c933efa3894589af0ee7313660ebb552d8","created_at":"2024-09-13T16:48:12.775Z","updated_at":"2026-04-26T09:12:55.041Z","committers":[{"name":"L. Preston Sego III","email":"LPSego3+dev@gmail.com","login":"NullVoxPopuli","count":14}],"past_year_committers":[],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails-api%2Fcase_transform/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-01T00:00:07.988Z","repositories_count":6224332,"commits_count":900297310,"contributors_count":34905088,"owners_count":1147601,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"rails-api/case_transform","html_url":"https://github.com/rails-api/case_transform","last_synced_at":"2026-04-18T23:02:42.257Z","status":"error","issues_count":1,"pull_requests_count":14,"avg_time_to_close_issue":582855.0,"avg_time_to_close_pull_request":30476545.85714286,"issues_closed_count":1,"pull_requests_closed_count":7,"pull_request_authors_count":7,"issue_authors_count":1,"avg_comments_per_issue":1.0,"avg_comments_per_pull_request":0.8571428571428571,"merged_pull_requests_count":1,"bot_issues_count":0,"bot_pull_requests_count":4,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-12T08:49:17.766Z","updated_at":"2026-04-18T23:02:42.257Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails-api%2Fcase_transform","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails-api%2Fcase_transform/issues","issue_labels_count":{},"pull_request_labels_count":{"dependencies":4},"issue_author_associations_count":{"COLLABORATOR":1},"pull_request_author_associations_count":{"NONE":9,"COLLABORATOR":4,"MEMBER":1},"issue_authors":{"NullVoxPopuli":1},"pull_request_authors":{"NullVoxPopuli":4,"dependabot[bot]":4,"saiqulhaq":2,"johnstoecker":1,"d-unseductable":1,"DTrierweiler":1,"bf4":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-01T00:00:07.984Z","repositories_count":14459844,"issues_count":34173364,"pull_requests_count":112144354,"authors_count":11250560,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[{"login":"NullVoxPopuli","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/NullVoxPopuli"},{"login":"bf4","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bf4"}],"active_maintainers":[]},"events":{"total":{},"last_year":{}},"keywords":[],"dependencies":[{"ecosystem":"rubygems","filepath":"Gemfile.lock","sha":null,"kind":"lockfile","created_at":"2022-09-23T05:40:21.694Z","updated_at":"2022-09-23T05:40:21.694Z","repository_link":"https://github.com/rails-api/case_transform/blob/master/Gemfile.lock","dependencies":[{"id":5931126906,"package_name":"case_transform","ecosystem":"rubygems","requirements":"0.2","direct":false,"kind":"runtime","optional":false},{"id":5931126907,"package_name":"activesupport","ecosystem":"rubygems","requirements":"5.0.0.1","direct":false,"kind":"runtime","optional":false},{"id":5931126908,"package_name":"ast","ecosystem":"rubygems","requirements":"2.3.0","direct":false,"kind":"runtime","optional":false},{"id":5931126909,"package_name":"awesome_print","ecosystem":"rubygems","requirements":"1.7.0","direct":false,"kind":"runtime","optional":false},{"id":5931126910,"package_name":"byebug","ecosystem":"rubygems","requirements":"9.0.5","direct":false,"kind":"runtime","optional":false},{"id":5931126911,"package_name":"codeclimate-test-reporter","ecosystem":"rubygems","requirements":"0.6.0","direct":false,"kind":"runtime","optional":false},{"id":5931126912,"package_name":"coderay","ecosystem":"rubygems","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":5931126913,"package_name":"concurrent-ruby","ecosystem":"rubygems","requirements":"1.0.2","direct":false,"kind":"runtime","optional":false},{"id":5931126914,"package_name":"docile","ecosystem":"rubygems","requirements":"1.1.5","direct":false,"kind":"runtime","optional":false},{"id":5931126915,"package_name":"i18n","ecosystem":"rubygems","requirements":"0.7.0","direct":false,"kind":"runtime","optional":false},{"id":5931126916,"package_name":"json","ecosystem":"rubygems","requirements":"2.0.2","direct":false,"kind":"runtime","optional":false},{"id":5931126917,"package_name":"method_source","ecosystem":"rubygems","requirements":"0.8.2","direct":false,"kind":"runtime","optional":false},{"id":5931126918,"package_name":"minitest","ecosystem":"rubygems","requirements":"5.9.0","direct":false,"kind":"runtime","optional":false},{"id":5931126919,"package_name":"parser","ecosystem":"rubygems","requirements":"2.3.1.2","direct":false,"kind":"runtime","optional":false},{"id":5931126920,"package_name":"powerpack","ecosystem":"rubygems","requirements":"0.1.1","direct":false,"kind":"runtime","optional":false},{"id":5931126921,"package_name":"pry","ecosystem":"rubygems","requirements":"0.10.4","direct":false,"kind":"runtime","optional":false},{"id":5931126922,"package_name":"pry-byebug","ecosystem":"rubygems","requirements":"3.4.0","direct":false,"kind":"runtime","optional":false},{"id":5931126923,"package_name":"rainbow","ecosystem":"rubygems","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":5931126924,"package_name":"rake","ecosystem":"rubygems","requirements":"11.2.2","direct":false,"kind":"runtime","optional":false},{"id":5931126925,"package_name":"rubocop","ecosystem":"rubygems","requirements":"0.42.0","direct":false,"kind":"runtime","optional":false},{"id":5931126926,"package_name":"ruby-progressbar","ecosystem":"rubygems","requirements":"1.8.1","direct":false,"kind":"runtime","optional":false},{"id":5931126927,"package_name":"simplecov","ecosystem":"rubygems","requirements":"0.12.0","direct":false,"kind":"runtime","optional":false},{"id":5931126928,"package_name":"simplecov-html","ecosystem":"rubygems","requirements":"0.10.0","direct":false,"kind":"runtime","optional":false},{"id":5931126929,"package_name":"slop","ecosystem":"rubygems","requirements":"3.6.0","direct":false,"kind":"runtime","optional":false},{"id":5931126930,"package_name":"thread_safe","ecosystem":"rubygems","requirements":"0.3.5","direct":false,"kind":"runtime","optional":false},{"id":5931126931,"package_name":"tzinfo","ecosystem":"rubygems","requirements":"1.2.2","direct":false,"kind":"runtime","optional":false},{"id":5931126932,"package_name":"unicode-display_width","ecosystem":"rubygems","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"rubygems","filepath":"case_transform.gemspec","sha":null,"kind":"manifest","created_at":"2022-09-23T05:40:21.855Z","updated_at":"2022-09-23T05:40:21.855Z","repository_link":"https://github.com/rails-api/case_transform/blob/master/case_transform.gemspec","dependencies":[{"id":5931127072,"package_name":"activesupport","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":5931127077,"package_name":"rake","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":5931127080,"package_name":"rubocop","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":5931127083,"package_name":"codeclimate-test-reporter","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":5931127086,"package_name":"minitest","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":5931127088,"package_name":"awesome_print","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":5931127090,"package_name":"pry-byebug","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false}]}],"score":3.1354942159291497,"created_at":"2024-12-15T21:38:07.779Z","updated_at":"2026-05-02T17:30:25.518Z","avatar_url":"https://github.com/rails-api.png","language":"Ruby","monthly_downloads":0,"readme":"# case_transform\nExtraction of the key_transform abilities of ActiveModelSerializers\n\n[![Gem Version](https://badge.fury.io/rb/case_transform.svg)](https://badge.fury.io/rb/case_transform)\n[![Build Status](https://travis-ci.org/NullVoxPopuli/case_transform.svg?branch=master)](https://travis-ci.org/NullVoxPopuli/case_transform)\n[![Code Climate](https://codeclimate.com/repos/57dafbcc628330006c001312/badges/5f190457aba7c5d5d78c/gpa.svg)](https://codeclimate.com/repos/57dafbcc628330006c001312/feed)\n[![Test Coverage](https://codeclimate.com/repos/57dafbcc628330006c001312/badges/5f190457aba7c5d5d78c/coverage.svg)](https://codeclimate.com/repos/57dafbcc628330006c001312/coverage)\n[![Dependency Status](https://gemnasium.com/NullVoxPopuli/case_transform.svg)](https://gemnasium.com/NullVoxPopuli/case_transform)\n\n## Install\n\n```ruby\ngem 'case_transform'\n```\n\nor\n\n```bash\ngem install case_transform\n```\n\nAnd for faster performance, checkout [Case Transform with Native Extensions](https://github.com/NullVoxPopuli/case_transform-rust-extensions)\n## Usage\n\n```ruby\nrequire 'case_transform'\n\nCaseTransform.camel_lower(value)\n```\n\n`value` can be any of Array, Hash, Symbol, or String.\nAny other object type will just be returned.\n\n### Transforms\n\n| \u0026nbsp; | Description |\n| --- | --- |\n| camel | PascalCase |\n| camel_lower | camelCase |\n| dash | dash-case |\n| underscore | under_score |\n| unaltered | pass through |\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ruby.ecosyste.ms/api/v1/projects/336","html_url":"https://ruby.ecosyste.ms/projects/336"}