Hello community,

here is the log from the commit of package yast2-ruby-bindings for 
openSUSE:Factory checked in at 2019-03-06 19:02:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-ruby-bindings (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-ruby-bindings.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-ruby-bindings"

Wed Mar  6 19:02:56 2019 rev:93 rq:681820 version:4.1.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-ruby-bindings/yast2-ruby-bindings.changes  
2019-01-24 14:01:02.684213678 +0100
+++ 
/work/SRC/openSUSE:Factory/.yast2-ruby-bindings.new.28833/yast2-ruby-bindings.changes
       2019-03-06 19:02:58.449081520 +0100
@@ -1,0 +2,14 @@
+Tue Mar  5 14:23:29 UTC 2019 - Ladislav Slezák <lsle...@suse.cz>
+
+- Always return frozen strings from the translation functions,
+  make the results unified (related to bsc#1125006)
+- 4.1.4
+
+-------------------------------------------------------------------
+Mon Mar  4 09:11:50 UTC 2019 - Michal Filka <mfi...@suse.com>
+
+- bnc#1127685
+  - Internal error message popup is scaled according to its content
+- 4.1.3
+
+-------------------------------------------------------------------

Old:
----
  yast2-ruby-bindings-4.1.2.tar.bz2

New:
----
  yast2-ruby-bindings-4.1.4.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ yast2-ruby-bindings.spec ++++++
--- /var/tmp/diff_new_pack.tr5fsS/_old  2019-03-06 19:02:59.029081364 +0100
+++ /var/tmp/diff_new_pack.tr5fsS/_new  2019-03-06 19:02:59.029081364 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-ruby-bindings
-Version:        4.1.2
+Version:        4.1.4
 Release:        0
 Url:            https://github.com/yast/yast-ruby-bindings
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build

++++++ yast2-ruby-bindings-4.1.2.tar.bz2 -> yast2-ruby-bindings-4.1.4.tar.bz2 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-ruby-bindings-4.1.2/package/yast2-ruby-bindings.changes 
new/yast2-ruby-bindings-4.1.4/package/yast2-ruby-bindings.changes
--- old/yast2-ruby-bindings-4.1.2/package/yast2-ruby-bindings.changes   
2019-01-23 10:06:13.000000000 +0100
+++ new/yast2-ruby-bindings-4.1.4/package/yast2-ruby-bindings.changes   
2019-03-05 16:34:56.000000000 +0100
@@ -1,4 +1,18 @@
 -------------------------------------------------------------------
+Tue Mar  5 14:23:29 UTC 2019 - Ladislav Slezák <lsle...@suse.cz>
+
+- Always return frozen strings from the translation functions,
+  make the results unified (related to bsc#1125006)
+- 4.1.4
+
+-------------------------------------------------------------------
+Mon Mar  4 09:11:50 UTC 2019 - Michal Filka <mfi...@suse.com>
+
+- bnc#1127685
+  - Internal error message popup is scaled according to its content
+- 4.1.3
+
+-------------------------------------------------------------------
 Tue Jan 22 17:58:53 UTC 2019 - lsle...@suse.cz
 
 - Support for FastGettext 2.0 (still works with FastGettext 1.6)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-ruby-bindings-4.1.2/package/yast2-ruby-bindings.spec 
new/yast2-ruby-bindings-4.1.4/package/yast2-ruby-bindings.spec
--- old/yast2-ruby-bindings-4.1.2/package/yast2-ruby-bindings.spec      
2019-01-23 10:06:13.000000000 +0100
+++ new/yast2-ruby-bindings-4.1.4/package/yast2-ruby-bindings.spec      
2019-03-05 16:34:56.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-ruby-bindings
-Version:        4.1.2
+Version:        4.1.4
 Url:            https://github.com/yast/yast-ruby-bindings
 Release:        0
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-ruby-bindings-4.1.2/src/ruby/yast/i18n.rb 
new/yast2-ruby-bindings-4.1.4/src/ruby/yast/i18n.rb
--- old/yast2-ruby-bindings-4.1.2/src/ruby/yast/i18n.rb 2019-01-23 
10:06:13.000000000 +0100
+++ new/yast2-ruby-bindings-4.1.4/src/ruby/yast/i18n.rb 2019-03-05 
16:34:56.000000000 +0100
@@ -43,12 +43,19 @@
     end
 
     # translates given string
+    # @param str [String] the string to translate
+    # @return [String] the translated string, if the translation is not found 
then
+    #   the original text is returned. **The returned String is frozen!**
+    # @note **⚠ The translated string is frozen and cannot be modified. To 
provide
+    #   consistent results the original (not translated) string is also frozen.
+    #   This means this function modifies the passed argument! If you do not 
want this
+    #   behavior then pass a duplicate, e.g. `_(text.dup)`. ⚠**
     def _(str)
       # no textdomain configured yet
       if !@my_textdomain
         Yast.y2warning("No textdomain configured, cannot translate 
#{str.inspect}")
         Yast.y2warning("Called from: #{::Kernel.caller(1).first}")
-        return str
+        return str.freeze
       end
 
       found = true
@@ -60,7 +67,7 @@
           key_exist?(str)
         end
       end
-      found ? Translation._(str) : str
+      found ? Translation._(str) : str.freeze
     end
 
     # No translation, only marks the text to be found by gettext when creating 
POT file,
@@ -101,8 +108,16 @@
     end
 
     # Gets translation based on number.
-    # @param (String) singular text for translators for single value
-    # @param (String) plural text for translators for bigger value
+    # @param [String] singular text for translators for single value
+    # @param [String] plural text for translators for bigger value
+    # @param [String] num the actual number, used for evaluating the correct 
plural form
+    # @return [String] the translated string, if the translation is not found 
then
+    #   the original text is returned (either the plural or the singular 
version,
+    #   depending on the `num` parameter). **The returned String is frozen!**
+    # @note **⚠ The translated string is frozen and cannot be modified. To 
provide
+    #   consistent results the original (not translated) strings are also 
frozen.
+    #   This means this function modifies the passed argument! If you do not 
want this
+    #   behavior then pass a duplicate, e.g. `n_(singular.dup, plural.dup, 
n)`. ⚠**
     def n_(singular, plural, num)
       # no textdomain configured yet
       if !@my_textdomain
@@ -188,6 +203,10 @@
     #
     # @return [String] {singular} if {num} == 1; {plural} otherwise.
     def fallback_n_(singular, plural, num)
+      # always freeze both strings to have consistent results
+      singular.freeze
+      plural.freeze
+
       (num == 1) ? singular : plural
     end
   end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-ruby-bindings-4.1.2/src/ruby/yast/wfm.rb 
new/yast2-ruby-bindings-4.1.4/src/ruby/yast/wfm.rb
--- old/yast2-ruby-bindings-4.1.2/src/ruby/yast/wfm.rb  2019-01-23 
10:06:13.000000000 +0100
+++ new/yast2-ruby-bindings-4.1.4/src/ruby/yast/wfm.rb  2019-03-05 
16:34:56.000000000 +0100
@@ -216,7 +216,7 @@
     # @return [String] human readable exception description
     private_class_method def self.internal_error_msg(e)
       msg = "Internal error. Please report a bug report with logs.\n" \
-        "Run save_y2logs to get complete logs.\n"
+        "Run save_y2logs to get complete logs.\n\n"
 
       if e.is_a?(ArgumentError) && e.message =~ /invalid byte sequence in 
UTF-8/
         msg += "A string was encountered that is not valid in UTF-8.\n" \
@@ -224,8 +224,8 @@
                "Refer to https://www.suse.com/support/kb/doc?id=7018056.\n\n";
       end
 
-      msg + "Details: #{e.message}\n" \
-            "Caller:  #{e.backtrace.first}"
+       msg + "Caller:  #{e.backtrace.first}\n\n" \
+             "Details: #{e.message}"
     end
 
     # Handles a SignalExpection
@@ -273,7 +273,12 @@
         end
       else
         Yast.import "Report"
-        Report.Error(msg)
+        # Pure approximation here
+        # 50 is for usable text area width, +6 is for additional lines like
+        # button line, Error caption and so. Whole dialog is at most 20 lines
+        # high to fit into screen
+        height = [msg.size / 50 + 6, 20].min
+        Report.LongError(msg.gsub(/\n/, '<br />'), height:height)
       end
     rescue Exception => e
       Builtins.y2internal("Error reporting failed with '%1'.Backtrace:\n%2",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-ruby-bindings-4.1.2/tests/i18n_spec.rb 
new/yast2-ruby-bindings-4.1.4/tests/i18n_spec.rb
--- old/yast2-ruby-bindings-4.1.2/tests/i18n_spec.rb    2019-01-23 
10:06:13.000000000 +0100
+++ new/yast2-ruby-bindings-4.1.4/tests/i18n_spec.rb    2019-03-05 
16:34:56.000000000 +0100
@@ -8,6 +8,12 @@
 
 module Yast
   describe I18n do
+
+    before do
+      # do not read the real translations from the system
+      allow(FastGettext).to receive(:add_text_domain)
+    end
+
     describe ".N_" do
       it "returns the original parameter" do
         input = "INPUT TEST"
@@ -43,6 +49,20 @@
         expect(_(SINGULAR)).to eq(TRANSLATED)
       end
 
+      context "translation is not found" do
+        it "returns a frozen string if the translation is not found" do
+          allow(FastGettext).to receive(:key_exist?).and_return(false)
+          expect(_("foo")).to be_frozen
+        end
+
+        it "freezes the passed argument string if the translation is not 
found" do
+          allow(FastGettext).to receive(:key_exist?).and_return(false)
+          text = "foo"
+          _(text)
+          expect(text).to be_frozen
+        end
+      end
+
       context "when FastGettext throws an Errno::ENOENT exception" do
         before do
           allow(FastGettext).to receive(:key_exist?)


Reply via email to