{"id":33914594,"url":"https://github.com/unurgunite/advanced_code_generator","last_synced_at":"2026-04-02T02:08:22.440Z","repository":{"id":200194768,"uuid":"705006798","full_name":"unurgunite/advanced_code_generator","owner":"unurgunite","description":"Code generator based on your preferences","archived":false,"fork":false,"pushed_at":"2025-11-06T18:25:52.000Z","size":86,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-13T11:40:50.768Z","etag":null,"topics":["code-generation","generator","ruby"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/advanced_code_generator","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/unurgunite.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-10-14T19:05:23.000Z","updated_at":"2025-11-12T23:22:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"649d71b6-45ca-45b9-8213-43fb53b657bb","html_url":"https://github.com/unurgunite/advanced_code_generator","commit_stats":null,"previous_names":["unurgunite/code_generator"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/unurgunite/advanced_code_generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unurgunite%2Fadvanced_code_generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unurgunite%2Fadvanced_code_generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unurgunite%2Fadvanced_code_generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unurgunite%2Fadvanced_code_generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unurgunite","download_url":"https://codeload.github.com/unurgunite/advanced_code_generator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unurgunite%2Fadvanced_code_generator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31294399,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T01:43:37.129Z","status":"online","status_checked_at":"2026-04-02T02:00:08.535Z","response_time":89,"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":["code-generation","generator","ruby"],"created_at":"2025-12-12T06:34:37.764Z","updated_at":"2026-04-02T02:08:22.428Z","avatar_url":"https://github.com/unurgunite.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AdvancedCodeGenerator (ACG)\n\n![Repobeats](https://repobeats.axiom.co/api/embed/b945bee4de2921a512eff2d30b19f333915701e7.svg \"Repobeats analytics image\")\n[![Gem Version](https://badge.fury.io/rb/code_generator.svg)](https://rubygems.org/gems/advanced_code_generator)\n[![CI](https://github.com/unurgunite/code_generator/actions/workflows/ci.yml/badge.svg)](https://github.com/unurgunite/advanced_code_generator/actions)\n\n**A fluent DSL for generating Ruby classes with stubbed methods for testing and prototyping.**\n\n* [AdvancedCodeGenerator (ACG)](#advancedcodegenerator-acg)\n    * [Features](#features)\n    * [Installation](#installation)\n    * [Usage Examples](#usage-examples)\n        * [Basic Public Method](#basic-public-method)\n        * [Method with Parameters](#method-with-parameters)\n        * [Private and Protected Methods](#private-and-protected-methods)\n        * [Class Methods](#class-methods)\n        * [Random Value Generation](#random-value-generation)\n    * [Testing](#testing)\n    * [Development](#development)\n        * [Available Commands](#available-commands)\n        * [Release Process](#release-process)\n    * [Requirements](#requirements)\n    * [Contributing](#contributing)\n    * [License](#license)\n    * [Code of Conduct](#code-of-conduct)\n\n## Features\n\n- **Fluent DSL**: Clean, readable syntax for defining methods\n- **Full visibility support**: Public, private, and protected instance methods\n- **Class method support**: Public and private class methods\n- **Parameter configuration**: Define required, optional, and keyword parameters\n- **Smart return values**: Return specific objects or generate random values\n- **Zero dependencies**: Pure Ruby, no external requirements\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'advanced_code_generator'\n```\n\nAnd then execute:\n\n```bash\nbundle install\n```\n\nOr install it yourself:\n\n```bash\ngem install advanced_code_generator\n```\n\n## Usage Examples\n\n### Basic Public Method\n\n```ruby\ngenerator = AdvancedCodeGenerator::Generator.new do |g|\n  g.public_method :hello do |m|\n    m.returns \"world\"\n  end\nend\n\nKlass = generator.build\nobj = Klass.new\nobj.hello # =\u003e \"world\"\n```\n\n### Method with Parameters\n\n```ruby\ngenerator = AdvancedCodeGenerator::Generator.new do |g|\n  g.public_method :greet do |m|\n    m.required :name\n    m.optional :greeting, default: \"Hello\"\n    m.keyword_required :format\n    m.returns true\n  end\nend\n\nKlass = generator.build\nobj = Klass.new\nobj.greet(\"Alice\", format: :json) # =\u003e true\nobj.greet(\"Bob\", \"Hi\", format: :xml) # =\u003e true\n```\n\n### Private and Protected Methods\n\n```ruby\ngenerator = AdvancedCodeGenerator::Generator.new do |g|\n  g.private_method :secret_calculation do |m|\n    m.returns 42\n  end\n\n  g.protected_method :internal_logic do |m|\n    m.returns \"protected result\"\n  end\nend\n\nKlass = generator.build\nobj = Klass.new\nobj.send(:secret_calculation) # =\u003e 42\n# obj.secret_calculation                    # =\u003e NoMethodError\n\n# Protected method access through subclass\nSubclass = Class.new(Klass) do\n  def access_protected\n    internal_logic\n  end\nend\nSubclass.new.access_protected # =\u003e \"protected result\"\n```\n\n### Class Methods\n\n```ruby\ngenerator = AdvancedCodeGenerator::Generator.new do |g|\n  g.public_class_method :factory do |m|\n    m.returns \"class helper\"\n  end\n\n  g.private_class_method :setup do |m|\n    m.returns \"private setup\"\n  end\nend\n\nKlass = generator.build\nKlass.factory # =\u003e \"class helper\"\nKlass.send(:setup) # =\u003e \"private setup\"\n```\n\n### Random Value Generation\n\n```ruby\ngenerator = AdvancedCodeGenerator::Generator.new do |g|\n  g.public_method :random_int do |m|\n    m.returns Integer\n    m.generate true\n  end\n\n  g.public_method :random_string do |m|\n    m.returns String\n    m.generate true\n  end\nend\n\nKlass = generator.build\nobj = Klass.new\nobj.random_int # =\u003e 42891 (random integer)\nobj.random_string # =\u003e \"aB3xY9zK2m\" (random string)\n```\n\n## Testing\n\nRun the test suite:\n\n```bash\nbundle exec rspec\n```\n\n## Development\n\nAfter checking out the repo, run:\n\n```bash\nbin/setup\n```\n\nThis will install dependencies and start an interactive console.\n\n### Available Commands\n\n- `bin/console` - Interactive development console\n- `bin/setup` - Install dependencies and build gem\n- `bundle exec rake` - Run tests and linting\n\n### Release Process\n\n1. Update version in `lib/code_generator/version.rb`\n2. Create and push a git tag: `git tag v0.1.0 \u0026\u0026 git push origin v0.1.0`\n3. GitHub Actions will automatically:\n    - Build the gem\n    - Publish to RubyGems.org\n    - Create a GitHub release\n\n## Requirements\n\n- **Ruby**: \u003e= 2.7.0\n- **No external dependencies**\n\n## Contributing\n\nBug reports and pull requests are welcome! Please follow these guidelines:\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -am 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a pull request\n\nPlease ensure your code passes all tests and follows the existing style.\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).\n\n## Code of Conduct\n\nEveryone interacting with this project is expected to follow the [Code of Conduct](CODE_OF_CONDUCT.md).\n\n---\n\n\u003e **Note**: This gem is designed for **testing and prototyping**. Generated methods accept any parameters and return\n\u003e configured values, making it perfect for creating test doubles and stubs.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funurgunite%2Fadvanced_code_generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funurgunite%2Fadvanced_code_generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funurgunite%2Fadvanced_code_generator/lists"}