From a995cf3276b7c3673db903af171eaebfea5fd97a Mon Sep 17 00:00:00 2001 From: lee Date: Sat, 19 Oct 2024 00:49:39 +0900 Subject: [PATCH 01/10] Fix Safari Ctrl+Enter handling in textarea to prevent unintended line breaks --- app/try_ruby.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/try_ruby.rb b/app/try_ruby.rb index 81ad5a9a..1d3b244b 100644 --- a/app/try_ruby.rb +++ b/app/try_ruby.rb @@ -62,6 +62,7 @@ def initialize #If hold down the control and the Enter key goes down, run $document.on :keydown, '#editor' do |e| if e.key == "Enter" && e.ctrl? + e.prevent do_run end end From 4a06cc9c6e5cadcdb4dfff8491ee58fac90238d1 Mon Sep 17 00:00:00 2001 From: lee Date: Thu, 5 Dec 2024 14:32:56 +0900 Subject: [PATCH 02/10] Make Cmd+Return behave like Ctrl+Enter --- app/dependencies.rb | 1 + app/try_ruby.rb | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/dependencies.rb b/app/dependencies.rb index bc290eac..0f92eb8e 100644 --- a/app/dependencies.rb +++ b/app/dependencies.rb @@ -6,3 +6,4 @@ require 'browser/http' require 'browser/location' require 'browser/history' +require 'browser/navigator' \ No newline at end of file diff --git a/app/try_ruby.rb b/app/try_ruby.rb index 1d3b244b..a3d32cc4 100644 --- a/app/try_ruby.rb +++ b/app/try_ruby.rb @@ -32,6 +32,7 @@ def initialize @current_item = nil @current_copycode = nil @updating = false + @navigator = $window.navigator initialize_menu @@ -61,7 +62,7 @@ def initialize #If hold down the control and the Enter key goes down, run $document.on :keydown, '#editor' do |e| - if e.key == "Enter" && e.ctrl? + if e.key == "Enter" && (e.ctrl? || (@navigator.user_agent&.match?(/\b(Mac|iPad|iPhone|iPod)\b/) && e.meta?)) e.prevent do_run end From 7985a5fadd55b3f283c4829cec4b00139e6618ed Mon Sep 17 00:00:00 2001 From: lee Date: Thu, 5 Dec 2024 16:17:27 +0900 Subject: [PATCH 03/10] Exclude Ctrl+Enter on iOS and iPadOS due to conflicts --- app/try_ruby.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/try_ruby.rb b/app/try_ruby.rb index a3d32cc4..ff04977d 100644 --- a/app/try_ruby.rb +++ b/app/try_ruby.rb @@ -62,7 +62,8 @@ def initialize #If hold down the control and the Enter key goes down, run $document.on :keydown, '#editor' do |e| - if e.key == "Enter" && (e.ctrl? || (@navigator.user_agent&.match?(/\b(Mac|iPad|iPhone|iPod)\b/) && e.meta?)) + if e.key == "Enter" && ((e.ctrl? && !@navigator.user_agent&.match?(/\b(iPad|iPhone|iPod)\b/)) || + (@navigator.user_agent&.match?(/\b(Mac|iPad|iPhone|iPod)\b/) && e.meta?)) e.prevent do_run end From a941dd49732d6a4f583068dfbd798885f8b51056 Mon Sep 17 00:00:00 2001 From: liberaldev Date: Fri, 6 Dec 2024 01:12:22 +0900 Subject: [PATCH 04/10] Add Helper and simplify code --- app/helper.rb | 13 +++++++++++++ app/try_ruby.rb | 6 +++--- 2 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 app/helper.rb diff --git a/app/helper.rb b/app/helper.rb new file mode 100644 index 00000000..438a29b4 --- /dev/null +++ b/app/helper.rb @@ -0,0 +1,13 @@ +class Helper + def initialize(window) + @navigator = window.navigator + end + + def ios? + @navigator.user_agent&.match?(/\b(iPad|iPhone|iPod)\b/) + end + + def macos? + @navigator.user_agent&.match?(/\bMac\b/) + end +end diff --git a/app/try_ruby.rb b/app/try_ruby.rb index ff04977d..4bba66bf 100644 --- a/app/try_ruby.rb +++ b/app/try_ruby.rb @@ -4,6 +4,7 @@ require 'editor' require 'lesson' require 'ruby_engine' +require 'helper' # The TryRuby application class TryRuby @@ -32,7 +33,7 @@ def initialize @current_item = nil @current_copycode = nil @updating = false - @navigator = $window.navigator + @helper = Helper.new($window) initialize_menu @@ -62,8 +63,7 @@ def initialize #If hold down the control and the Enter key goes down, run $document.on :keydown, '#editor' do |e| - if e.key == "Enter" && ((e.ctrl? && !@navigator.user_agent&.match?(/\b(iPad|iPhone|iPod)\b/)) || - (@navigator.user_agent&.match?(/\b(Mac|iPad|iPhone|iPod)\b/) && e.meta?)) + if e.key == "Enter" && ((e.ctrl? && !@helper.ios?) || ((@helper.macos? || @helper.ios?) && e.meta?)) e.prevent do_run end From 5232c66e27f52242cbeb52ac17a8b6beeb6a245b Mon Sep 17 00:00:00 2001 From: lee Date: Fri, 6 Dec 2024 01:38:11 +0900 Subject: [PATCH 05/10] Simplify code --- app/helper.rb | 14 +++++++------- app/try_ruby.rb | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/helper.rb b/app/helper.rb index 438a29b4..6327b7a9 100644 --- a/app/helper.rb +++ b/app/helper.rb @@ -1,13 +1,13 @@ +require 'dependencies' + class Helper - def initialize(window) - @navigator = window.navigator - end + @@navigator = $window.navigator - def ios? - @navigator.user_agent&.match?(/\b(iPad|iPhone|iPod)\b/) + def self.ios? + @@navigator.user_agent&.match?(/\b(iPad|iPhone|iPod)\b/) end - def macos? - @navigator.user_agent&.match?(/\bMac\b/) + def self.macos? + @@navigator.user_agent&.match?(/\bMac\b/) end end diff --git a/app/try_ruby.rb b/app/try_ruby.rb index 4bba66bf..b16a6f9b 100644 --- a/app/try_ruby.rb +++ b/app/try_ruby.rb @@ -33,7 +33,7 @@ def initialize @current_item = nil @current_copycode = nil @updating = false - @helper = Helper.new($window) + #@helper = Helper.new($window) initialize_menu @@ -63,7 +63,7 @@ def initialize #If hold down the control and the Enter key goes down, run $document.on :keydown, '#editor' do |e| - if e.key == "Enter" && ((e.ctrl? && !@helper.ios?) || ((@helper.macos? || @helper.ios?) && e.meta?)) + if (e.key == "Enter" && (e.ctrl? && !Helper.ios?)) || ((Helper.macos? || Helper.ios?) && e.meta?) e.prevent do_run end From 945f95747e2b1e67c6d8fafb7ee95ea6dd0d38fc Mon Sep 17 00:00:00 2001 From: lee Date: Fri, 6 Dec 2024 01:40:35 +0900 Subject: [PATCH 06/10] Return false when nil is encountered --- app/helper.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/helper.rb b/app/helper.rb index 6327b7a9..23f9289d 100644 --- a/app/helper.rb +++ b/app/helper.rb @@ -4,10 +4,10 @@ class Helper @@navigator = $window.navigator def self.ios? - @@navigator.user_agent&.match?(/\b(iPad|iPhone|iPod)\b/) + @@navigator.user_agent&.match?(/\b(iPad|iPhone|iPod)\b/) || false end def self.macos? - @@navigator.user_agent&.match?(/\bMac\b/) + @@navigator.user_agent&.match?(/\bMac\b/) || false end end From 45579c46fe360190e0f348423800b230c599b877 Mon Sep 17 00:00:00 2001 From: lee Date: Fri, 6 Dec 2024 01:46:17 +0900 Subject: [PATCH 07/10] Edit try_ruby.rb --- app/try_ruby.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/try_ruby.rb b/app/try_ruby.rb index b16a6f9b..8e897f67 100644 --- a/app/try_ruby.rb +++ b/app/try_ruby.rb @@ -33,8 +33,6 @@ def initialize @current_item = nil @current_copycode = nil @updating = false - #@helper = Helper.new($window) - initialize_menu # Stop if this is not a TryRuby enabled page From c98b1aaa2d76d336eb37c9ba928fa8cbd55006cc Mon Sep 17 00:00:00 2001 From: lee Date: Fri, 6 Dec 2024 02:09:27 +0900 Subject: [PATCH 08/10] Edit try_ruby.rb --- app/try_ruby.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/try_ruby.rb b/app/try_ruby.rb index 8e897f67..8a24b942 100644 --- a/app/try_ruby.rb +++ b/app/try_ruby.rb @@ -33,6 +33,7 @@ def initialize @current_item = nil @current_copycode = nil @updating = false + initialize_menu # Stop if this is not a TryRuby enabled page From 06233238058275814d0496f4e8f285e956500a85 Mon Sep 17 00:00:00 2001 From: lee Date: Fri, 6 Dec 2024 14:53:51 +0900 Subject: [PATCH 09/10] Edit helper.rb --- app/helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helper.rb b/app/helper.rb index 23f9289d..e295824d 100644 --- a/app/helper.rb +++ b/app/helper.rb @@ -1,7 +1,7 @@ require 'dependencies' class Helper - @@navigator = $window.navigator + @@navigator = $window&.navigator def self.ios? @@navigator.user_agent&.match?(/\b(iPad|iPhone|iPod)\b/) || false From 629a48f5bbcf886d4a357815e03c53b537047e04 Mon Sep 17 00:00:00 2001 From: lee Date: Fri, 6 Dec 2024 14:58:27 +0900 Subject: [PATCH 10/10] Edit try_ruby.rb --- app/try_ruby.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/try_ruby.rb b/app/try_ruby.rb index 8a24b942..2cf7f63c 100644 --- a/app/try_ruby.rb +++ b/app/try_ruby.rb @@ -62,7 +62,7 @@ def initialize #If hold down the control and the Enter key goes down, run $document.on :keydown, '#editor' do |e| - if (e.key == "Enter" && (e.ctrl? && !Helper.ios?)) || ((Helper.macos? || Helper.ios?) && e.meta?) + if ((e.ctrl? && !Helper.ios?) || ((Helper.macos? || Helper.ios?) && e.meta?)) && e.key == "Enter" e.prevent do_run end