/scarpe

Scarpe - shoes but running on webview

Primary LanguageRubyMIT LicenseMIT

Scarpe

Scarpe Diem: Seize the Shoes

GitHub Workflow Status (with branch) Ruby Style Guide Discord

"Scarpe" means shoes in Italian. "Scarpe" also means Shoes in modern Ruby and webview!

Scarpe isn't feature complete with any version of Shoes (yet?). We're initially targeting Shoes Classic.

Installation

Add this line to your application's Gemfile:

gem 'scarpe'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install scarpe

Usage

Note: you'll probably want the "Scarpe in Development" instructions below in most cases! Scarpe isn't ready for "just install the released version" production usage yet.

Create an hello world application with:

require "scarpe"

Shoes.app do
  para "Hello World"
end

More examples can be found in the examples folder!

Screenshots

From the hello world example:

hello_world

From the button example:

button

Scarpe in Development

First, clone the main GitHub repository.

bundle install dependencies like webview from the cloned directory in your Ruby of choice.

You can run without Scarpe being installed by including its directory. For instance, from the "examples" directory you can run ruby -I../lib hello_world.rb. You can also install Scarpe locally (gem build scarpe.gemspec && gem install scarpe-0.1.0.gem) or using a Gemfile with the "path" option for local Scarpe.

If you want to be really slick we have a helper development command, for example:

./exe/scarpe examples/button.rb --dev

The --dev flag points to your local scarpe. Also, it has a helper that allows it to attempt to run existing Shoes.rb apps. If you want to turn this off add the flag --no-shoes.

It's very early in the development process (as of February 2023, as I write this.) If you'd like to help develop Scarpe, great! It would be useful to drop us a message/issue/PR on GitHub early on, so we know you're working in a particular area, and we can warn you if anybody else is currently doing so.

We'd love the help!

Shoes DSL Parity Tracker

Core DSL

Syntax Status
para
stack
flow
button
image
edit_line
edit_box
link 🛠️
background
Shoes.url
visibility
Scarpe.app methods
Widgets 🛠️

Secondary DSL && Functionality

Subject Status
Misc Meta Issue
style 🛠️
parents and children

Future

Subject Status
Splash App
Packaging

Core Values

  • Resiliency - We want scarpe to be tested and trustworthy to work consistently and predictably.
  • User Experience - Ruby and this DSL are beautiful for making desktop app authoring easy. We should uphold this standard.
  • Whimsy - We're not here to make money or be corporate. We're here to have fun! Even if we do end up building something amazing.
  • Empathy - Let's help one another, and adhere to good contributor standards while doing so.

## Documentation

We have a collection of primary and secondary sources currently serving as documentation. Long-term we would like to compose a "pickaxe-book"-style specification for Shoes that collates this knowledge into one place.

  1. Nobody Knows Shoes - _why's Manual
  2. Known examples
  3. shoes-original manual

Definition of Done

Scarpe is not intended to be a perfect replica of every element of Shoes. It is, however, intended to be functionally Shoes-compliant on mordern tooling. Certain benchmarks for this include:

More info

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/scarpe. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the Scarpe project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.