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