{"id":21250149,"url":"https://github.com/mmenanno/lunchmoney","last_synced_at":"2025-04-11T04:08:13.250Z","repository":{"id":56882395,"uuid":"385453128","full_name":"mmenanno/lunchmoney","owner":"mmenanno","description":"An API client library of the LunchMoney API ","archived":false,"fork":false,"pushed_at":"2025-04-07T21:56:30.000Z","size":7274,"stargazers_count":4,"open_issues_count":3,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-11T04:08:06.222Z","etag":null,"topics":["api-client","gem","lunchmoney","ruby","ruby-gem"],"latest_commit_sha":null,"homepage":"https://mmenanno.github.io/lunchmoney/","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/mmenanno.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":"https://www.buymeacoffee.com/mmenanno"}},"created_at":"2021-07-13T02:50:16.000Z","updated_at":"2025-04-07T21:56:31.000Z","dependencies_parsed_at":"2022-08-20T13:10:41.610Z","dependency_job_id":"8becbe71-4a6b-4bf5-9369-37ce9dbc05f9","html_url":"https://github.com/mmenanno/lunchmoney","commit_stats":{"total_commits":8,"total_committers":1,"mean_commits":8.0,"dds":0.0,"last_synced_commit":"42ac8758fbf49cc7f1c5abedd232e54b90d4469c"},"previous_names":["halorrr/lunchmoney","mmenanno/lunchmoney","halorrr/lunchmoney-ruby"],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmenanno%2Flunchmoney","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmenanno%2Flunchmoney/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmenanno%2Flunchmoney/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmenanno%2Flunchmoney/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mmenanno","download_url":"https://codeload.github.com/mmenanno/lunchmoney/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248339232,"owners_count":21087215,"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":["api-client","gem","lunchmoney","ruby","ruby-gem"],"created_at":"2024-11-21T03:16:11.347Z","updated_at":"2025-04-11T04:08:13.217Z","avatar_url":"https://github.com/mmenanno.png","language":"Ruby","funding_links":["https://www.buymeacoffee.com/mmenanno"],"categories":["Client SDKs and Language Specific API Wrappers"],"sub_categories":["For the [V1 API](https://lunchmoney.app)"],"readme":"# lunchmoney\n\n[![Gem Version](https://badge.fury.io/rb/lunchmoney.svg)](https://badge.fury.io/rb/lunchmoney)\n[![CI](https://github.com/mmenanno/lunchmoney/actions/workflows/ci.yml/badge.svg)](https://github.com/mmenanno/lunchmoney/actions/workflows/ci.yml)\n[![Yard Docs](https://github.com/mmenanno/lunchmoney/actions/workflows/build_and_publish_yard_docs.yml/badge.svg)](https://github.com/mmenanno/lunchmoney/actions/workflows/build_and_publish_yard_docs.yml)\n[![Maintainability](https://api.codeclimate.com/v1/badges/6e84458e8cf831e6a6fa/maintainability)](https://codeclimate.com/github/mmenanno/lunchmoney/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/6e84458e8cf831e6a6fa/test_coverage)](https://codeclimate.com/github/mmenanno/lunchmoney/test_coverage)\n\n\u003ca href=\"https://www.buymeacoffee.com/mmenanno\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" style=\"height: 60px !important;width: 217px !important;\" \u003e\u003c/a\u003e\n\nThis gem is a API client library of the [LunchMoney API](https://lunchmoney.dev/) for the wonderful [LunchMoney](http://lunchmoney.app/) web app for personal finance \u0026 budgeting.\n\nDocumentation is still a work in process, but you can find the yard docs for this gem [here](https://mmenanno.github.io/lunchmoney/) as well as some write ups of the basics below. An example of every call is listed on the [Api class in the yard docs](https://mmenanno.github.io/lunchmoney/LunchMoney/Api.html).\n\n## Usage\n\n### Installation\n\nAdd this line to your application's `Gemfile`:\n\n```Ruby\ngem \"lunchmoney\"\n```\n\n### Set your lunchmoney token\n\nThere are a few ways you can set your API token. You can set it manually using a configure block:\n\n```Ruby\nLunchMoney.configure do |config|\n  config.api_key = \"your_api_key\"\nend\n```\n\nThe config will also _automatically_ pull in the token if set via environment variable named `LUNCHMONEY_TOKEN`\n\nYou can also override the config and set your LunchMoney token for a specific API instance via kwarg:\n\n```Ruby\nLunchMoney::Api.new(api_key: \"your_api_key\")\n```\n\n### Using the API\n\nIt is intended that all calls typically go through a `LunchMoney::Api` instannce. This class delegates methods to their\nrelvant classes behind the scenes. Create an instance of the api, then call the endpoint you need:\n\n```Ruby\napi = LunchMoney::Api.new\napi.categories\n```\n\nWhen the api returns an error a `LunchMoney::Errors` object will be returned. You can check the errors that occured via\n`.messages` on the instance. This will return an array of errors.\n\n```Ruby\napi = LunchMoney::Api.new\nresponse = api.categories\n\nresponse.class\n=\u003e LunchMoney::Errors\n\nresponse.messages\n=\u003e [\"Some error returned by the API\"]\n```\n\nThe instance itself has been set up to act like an array, delegating a lot of common array getter methods directly to\nmessages for you. This enables things like:\n\n```Ruby\napi = LunchMoney::Api.new\nresponse = api.categories\n\nresponse.class\n=\u003e LunchMoney::Errors\n\nresponse.first\n=\u003e \"Some error returned by the API\"\n\nresponse.empty?\n=\u003e false\n\nresponse[0]\n=\u003e \"Some error returned by the API\"\n```\n\n## Contributing to this repo\n\nFeel free to contribute and submit PRs to improve this gem\n\n## Releasing a new gem version\n\n1. Bump the `VERSION` constant in `lib/lunchmoney/version.rb`\n2. Run `bundle install`\n3. Commit and push up the change in a PR\n4. Merge the PR\n5. Create a new tag and release with the name version as v0.0.0\n6. A Github action will kick off and publish the new gem version\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmenanno%2Flunchmoney","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmmenanno%2Flunchmoney","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmenanno%2Flunchmoney/lists"}