Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions app/ruby_engine.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,19 @@ def loading(part = nil)
# When you update the engines, ensure that they are tested correctly.
# Update the engine list also in spec/playground_spec.
ENGINES = [
# https://www.jsdelivr.com/package/npm/@ruby/3.3-wasm-wasi?tab=files&path=dist&version=2.4.1
# https://www.jsdelivr.com/package/npm/@ruby/3.4-wasm-wasi?tab=files&path=dist&version=2.7.2
CRubyWASI.new(
"https://cdn.jsdelivr.net/npm/@ruby/[email protected]/dist/ruby.wasm",
"https://cdn.jsdelivr.net/npm/@ruby/[email protected]/dist/ruby.wasm",
"3.4.1"
),
# https://www.jsdelivr.com/package/npm/@ruby/3.3-wasm-wasi?tab=files&path=dist&version=2.7.2
CRubyWASI.new(
"https://cdn.jsdelivr.net/npm/@ruby/[email protected]/dist/ruby.wasm",
"3.3.0"
),
# https://www.jsdelivr.com/package/npm/@ruby/3.2-wasm-wasi?tab=files&path=dist&version=2.4.1
# https://www.jsdelivr.com/package/npm/@ruby/3.2-wasm-wasi?tab=files&path=dist&version=2.7.2
CRubyWASI.new(
"https://cdn.jsdelivr.net/npm/@ruby/3.2-wasm-wasi@2.4.1/dist/ruby.wasm",
"https://cdn.jsdelivr.net/npm/@ruby/3.2-wasm-wasi@2.7.2/dist/ruby.wasm",
"3.2.2"
),
# Opal.new,
Expand Down
6 changes: 3 additions & 3 deletions app/ruby_engine/cruby_wasi.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ class RubyEngine
class CRubyWASI < RubyEngine
REQUIRED_SCRIPTS = [
{
# https://www.jsdelivr.com/package/npm/@ruby/wasm-wasi?version=2.4.1&tab=files&path=dist
src: "https://cdn.jsdelivr.net/npm/@ruby/wasm-wasi@2.4.1/dist/index.umd.js",
integrity: "sha256-300VwPu5WqY+8LDKdE4RQwDglgJSpMtLFLgyf508bv0=",
# https://www.jsdelivr.com/package/npm/@ruby/wasm-wasi?version=2.7.2&tab=files&path=dist
src: "https://cdn.jsdelivr.net/npm/@ruby/wasm-wasi@2.7.2/dist/index.umd.js",
integrity: "sha256-sxHtVJLn+brnck+saGLUKbu/JEP7pilIBgChJvVdjko=",
crossorigin: "anonymous"
},
{
Expand Down
20 changes: 19 additions & 1 deletion app/try_ruby.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,14 @@ class TryRuby
RUBY
INITIAL_TRY_RESULT = 'Welcome ' * 3

DEFAULT_RUBY_ENGINE = "cruby-3.3.0"
DEFAULT_RUBY_ENGINE = "cruby-3.4.1"

GEM_PRELUDE_WARNINGS = [
"`RubyGems' were not loaded.",
"`error_highlight' was not loaded.",
"`did_you_mean' was not loaded.",
"`syntax_suggest' was not loaded."
].freeze

def self.start
instance
Expand Down Expand Up @@ -455,13 +462,24 @@ def log_error(err)
end

def print_to_output(str, term = "\n")
return if warnings_from_gem_prelude?(str)
@output_buffer << str.to_s + term
@output.value = @output_buffer.join
end

def output=(text)
@output.value = text
end

# TODO: This would be needless if only supports Ruby >= 3.5.
def warnings_from_gem_prelude?(str)
return false if str.nil? || str.empty?

trimmed_str = str.strip
GEM_PRELUDE_WARNINGS.include?(trimmed_str)
end

private
end

$window.on("dom:load") { TryRuby.start }
2 changes: 1 addition & 1 deletion spec/playground_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

RSpec.describe "Playground", type: :feature, js: true do
context "engine" do
engines = ["opal-ww-1.8.2", "cruby-3.2.2", "cruby-3.3.0"]
engines = ["opal-ww-1.8.2", "cruby-3.2.2", "cruby-3.3.0", "cruby-3.4.1"]
engines.each do |engine|
context engine do
before :each do
Expand Down
2 changes: 1 addition & 1 deletion translations/de/try_ruby_280.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
lang: EN
title: Bist du hart?
answer: :mediocre
answer: :mediocre|mediocre:
load: books = {"Gravitys Rainbow" => :splendid, "The deep end" => :abysmal, "Living colors" => :mediocre, "Bumblebees" => :mediocre}
ok: Toll, wow! Du hast eine Übersicht über deine Bewertungen erstellt
error:
Expand Down
14 changes: 7 additions & 7 deletions translations/de/try_ruby_90.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
---
lang: DE
title: Hey, schon die Zusammenfassung #1
answer: NoMethodError|undefined|-e:in `eval'
answer: NoMethodError|undefined|-e:in `eval'|-e:in 'Kernel.eval'
class: stretcher chapmark
ok: Nö, es ist nicht möglich, eine Nummer umzukehren. Klick auf 'Next'
error:
error:
---

Sehen wir uns an, was Sie in der ersten Minute gelernt haben.

### Der Editor
Wenn du den Code in den Editor eingibst und auf Ausführen klickst, erhältst du
Wenn du den Code in den Editor eingibst und auf Ausführen klickst, erhältst du
eine Antwort im Ausgabefenster.
(Fast) jeder Code gibt eine Antwort.

### Nummern und Strings
Nummern und Strings sind Rubys Mathe- und Textobjekte.

### Methoden
Du hast englischsprachige Methoden wie 'reverse' und 'length' verwendet. Und
symbolische Methoden wie die Multiplikationsmethode: \*
Du hast englischsprachige Methoden wie 'reverse' und 'length' verwendet. Und
symbolische Methoden wie die Multiplikationsmethode: \*
__Methoden bedeuten Aktion!__

Das ist die Essenz deines Lernens. Mit einfachen Dingen zu spielen und sie in
neue Dinge zu verwandeln. Fühlst du dich schon wohl? Ich verspreche dir, es ist
Das ist die Essenz deines Lernens. Mit einfachen Dingen zu spielen und sie in
neue Dinge zu verwandeln. Fühlst du dich schon wohl? Ich verspreche dir, es ist
so.

## Okay,
Expand Down
2 changes: 1 addition & 1 deletion translations/en/try_ruby_280.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
lang: EN
title: Are You Harsh?
answer: :mediocre
answer: :mediocre|mediocre:
load: books = {"Gravitys Rainbow" => :splendid, "The deep end" => :abysmal, "Living colors" => :mediocre, "Bumblebees" => :mediocre}
ok: Great, wow! You've made a scorecard of your ratings
error:
Expand Down
6 changes: 3 additions & 3 deletions translations/en/try_ruby_90.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
lang: EN
title: Hey, Summary #1 Already
answer: NoMethodError|undefined|-e:in `eval'
answer: NoMethodError|undefined|-e:in `eval'|-e:in 'Kernel.eval'
class: stretcher chapmark
ok: Nope, it is not possible to reverse a number. Click 'next'
error:
error:
---

Let's look at what you've learned in the first minute.
Expand All @@ -18,7 +18,7 @@ Numbers and strings are Ruby's math and text objects.

### Methods
You've used English-language methods like reverse and length. And symbolic methods like the
multiplication method: \*
multiplication method: \*
__Methods mean action!__

This is the essence of your learning. Taking simple things, toying with them and turning them into
Expand Down
2 changes: 1 addition & 1 deletion translations/es/try_ruby_280.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
lang: ES
title: ¿Eres severo?
answer: :mediocre
answer: :mediocre|mediocre:
load: libros = {"El Arco Iris de Gravedad" => :esplendido, "El fin profundo" => :abismal, "Colores vivientes" => :mediocre, "Abejorros" => :mediocre}
ok: ¡Genial! Has hecho un marcador de puntuaciones.
error:
Expand Down
6 changes: 3 additions & 3 deletions translations/es/try_ruby_90.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
lang: ES
title: Ey, Sumario #1 Ya
answer: NoMethodError|undefined|-e:in `eval'
answer: NoMethodError|undefined|-e:in `eval'|-e:in 'Kernel.eval'
class: stretcher chapmark
ok: Nop, no es posible dar la vuelta a un número. Pulsa 'next'
error:
error:
---

Echemos un vistazo a lo que has aprendido en el primer minuto.
Expand All @@ -17,7 +17,7 @@ Escribir código en el editor y pulsar __run__ te da una respuesta en la ventana
Los números y los strings (las cadenas de texto) son los objetos de Ruby para las mates y los textos.

### Métodos
Ya has usado métodos de lenguaje como dar la __vuelta__ (reverse) o __tamaño__ (length). Y también métodos simbólicos como la multiplicación: \*
Ya has usado métodos de lenguaje como dar la __vuelta__ (reverse) o __tamaño__ (length). Y también métodos simbólicos como la multiplicación: \*
__Los Métodos significan acción!__

Esta es la esencia de tu aprendizaje. Coger cosas simples, jugar con ellas y convertirlas en cosas nuevas. ¿Te sientes cómodo? Seguro que sí.
Expand Down
6 changes: 3 additions & 3 deletions translations/fr/try_ruby_90.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
lang: FR
title: Hé, Résumé #1 Déjà
answer: NoMethodError|undefined
answer: NoMethodError|undefined|-e:in `eval'|-e:in 'Kernel.eval'
class: stretcher chapmark
ok: Nop, ce n'est pas possible d'inverser un nombre. Clique sur 'next'.
error:
error:
---

Regardons ce que tu as appris dans la première minute.
Expand All @@ -18,7 +18,7 @@ Les nombres et les chaînes de caractères sont des objets mathématiques et tex

### Méthodes
Tu as utilisé des méthodes en anglais comme reverse (__inverse__) et length (__longueur__) . Et des méthodes symboliques comme la
méthode de multiplication : \*
méthode de multiplication : \*
__Méthodes signifie action !__

C'est l'essence de ton apprentissage. Prendre des choses simples, jouer avec elles et les transformer en
Expand Down
2 changes: 1 addition & 1 deletion translations/ja/try_ruby_280.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
lang: JA
title: 辛辣な書評をつけてしまった?
answer: :mediocre
answer: :mediocre|mediocre:
load: books = {"Gravitys Rainbow" => :splendid, "The deep end" => :abysmal, "Living colors" => :mediocre, "Bumblebees" => :mediocre}
ok: やった!すごいです。評価のスコアカードを作成しました
error:
Expand Down
4 changes: 2 additions & 2 deletions translations/ja/try_ruby_90.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
lang: JA
title: このくらいで要約(その1)にしましょう
answer: NoMethodError|undefined|-e:in `eval'
answer: NoMethodError|undefined|-e:in `eval'|-e:in 'Kernel.eval'
class: stretcher chapmark
ok: いいえ、数を逆さまにはできません。'Next'を押してください
error:
error:
---

ここまでの数分で学んだことを確認してみましょう。
Expand Down
2 changes: 1 addition & 1 deletion translations/mk/try_ruby_280.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
lang: MK
title: Дали си строг при оценувањето на книгите?
answer: :mediocre
answer: :mediocre|mediocre:
load: books = {"Gravitys Rainbow" => :splendid, "The deep end" => :abysmal, "Living colors" => :mediocre, "Bumblebees" => :mediocre}
ok: Одлично, браво! Ти само што направи карта со твои оцени.
error:
Expand Down
8 changes: 4 additions & 4 deletions translations/mk/try_ruby_90.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
lang: MK
title: Резиме на делот #1. Толку брзо?!
answer: NoMethodError|undefined|-e:in `eval'
answer: NoMethodError|undefined|-e:in `eval'|-e:in 'Kernel.eval'
class: stretcher chapmark
ok: Не, не е можно да го прикажеш бројот во обратен редослед. Кликни 'Next'
error:
error:
---

Ајде да погледнеме што сѐ научи во овие неколку воведни минути.
Expand All @@ -18,10 +18,10 @@ error:

### Методи
Ти користеше методи чие име е блиско на Англискиот-јазик, и тоа: reverse и length. И симболички методи како што е
методот за множење: \*
методот за множење: \*
__Методите значат извршување на некаква активност!__

Ова е основата за твоето учење. Земање на едноставни работи, манипулирање со нив и нивна трансформација во
Ова е основата за твоето учење. Земање на едноставни работи, манипулирање со нив и нивна трансформација во
нови работи. Се чувствуваш комфортно, нели? Ти ветувам дека си.

## Во ред,
Expand Down
8 changes: 4 additions & 4 deletions translations/nl/try_ruby_90.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
lang: NL
title: Je hebt samenvatting 1 bereikt
answer: NoMethodError|undefined|-e:in `eval'
answer: NoMethodError|undefined|-e:in `eval'|-e:in 'Kernel.eval'
class: stretcher chapmark
ok: Nee, nummers kan je niet omdraaien. Klik 'next'
error:
error:
---

Je bent net 1 minuut bezig en kijk eens wat je allemaal al weet.
Expand All @@ -18,8 +18,8 @@ je wilt tonen.
Numbers en strings zijn Ruby's reken en tekst objecten.

### Methodes
Je hebt Engelstalige methodes gebruikt als _reverse_ en _length_.
En symbolische methoden zoals vermenigvuldigen: \*
Je hebt Engelstalige methodes gebruikt als _reverse_ en _length_.
En symbolische methoden zoals vermenigvuldigen: \*
__Methodes betekenen actie!__


Expand Down
2 changes: 1 addition & 1 deletion translations/pt-br/try_ruby_280.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
lang: PT-BR
title: Você é Áspero (Harsh)?
answer: :mediocre
answer: :mediocre|mediocre:
load: livros = {"O Arco-Íris da Gravidade" => :esplendido, "Até o Fim" => :lixo, "Cores Vivas" => :mediocre, "Bumblebees" => :mediocre}
ok: Ótimo, wow! Você fez um scorecard das suas análises.
error:
Expand Down
4 changes: 2 additions & 2 deletions translations/pt-br/try_ruby_90.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
lang: PT-BR
title: Ei, Sumário #1 Pronto
answer: NoMethodError|undefined|-e:in `eval'
answer: NoMethodError|undefined|-e:in `eval'|-e:in 'Kernel.eval'
class: stretcher chapmark
ok: Não, não é possível inverter um número. Clique em __next__ para continuar
error:
error:
---

Vamos revisar o que nós aprendemos neste primeiro minuto.
Expand Down
2 changes: 1 addition & 1 deletion translations/ru/try_ruby_280.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
lang: RU
title: А ты суров?
answer: :mediocre
answer: :mediocre|mediocre:
load: books = {"Война и мир" => :splendid, "Отцы и дети" => :abysmal, "Идиот" => :mediocre, "Евгений Онегин" => :amazing}
ok: Отлично, круто! Вы создали таблицу своих оценок
---
Expand Down
6 changes: 3 additions & 3 deletions translations/ru/try_ruby_90.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
lang: RU
title: Подводим итоги #1 Уже
answer: NoMethodError|undefined|-e:in `eval'
answer: NoMethodError|undefined|-e:in `eval'|-e:in 'Kernel.eval'
class: stretcher chapmark
ok: Неа, нельзя использовать метод reverse с числом. Жми 'next'
error:
error:
---

Давайте посмотрим, что Вы уже изучили.
Expand All @@ -18,7 +18,7 @@ error:

### Методы
Вы попробовали использовать методы из слов на английском языке reverse и length. А также символьный
метод умножения: \*
метод умножения: \*
__Метод значит действие!__

В этом суть Вашего обучения. Берем базовые вещи, играем с ними и превращаем их в
Expand Down
2 changes: 1 addition & 1 deletion translations/tr/try_ruby_280.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
lang: TR
title: Sert Misin?
answer: :mediocre
answer: :mediocre|mediocre:
load: books = {"Gravitys Rainbow" => :splendid, "The deep end" => :abysmal, "Living colors" => :mediocre, "Bumblebees" => :mediocre}
ok: Süper, vay! Değerlendirmelerinin bir puan kardını oluşturdun
error:
Expand Down
6 changes: 3 additions & 3 deletions translations/tr/try_ruby_90.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
lang: TR
title: Hey, Özet #Şimdiden 1 Numara
answer: NoMethodError|undefined|-e:in `eval'
answer: NoMethodError|undefined|-e:in `eval'|-e:in 'Kernel.eval'
class: stretcher chapmark
ok: Yoo, bir numarayı ters çevirmek mümkün değil ki. 'next' butonuna bas
error:
error:
---

Hadi ilk dakikanda öğrendiklerine bir göz atalım.
Expand All @@ -16,7 +16,7 @@ Editöre yazmak ve run butonuna basmak sana çıktı ekranında bir sonuç verir
### Numaralar ve string'ler
Numaraler ve string'ler Ruby'nin matematik ve metin objeleridir.

### Metodlar
### Metodlar
İngilizce dilinde olan reverse ve length gibi metod isimleri kullandın. Ayrıca çarpma metodu
gibi sembolik metodlar da kullandın: \*
__Methodlar aksiyon anlamına gelir!__
Expand Down
2 changes: 1 addition & 1 deletion translations/ua/try_ruby_280.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
lang: UA
title: Ти суворий критик?
answer: :mediocre
answer: :mediocre|mediocre:
load: books = {"Фарбований Лис" => :splendid, "Сутінки. Сага." => :abysmal, "Хоббіт" => :mediocre, "Голодні ігри" => :mediocre}
ok: Ти створив свій власний рейтинг книжок
error:
Expand Down
Loading