ViewComponents
This repository contains the Ruby view components for the Ariadne design system. It is composed of several projects:
This project is basically a fork and rewrite of Primer's ViewComponents, except instead of Primer, it uses an open source stack we've found useful. Our eternal gratitude to their design team for open sourcing that repo.
Using the gem
todo, lol
<%= render(Ariadne::HeadingComponent.new(tag: :h1)) { "H1 Text" } %>
def initialize(tag: nil, classes: "", options:)
@system_arguments = system_arguments
@system_arguments[:tag] = tag
@system_arguments[:classes] = class_names(*TAG_TO_CLASSES[tag], system_arguments[:classes])
)
end
document schemes, fetch_or_raise, all that
Incorporating Rubocop and other linters
This gem comes with some standard linters to keep your code fresh and consistent. Refer to the documentation for more information.
Getting started with development
So, you just cloned the repo, huh? Great. In addition to Ruby >= 2.7 (3.x preferred), install Overmind and Node/NPM. Then, run the following script to set up your local environment:
script/setup
This will install all the necessary dependencies, plus get you ready for viewing the components and generating the documentation.
If you then run script/server, this will build and run both the documentation site and launch Lookbook.
Adding new components
See the documentation on adding new components.
Running tests
See the documentation on testing.
Generating Documentation and Lookbook
Run script/docs to get a build of the documentation running at localhost:5400. The documentation comes from the YARD comments, and all of the markdowns files in ./docs. You can define the TOC navigation in docs/src/@primer/gatsby-theme-doctocat/nav.yml.
You can generate and view a Lookbook site via the script/lookbook command.
For more information on writing documentation and presenting the components via Loobook, here's more information
Publishing a Release
To publish a release, you must have an account on rubygems and npmjs. Additionally, you must have been added as a maintainer to the project. Please verify that you have 2FA enabled on both accounts.
- Once the changesets release PR has been approved and merged, run
script/publish. This will build and publish the packages. You may be prompted to log into your rubygem and npm account.