summaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
authorStefan Daschek <[email protected]>2012-11-12 17:47:27 +0100
committerStefan Daschek <[email protected]>2012-11-12 17:47:27 +0100
commit2fa7e78e8e06758b68317b76d770a5673c93d99b (patch)
treeda710135051b155b065ce2b26387d2c84654e9c6 /lib
parent49638e7b4120c22a9a90a6aa967f636a7056022e (diff)
downloadcaxlsx-2fa7e78e8e06758b68317b76d770a5673c93d99b.tar.gz
caxlsx-2fa7e78e8e06758b68317b76d770a5673c93d99b.zip
Escape URLs used as target for hyperlinks.
Up to now, when using an URL containing a & character, the generated XML was invalid.
Diffstat (limited to 'lib')
-rw-r--r--lib/axlsx/rels/relationship.rb2
-rw-r--r--lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb2
2 files changed, 2 insertions, 2 deletions
diff --git a/lib/axlsx/rels/relationship.rb b/lib/axlsx/rels/relationship.rb
index 99c8e112..04911904 100644
--- a/lib/axlsx/rels/relationship.rb
+++ b/lib/axlsx/rels/relationship.rb
@@ -55,7 +55,7 @@ module Axlsx
h = self.instance_values
h[:Id] = 'rId' << rId.to_s
str << '<Relationship '
- str << h.map { |key, value| '' << key.to_s << '="' << value.to_s << '"'}.join(' ')
+ str << h.map { |key, value| '' << key.to_s << '="' << Axlsx::coder.encode(value.to_s) << '"'}.join(' ')
str << '/>'
end
diff --git a/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb b/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb
index 3ea89c14..d352ec90 100644
--- a/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb
+++ b/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb
@@ -73,7 +73,7 @@ module Axlsx
# r:id should only be specified for external targets.
# @return [Hash]
def location_or_id
- @target == :external ? { :"r:id" => id } : { :location => location }
+ @target == :external ? { :"r:id" => id } : { :location => Axlsx::coder.encode(location) }
end
end
end