Releases: AdamMusa/ruflet
Release list
Ruflet Explorer v0.0.23
Resolve bundled package paths correctly on Windows The Windows client build failed with every bundled package "missing": ruflet must resolve to D:/a/.../ruflet_packages/ruflet, "got file://D/a/...". package_config.json entries are resolved against a base URI built as "file://" + the config path. A POSIX path starts with "/", so that yields the three slashes a file URI needs. A Windows path starts with the drive, so "file://D:/a/..." parses "D:" as the URI's host and drops it from the path -- which no local package could then match. URI#path also keeps the leading slash on the way back, returning "/D:/a/..." to File.realpath. Both directions now go through helpers that add the slash when the path does not start with one and strip it back off ahead of a drive letter. POSIX paths are untouched.
Ruflet Explorer Prebuild (experimental)
prebuild-experimental Merge pull request #25 from AdamMusa/claude/ruflet-rails-erb-native-d…
Ruflet Explorer v0.0.21
Full Changelog: v0.0.20...v0.0.21
Ruflet Explorer v0.0.20
Ruflet 0.0.20 Ruflet Explorer becomes the preview client, built for every platform by the release workflow. Desktop and web clients are server-driven and resolve their server at launch; mobile ships self-contained with the embedded VM. Includes ruby_runtime 0.0.9, rebuilt from current framework sources.
Ruflet Explorer v0.0.19
Ruflet 0.0.19
Release 0.0.18
Ruflet
Ruflet is a Ruby framework inspired by Flet for building web, desktop, and mobile apps in Ruby.
Class-based apps are the recommended and documented standard:
class MyApp < Ruflet::App- implement
def view(page)
Start Here
- Install mobile client app from releases:
- Ruflet Releases
- Install the latest Android APK or iOS build.
- Install gems from RubyGems:
gem install ruflet- Create and run your first app:
ruflet new my_app
cd my_app
bundle install
ruflet run main.rb- Open Ruflet mobile client and connect:
- Enter URL manually, or
- Tap
Scan QRand scan QR shown byruflet run ...
Monorepo folders:
packages/ruflet_corepackages/ruflet_serverpackages/rufletpackages/ruflet_rails
New Project Behavior
ruflet new <appname> generates a Gemfile that references ruflet.
It does not add ruflet to app dependencies.
That keeps CLI global/tooling-level and app deps runtime-focused.
App Style (Required in docs/examples)
Use class-based apps:
require "ruflet"
class MyApp < Ruflet::App
def view(page)
page.vertical_alignment = Ruflet::MainAxisAlignment::CENTER
page.horizontal_alignment = Ruflet::CrossAxisAlignment::CENTER
page.title = "Hello"
page.add(text(value: "Hello Ruflet"))
end
end
MyApp.new.runCLI
ruflet new <appname>
ruflet run [scriptname|path] [--web|--mobile|--desktop]
ruflet build <apk|ios|aab|web|macos|windows|linux>By default ruflet build ... looks for Flutter client at ./ruflet_client.
Set RUFLET_CLIENT_DIR to override.
Development (Monorepo)
cd Monorepo && bundle installDocumentation
This is an Beta version
Ruflet
Ruflet is a Ruby framework inspired by Flet for building web, desktop, and mobile apps in Ruby.
Class-based apps are the recommended and documented standard:
class MyApp < Ruflet::App- implement
def view(page)
Start Here
- Install mobile client app from releases:
- Ruflet Releases
- Install the latest Android APK or iOS build.
- Install gems from RubyGems:
gem install ruflet- Create and run your first app:
ruflet new my_app
cd my_app
bundle install
ruflet run main.rb- Open Ruflet mobile client and connect:
- Enter URL manually, or
- Tap
Scan QRand scan QR shown byruflet run ...
Package Split
Ruflet is split into packages:
ruflet: runtime umbrella packageruflet_server: WebSocket runtimeruflet_cli: CLI executable (ruflet)ruflet_rails: Rails integration
Monorepo folders:
packages/ruflet_corepackages/ruflet_serverpackages/rufletpackages/ruflet_rails
New Project Behavior
ruflet new <appname> generates a Gemfile that references ruflet.
It does not add ruflet to app dependencies.
That keeps CLI global/tooling-level and app deps runtime-focused.
App Style (Required in docs/examples)
Use class-based apps:
require "ruflet"
class MyApp < Ruflet::App
def view(page)
page.vertical_alignment = Ruflet::MainAxisAlignment::CENTER
page.horizontal_alignment = Ruflet::CrossAxisAlignment::CENTER
page.title = "Hello"
page.add(text(value: "Hello Ruflet"))
end
end
MyApp.new.runCLI
ruflet new <appname>
ruflet run [scriptname|path] [--web|--mobile|--desktop]
ruflet build <apk|ios|aab|web|macos|windows|linux>By default ruflet build ... looks for Flutter client at ./ruflet_client.
Set RUFLET_CLIENT_DIR to override.
Development (Monorepo)
cd /Users/macbookpro/Documents/Izeesoft/FlutterApp/ruflet
/opt/homebrew/opt/ruby/bin/bundle installDocumentation
- Creating New App
- Widgets Guide
- Example apps: main.rb, solitaire.rb, calculator.rb
What's Changed
- Dev by @AdamMusa in #1
- remove the hard coded icons by @AdamMusa in #2
- push new version to rubygem by @AdamMusa in #3
- Prebuild by @AdamMusa in #4
- try to fix the linux and ios buikd by @AdamMusa in #5
- try to fix the linux and ios build by @AdamMusa in #6
- Prebuild by @AdamMusa in #7
- Ruflet studio by @AdamMusa in #8
- make it self contain ruflet_rails by @AdamMusa in #9
- update the docs for ruflet_rails by @AdamMusa in #10
- Ruflet studio by @AdamMusa in #11
- set prebuiold by @AdamMusa in #12
- Prebuild by @AdamMusa in #13
- Dev by @AdamMusa in #15
- Dev by @AdamMusa in #16
Full Changelog: https://github.com/AdamMusa/ruflet/commits/prebuild-main
Ruflet Explorer Prebuild (main)
Merge pull request #16 from AdamMusa/dev Dev