server/executionhandlers/ruby/connection.rb in cpee-2.1.11 vs server/executionhandlers/ruby/connection.rb in cpee-2.1.12

- old
+ new

@@ -10,10 +10,12 @@ # # You should have received a copy of the GNU General Public License along with # CPEE (file COPYING in the main directory). If not, see # <http://www.gnu.org/licenses/>. +require 'charlock_holmes' + class ConnectionWrapper < WEEL::ConnectionWrapperBase def self::loop_guard(arguments,id,count) # {{{ controller = arguments[0] tsn = Time.now tso = controller.loop_guard[id][:timestamp] rescue Time.now @@ -99,11 +101,11 @@ params << Riddl::Header.new("CPEE-BASE",@controller.base_url) params << Riddl::Header.new("CPEE-INSTANCE",@controller.instance_id) params << Riddl::Header.new("CPEE-INSTANCE-URL",@controller.instance_url) params << Riddl::Header.new("CPEE-INSTANCE-UUID",@controller.uuid) - params << Riddl::Header.new("CPEE-CALLBACK",@controller.instance_url + '/callbacks/' + callback) + params << Riddl::Header.new("CPEE-CALLBACK",File.join(@controller.instance_url,'callbacks',callback,'/')) params << Riddl::Header.new("CPEE-CALLBACK-ID",callback) params << Riddl::Header.new("CPEE-ACTIVITY",@handler_position) params << Riddl::Header.new("CPEE-LABEL",@label||'') params << Riddl::Header.new("CPEE-REPLAY",@controller.attributes['replayer_target']) if @controller.attributes[:replayer] && @controller.attributes['replayer_target'] @controller.attributes.each do |key,value| @@ -235,9 +237,17 @@ result = result[0] end end end result + end + + def detected_encoding(text) + CharlockHolmes::EncodingDetector.detect(text)[:encoding] || 'ISO-8859-1' + end + + def convert_to_utf8(text) + CharlockHolmes::Converter.convert(text, detected_encoding(text), "UTF-8") end def structurize_result(result) result.map do |r| if r.is_a? Riddl::Parameter::Simple