fruit_to_lime 0.6.4 → 0.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  module FruitToLime
2
3
  class Tag
3
4
  def serialize_name
@@ -11,7 +12,7 @@ module FruitToLime
11
12
  end
12
13
  def to_xml
13
14
  varn = serialize_name
14
- "<#{varn}>#{ @value.to_s.encode(:xml => :text) }</#{varn}>"
15
+ "<#{varn}>#{ @value.to_s.encode('utf-8').encode(:xml => :text) }</#{varn}>"
15
16
  end
16
17
  def to_s
17
18
  return "tag: '#{@value}'"
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  module FruitToLime
2
3
  module SerializeHelper
3
4
 
@@ -32,7 +33,7 @@ module SerializeHelper
32
33
  elsif (varv.is_a?(Array))
33
34
  varv = varv.map { |elem| SerializeHelper::serialize(elem) }.join("\n")
34
35
  else
35
- varv = varv.to_s.encode(:xml => :text).encode('UTF-8')
36
+ varv = varv.to_s.encode('UTF-8').encode(:xml => :text)
36
37
  end
37
38
  "<#{varn}>#{ varv }</#{varn}>"
38
39
  end.join("\n")
@@ -15,6 +15,9 @@ describe FruitToLime::SerializeHelper do
15
15
  it "should contain start tag" do
16
16
  serialized.should match(/<Note>/)
17
17
  end
18
+ it "should be utf-8" do
19
+ serialized.encoding.should equal Encoding::UTF_8
20
+ end
18
21
  end
19
22
  describe "Serialize person" do
20
23
  let(:serialized) {
@@ -24,12 +27,17 @@ describe FruitToLime::SerializeHelper do
24
27
  p.last_name = "Anka"
25
28
  p.source_ref = FruitToLime::SourceRef.new({:name=>'Go',:id=>"PASE122345"})
26
29
  p.postal_address.city = "Ankeborg"
27
- p.tags="tag:anka"
30
+ p.tags="tag:anka,tag:Bj\u{00F6}rk"
28
31
  cf = FruitToLime::CustomField.new
29
32
  cf.id = "2"
30
33
  cf.title = "cf title"
31
34
  cf.value = "cf value"
32
35
  p.custom_fields.push(cf)
36
+ cf2 = FruitToLime::CustomField.new
37
+ cf2.id = "3"
38
+ cf2.title = "cf title2"
39
+ cf2.value = "cf Bj\u{00F6}rk"
40
+ p.custom_fields.push(cf2)
33
41
  FruitToLime::SerializeHelper::serialize(p)
34
42
  }
35
43
  it "should contain first and last name" do
@@ -47,18 +55,32 @@ describe FruitToLime::SerializeHelper do
47
55
  serialized.should match(/PASE/)
48
56
  serialized.should match(/122345/)
49
57
  end
58
+ it "should handle sv chars in tags" do
59
+ serialized.should match(/tag:Bj\u{00F6}rk/)
60
+ end
61
+ it "should handle sv chars in custom value" do
62
+ serialized.should match(/cf Bj\u{00F6}rk/)
63
+ end
64
+ it "should be utf-8" do
65
+ serialized.encoding.should equal Encoding::UTF_8
66
+ end
50
67
  end
51
68
  describe "Serialize organization" do
52
69
  let(:serialized) {
53
70
  o = FruitToLime::Organization.new
54
71
  o.name = "Ankeborgs bibliotek"
55
- o.tags="tag:bibliotek"
72
+ o.tags="tag:bibliotek,tag:Bj\u{00F6}rk"
56
73
  o.source_ref = FruitToLime::SourceRef.new({:name=>'Go',:id=>"PASE122345"})
57
74
  cf = FruitToLime::CustomField.new
58
75
  cf.id = "2"
59
76
  cf.title = "cf title"
60
77
  cf.value = "cf value"
61
78
  o.custom_fields.push(cf)
79
+ cf2 = FruitToLime::CustomField.new
80
+ cf2.id = "3"
81
+ cf2.title = "cf title2"
82
+ cf2.value = "cf Bj\u{00F6}rk"
83
+ o.custom_fields.push(cf2)
62
84
  FruitToLime::SerializeHelper::serialize(o)
63
85
  }
64
86
  it "should contain name" do
@@ -77,6 +99,15 @@ describe FruitToLime::SerializeHelper do
77
99
  serialized.should match(/PASE/)
78
100
  serialized.should match(/122345/)
79
101
  end
102
+ it "should handle sv chars in tags" do
103
+ serialized.should match(/tag:Bj\u{00F6}rk/)
104
+ end
105
+ it "should handle sv chars in custom value" do
106
+ serialized.should match(/cf Bj\u{00F6}rk/)
107
+ end
108
+ it "should be utf-8" do
109
+ serialized.encoding.should equal Encoding::UTF_8
110
+ end
80
111
  end
81
112
 
82
113
  describe "Serialize goimport" do
@@ -90,6 +121,9 @@ describe FruitToLime::SerializeHelper do
90
121
  it "should contain name" do
91
122
  serialized.should match(/Ankeborgs bibliotek/)
92
123
  end
124
+ it "should be utf-8" do
125
+ serialized.encoding.should equal Encoding::UTF_8
126
+ end
93
127
  end
94
128
  describe "Get import rows" do
95
129
  describe "for person" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fruit_to_lime
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.4
4
+ version: 0.6.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: