{"id":25667108,"url":"https://github.com/rykov/ember-cli-rails","last_synced_at":"2026-06-13T13:32:18.219Z","repository":{"id":57145942,"uuid":"41104228","full_name":"rykov/ember-cli-rails","owner":"rykov","description":"Build Ember CLI app into a Rails Asset","archived":false,"fork":false,"pushed_at":"2026-04-15T07:00:17.000Z","size":67,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-01T23:37:10.504Z","etag":null,"topics":["ember","ember-cli","rails","rubygem"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/rykov.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-08-20T15:41:45.000Z","updated_at":"2026-04-15T07:00:25.000Z","dependencies_parsed_at":"2024-07-08T04:43:56.991Z","dependency_job_id":null,"html_url":"https://github.com/rykov/ember-cli-rails","commit_stats":null,"previous_names":["rykov/ember-cli-rails","rykov/ember-rails"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rykov/ember-cli-rails","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rykov%2Fember-cli-rails","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rykov%2Fember-cli-rails/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rykov%2Fember-cli-rails/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rykov%2Fember-cli-rails/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rykov","download_url":"https://codeload.github.com/rykov/ember-cli-rails/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rykov%2Fember-cli-rails/sbom","scorecard":{"id":792887,"data":{"date":"2025-08-11","repo":{"name":"github.com/rykov/ember-rails","commit":"446968065d25bb2268c0ed3bcbcbabbdf587f963"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-23T08:04:05.169Z","repository_id":57145942,"created_at":"2025-08-23T08:04:05.169Z","updated_at":"2025-08-23T08:04:05.169Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34286975,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"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":["ember","ember-cli","rails","rubygem"],"created_at":"2025-02-24T09:21:41.791Z","updated_at":"2026-06-13T13:32:18.214Z","avatar_url":"https://github.com/rykov.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rails Asset Wrapper for Ember CLI apps\n\n[![npm version](https://badge.fury.io/js/ember-cli-rails.svg)](https://badge.fury.io/js/ember-cli-rails)\n\nThis is an Ember addon to build a Rails Asset wrapper for your Ember application which can then\nbe included as a RubyGem **without other dependencies** in your Rails application.\n\n## Demo\n\nThis package was used to deploy the landing page on [Version Badge](https://badge.fury.io/)\n\n## Getting started\n\nIf you are using Ember CLI, simply install `ember-cli-rails` as a dev dependency of your\napplication's `package.json`:\n\n```bash\n  npm install ember-cli-rails --save-dev\n```\n\n## Usage\n\nOnce `ember-cli-rails` is a dependency, just run your build as usual:\n\n```bash\n  ember build --environment=production\n```\n\nThe RubyGem will be built into the `dist-rails` directory with the name `ember-\u003capp name\u003e`\nmatching the name and version you have specified in `package.json`\n\nYou can then distribute this package [privately](https://gemfury.com) or\n[publicly](https://rubygems.org) and include it in your Rails app's Gemfile:\n\n```ruby\n  gem 'ember-app-name'\n```\n\n### Configuration\n\nConfigure the addon in your Ember app as follows:\n\n| Option    | Default               | Description                                |\n|-----------|-----------------------|--------------------------------------------|\n| `enabled` | mode == \"production\"  | Enable gem generation                      |\n| `id`      | `\"ember-{{ name }}\"`  | Handlebars template for the gem name       |\n| `prepend` | `\"\"`                  | Prefix for asset URLs (e.g. a CDN origin)  |\n\n### Vite (recommended)\n\nFor Embroider + Vite builds, use the Vite plugin in your `vite.config.mjs` with your config:\n\n```javascript\n// vite.config.mjs\nimport { defineConfig } from \"vite\";\nimport { extensions, classicEmberSupport, ember } from '@embroider/vite';\nimport railsPlugin from \"ember-cli-rails/vite-plugin\";\nimport { babel } from '@rollup/plugin-babel';\n\nexport default defineConfig({\n  plugins: [\n    /* snip: Ember \u0026 Babel plugins */\n    railsPlugin({\n      prepend: \"https://cdn.example.com\",\n    }),\n  ],\n});\n```\n\nThe plugin automatically sets Vite's `base` to match the Rails engine\nasset path — do not set `base` manually.\n\n### @embroider/webpack\n\nFor Embroider + Webpack builds, use the `embroiderBuild` wrapper\nexported from `ember-cli-rails`:\n\n```javascript\n// ember-cli-build.js\nconst EmberApp = require(\"ember-cli/lib/broccoli/ember-app\");\nconst { embroiderBuild } = require(\"ember-cli-rails\");\n\nmodule.exports = function (defaults) {\n  let app = new EmberApp(defaults, {\n    emberRails: {\n      prepend: \"https://cdn.example.com\",\n    },\n  });\n\n  return embroiderBuild(app, {\n    // Embroider options\n  });\n};\n```\n\n### Classic pipeline (pre-Embroider)\n\nIf you are not using Embroider, no build wrapper is needed — the addon\nhooks into the standard Ember CLI pipeline automatically:\n\n```javascript\n// ember-cli-build.js\nconst EmberApp = require(\"ember-cli/lib/broccoli/ember-app\");\n\nmodule.exports = function (defaults) {\n  let app = new EmberApp(defaults, {\n    emberRails: {\n      prepend: \"https://cdn.example.com\",\n    },\n  });\n\n  return app.toTree();\n};\n```\n\n### Rendering the Ember app\n\nThe generated gem adds a `render_\u003capp_name\u003e` helper to your Rails controllers:\n\n```ruby\n  class EmberController \u003c ActionController::Base\n    def index\n      render_ember_app_name\n    end\n  end\n```\n\nThis renders the Ember app's boot HTML, which includes all necessary script and\nstylesheet tags.\n\nThe helper accepts the same arguments as Rails `render`, so, for example, you can\ncustomize the boot HTML by passing a template that uses `content_for` to inject\ncontent into the layout's `yield` blocks:\n\n```ruby\n  render_ember_app_name 'customizations'\n```\n\n```erb\n  \u003c%# app/views/ember/customizations.html.erb %\u003e\n  \u003c% content_for :head do %\u003e\n    \u003cmeta name=\"custom-config\" content=\"value\"\u003e\n  \u003c% end %\u003e\n\n  \u003cp\u003eLoading...\u003c/p\u003e\n```\n\nThe template's `content_for` blocks are yielded into the corresponding\nplaceholders in the boot layout (e.g. `:head`, `:body-footer`), and the\ntemplate body itself is rendered into the main `\u003c%= yield %\u003e` block.\n\n### Serving assets directly\n\nThe generated gem includes Rack middleware that serves your Ember app's assets\nunder the app path prefix. In development, you can also serve assets directly\nby enabling the public file server and asset compilation:\n\n```ruby\n  # config/environments/development.rb\n  config.public_file_server.enabled = true\n  config.assets.compile = true\n```\n\n## Contribution and Improvements\n\nPlease submit an issue if we've missed some key functionality or you're seeing problems.\nBetter yet, fork the code, make the changes, and submit a pull request to speed things along.\n\n### Submitting updates\n\nIf you would like to contribute to this project, just do the following:\n\n1. Fork the repo on Github.\n2. Add your features and make commits to your forked repo.\n3. Make a pull request to this repo.\n4. Review will be done and changes will be requested.\n5. Once changes are done or no changes are required, pull request will be merged.\n6. The next release will have your changes in it.\n\nPlease take a look at the issues page if you want to get started.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frykov%2Fember-cli-rails","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frykov%2Fember-cli-rails","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frykov%2Fember-cli-rails/lists"}