https://github.com/moeki0/shufu
Shufu is a simple Command as Code
https://github.com/moeki0/shufu
gem ruby shell
Last synced: about 2 months ago
JSON representation
Shufu is a simple Command as Code
- Host: GitHub
- URL: https://github.com/moeki0/shufu
- Owner: moeki0
- Created: 2022-01-19T09:00:45.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-02-02T01:23:03.000Z (over 4 years ago)
- Last Synced: 2025-11-30T03:50:30.605Z (7 months ago)
- Topics: gem, ruby, shell
- Language: Ruby
- Homepage:
- Size: 20.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Shufu
Shufu is a simple command line generator.
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'shufu'
```
And then execute:
$ bundle install
Or install it yourself as:
$ gem install shufu
## Usage
```ruby
require "shufu"
schema = {
git: {
commit: {
amend: :flag,
author: :equal
}
}
}
command = Shufu::Command.new(schema)
p command.to_s({ amend: true, author: "cc-kawakami" })
# => "git commit --amend --author=cc-kawakami"
```
### Schema
#### Hash
Hash value means that the key is a command.
```ruby
{
git: {
#...
}
}
```
#### Parameter
`:param` value means that the key is parameter.
```ruby
{
git: {
add: {
path: :param
}
}
}
```
#### Flag
`:flag` value means that the key is flag argument like `--key`.
When the input is `true` then the flag argument is output.
```ruby
{
git: {
commit: {
amend: :flag
}
}
}
```
#### Equal
`:equal` value means that the key's value is expected to set with `=` like `--key=value`.
```ruby
{
git: {
commit: {
author: :equal
}
}
}
```
#### Space
`:space` value means that the key's value is expected to set with space like `--key value`.
```ruby
{
git: {
commit: {
author: :space
}
}
}
```
## Development
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).