{"id":18810981,"url":"https://github.com/shipengine/shipengine-ruby","last_synced_at":"2025-04-13T20:31:12.997Z","repository":{"id":47395033,"uuid":"362151354","full_name":"ShipEngine/shipengine-ruby","owner":"ShipEngine","description":"The official Ruby SDK for ShipEngine API - source code for the shipengine_sdk Gem","archived":false,"fork":false,"pushed_at":"2024-09-04T15:49:59.000Z","size":389,"stargazers_count":2,"open_issues_count":4,"forks_count":4,"subscribers_count":19,"default_branch":"main","last_synced_at":"2024-10-06T00:36:18.246Z","etag":null,"topics":["address-normalization","address-validation","fedex-api","rest-api","ruby","ruby-gem","sdk","shipengine","shipment-tracking","shipping-api","shipping-cost","shipping-label","shipping-rates","tracking-number","ups-api","usps-api"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/shipengine_sdk","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ShipEngine.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","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}},"created_at":"2021-04-27T14:57:12.000Z","updated_at":"2024-07-23T19:08:55.000Z","dependencies_parsed_at":"2024-01-08T22:32:11.978Z","dependency_job_id":"bc2ffb2a-207c-440c-9e9b-fc02f5166620","html_url":"https://github.com/ShipEngine/shipengine-ruby","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShipEngine%2Fshipengine-ruby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShipEngine%2Fshipengine-ruby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShipEngine%2Fshipengine-ruby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShipEngine%2Fshipengine-ruby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ShipEngine","download_url":"https://codeload.github.com/ShipEngine/shipengine-ruby/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223603624,"owners_count":17172130,"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":["address-normalization","address-validation","fedex-api","rest-api","ruby","ruby-gem","sdk","shipengine","shipment-tracking","shipping-api","shipping-cost","shipping-label","shipping-rates","tracking-number","ups-api","usps-api"],"created_at":"2024-11-07T23:23:39.805Z","updated_at":"2025-04-13T20:31:12.987Z","avatar_url":"https://github.com/ShipEngine.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![ShipEngine](https://shipengine.github.io/img/shipengine-logo-wide.png)](https://shipengine.com)\n\nShipEngine Ruby SDK\n===================\n![GitHub Workflow Status](https://img.shields.io/github/workflow/status/ShipEngine/shipengine-ruby/CI?label=shipengine-ruby\u0026logo=github)\n![GitHub](https://img.shields.io/github/license/ShipEngine/shipengine-ruby?color=teal)\n\nThe Official Ruby SDK for [ShipEngine API](https://shipengine.com) offering low-level access as well as convenience methods.\n\nQuick Start\n===========\n\nInstall the ShipEngine SDK Gem via [RubyGems](https://rubygems.org/gems/shipengine_sdk)\n```bash\ngem install shipengine_sdk\n```\n- The only configuration requirement is an [API Key](https://www.shipengine.com/docs/auth/#api-keys).\n\nMethods\n-------\n* [`create_label_from_rate`](./docs/create-label-from-rate.md) - When retrieving rates for shipments using the `get_rates` method, the returned information contains a `rate_id` property that can be used to purchase a label without having to refill in the shipment information repeatedly.\n* [`create_label_from_shipment_details`](./docs/create-label-from-shipment-details.md) - Purchase and print a label for shipment.\n* [`get_rates`](./docs/get-rates.md) - Given some shipment details and rate options, this method returns a list of rate quotes.\n* [`list_carrier_accounts`](./docs/list-carrier-accounts.md) - Returns a list of carrier accounts that have been connected through\nthe [ShipEngine dashboard](https://www.shipengine.com/docs/carriers/setup/).\n* [`track_by_label_id`](./docs/track-by-label-id.md) - Track a package by its associated label ID.\n* [`track_using_carrier_code_and_tracking_number`](./docs/track-by-tracking-number.md) - Track a package by its associated trackng number.\n* [`validate_addresses`](./docs/validate-addresses.md) - Indicates whether the provided addresses are valid. If the addresses are valid, the method returns a normalized version based on the standards of the country in which the address resides. If an address cannot be normalized, an error is returned.\n* [`void_label_by_id`](./docs/void-label-by-id.md) - Void a label by its ID.\n\nClass Objects\n-------------\n- [ShipEngine]() - A configurable entry point to the ShipEngine API SDK, this class provides convenience methods\n  for various ShipEngine API Services.\n\nInstantiate ShipEngine Class\n----------------------------\n```ruby\nrequire \"shipengine\"\n\napi_key = ENV[\"SHIPENGINE_API_KEY\"]\n\nshipengine = ShipEngine::Client.new(api_key)\n```\n\nContributing\n============\n\nInstall dependencies\n--------------------\n- You will need to `gem install bundler` before using the following command to install dependencies from the Gemfile.\n```bash\n./bin/setup\n```\n\nCommitting\n-------------------------\nThis project adheres to the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification.\n\nPre-Commit/Pre-Push Hooks\n-------------------------\nThis project makes use of [Overcommit](https://github.com/sds/overcommit#usage) to enforce `pre-commit/push hooks`.\nOvercommit will be downloaded and initialized as part of running the `./bin/setup` script, as outlined in the previous section.\n\n- From then on when you commit code `rake lint` will run, and when you push code `rake test` and `rake lint` will run.\nUpon failure of either of these, you can run `rake fix` to auto-fix lint issues and format code, and re-commit/push.\n\nTesting \u0026 Development\n---------------------\n- While you are writing tests as you contribute code you can run tests ad-hoc via `rake` using the following command:\n```bash\nrake test\n```\n- You can run tests and have them re-run when you save changes to a given file with `guard`.\n```bash\nguard\n```\nLastly, you can `format code \u0026 auto-fix lint errors` with the following:\n```bash\nrake fix\n```\n\n\u003e Note: `guard` also provides a repl after tests run for quick repl development.\n\nRepl Development\n----------------\n- You can start a `pry` repl that already has `shipengine` required bun running the following command.\n```bash\n./bin/console\n```\n\u003e If you prefer `irb` over `pry`, you can follow the instructions in the [./bin/console](./bin/console) file. Please\nDO NOT commit any changes you make to that file, unless they are improvements to the console workflow.\n\nPublishing\n-------------------------\nPublishing new versions of the SDK to [RubyGems](https://rubygems.org/) is handled on GitHub via the [Release Please](https://github.com/googleapis/release-please) GitHub Actions workflow. Learn more about about Release PRs, updating the changelog, and commit messages [here](https://github.com/googleapis/release-please#how-should-i-write-my-commits).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshipengine%2Fshipengine-ruby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshipengine%2Fshipengine-ruby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshipengine%2Fshipengine-ruby/lists"}