{"id":20272300,"url":"https://github.com/steemit/steem-mechanize","last_synced_at":"2025-04-11T04:41:53.759Z","repository":{"id":59156455,"uuid":"135355540","full_name":"steemit/steem-mechanize","owner":"steemit","description":"Mechanized Ruby library for the Steem blockchain","archived":false,"fork":false,"pushed_at":"2020-04-30T17:50:59.000Z","size":13,"stargazers_count":0,"open_issues_count":1,"forks_count":7,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-25T02:51:13.421Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/steemit.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":"2018-05-29T21:37:21.000Z","updated_at":"2018-11-08T23:37:25.000Z","dependencies_parsed_at":"2022-09-13T20:11:34.211Z","dependency_job_id":null,"html_url":"https://github.com/steemit/steem-mechanize","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steemit%2Fsteem-mechanize","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steemit%2Fsteem-mechanize/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steemit%2Fsteem-mechanize/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steemit%2Fsteem-mechanize/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/steemit","download_url":"https://codeload.github.com/steemit/steem-mechanize/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248345278,"owners_count":21088242,"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":[],"created_at":"2024-11-14T12:42:47.217Z","updated_at":"2025-04-11T04:41:53.739Z","avatar_url":"https://github.com/steemit.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Gem Version](https://badge.fury.io/rb/steem-mechanize.svg)](https://badge.fury.io/rb/steem-mechanize)\n\n# `steem-mechanize`\n\nSteem Mechanize is an extension to [`steem-ruby`](https://github.com/steemit/steem-ruby) that replaces its `Net::HTTP` client with a [mechanize](https://github.com/sparklemotion/mechanize).\n\n## Feature\n\nThere is only one feature provided by this gem: Persistent HTTP\n\nAll other functionality is identical to `steem-ruby`.  This gem achieves HTTP persistence by instantiating a Mechanize Agent as a singleton and using this agent for all requests.\n\nThis is like having one dedicated browser performing all POST requests for json-rpc.  For certain applications, this can represent a signifiant performance boost over what `Net::HTTP` can offer.\n\nThis gem also serves to demonstrate how easy it is to replace the default client used for performing `json-rpc` requests by `steem-ruby`.  The entire feature can be reviewed here:\n\n[`lib/steem/mechanize/rpc/mechanize_client.rb`](lib/steem/mechanize/rpc/mechanize_client.rb)\n\n## Getting Started\n\nThe `steem-mechanize` gem is compatible with Ruby 2.2.5 or later.\n\n### Install the gem for your project\n\n*(Assuming that [Ruby is installed](https://www.ruby-lang.org/en/downloads/) on your computer, as well as [RubyGems](http://rubygems.org/pages/download))*\n\nTo install the gem on your computer, run in shell:\n\n```bash\ngem install steem-mechanize\n```\n\n... then add in your code:\n\n```ruby\nrequire 'steem-mechanize'\n```\n\nTo add the gem as a dependency to your project with [Bundler](http://bundler.io/), you can add this line in your Gemfile:\n\n```ruby\ngem 'steem-mechanize'\n```\n\nOnce installed, use it just like [`steem-ruby`](https://github.com/steemit/steem-ruby).\n\n### Tests\n\n* Clone the client repository into a directory of your choice:\n  * `git clone https://github.com/steemit/steem-mechanize.git`\n* Navigate into the new folder\n  * `cd steem-mechanize`\n* To run `threads` tests (which quickly verifies thread safety):\n  * `bundle exec rake test:threads`\n\nYou can also run other tests that are not part of the above `test` execution:\n\n* To run `block_range`, which streams blocks (using `json-rpc-batch`)\n  * `bundle exec rake stream:block_range`\n\n## Contributions\n\nPatches are welcome! Contributors are listed in the `steem-mechanize.gemspec` file. Please run the tests (`rake test`) before opening a pull request and make sure that you are passing all of them. If you would like to contribute, but don't know what to work on, check the issues list.\n\n## Issues\n\nWhen you find issues, please report them!\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteemit%2Fsteem-mechanize","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsteemit%2Fsteem-mechanize","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteemit%2Fsteem-mechanize/lists"}