pdu_tools 0.0.11 → 0.0.12

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 690cdec3a163cbd9fff055805df869c6775dee04
4
- data.tar.gz: c606392f2548459453516d0d4117d06a0db93e94
3
+ metadata.gz: 7a1d29b2c325be277c56302810bf5ff2d670bc0c
4
+ data.tar.gz: da0a05535d770d5f9d6001f72b6b9cec8f04dd7a
5
5
  SHA512:
6
- metadata.gz: 66f929ea3c8a23f344479a418a9a29fb10606eb7e70c901236aade26565a82a27f466938a2537282537927e61dd81200633fdccdd64261bb6751ce83df942949
7
- data.tar.gz: 9dfbb96261462bea76962f25610fbf219b928c8632b0be8b13d36f38fb6850337bb329532592d726bbbad26977f20a8ea258757f2a9e066705ef6669fdfdf369
6
+ metadata.gz: f59b736743430da53b80d70dd663a0af00af5b3005ef0e6e58b50ca26f8966bbd87f5ced99516ea721da690e8f6f7f4861b862c52d944ba1dd245e6d875e7f57
7
+ data.tar.gz: 3a0fcdee326d45a9947cfc1b3fab4bcefdbcd39131b701543d5c95e214efc91881196d62d5829ad17febbc8c81d6021aaeac3c531630b6c811bb7477b647940b
@@ -114,11 +114,13 @@ module PDUTools
114
114
  end.join
115
115
  end
116
116
 
117
+ # Decodes 16bit UTF-16 string into UTF-8 string
117
118
  def decode16bit data, length
118
- dobule_octets = data.split('').in_groups_of(4).collect(&:join)[0, length/2]
119
- dobule_octets.collect do |o|
120
- [o.to_i(16)].pack("U")
121
- end.join
119
+ data.split('').in_groups_of(4).collect()
120
+ double_octets = data.split('').in_groups_of(4).map(&:join).map{|x| x.to_i(16) }[0, length / 2] # integer values
121
+ double_octets.collect do |o|
122
+ [o].pack('S')
123
+ end.join.force_encoding('utf-16le').encode('utf-8')
122
124
  end
123
125
  end
124
126
  end
@@ -87,4 +87,16 @@ describe PDUTools::Decoder do
87
87
  end
88
88
  end
89
89
 
90
+ context "Decode UTF-16 / UCS2 data" do
91
+ let(:pdu) { "0791249194099990040C9124910408426100087101303182438004D83DDC4D" }
92
+ let(:utf16_data) { "D83DDC4D" } # thumbs up smiley in UTF-16 / UCS2
93
+ let(:utf8_data) { [128077].pack('U') } # thumbs up smiley in UTF-8
94
+
95
+ it do
96
+ expect(decoder.decode16bit(utf16_data, utf16_data.length)).to eql(utf8_data)
97
+ message_part = decoder.decode
98
+ expect(message_part.body).to eql(utf8_data)
99
+ end
100
+ end
101
+
90
102
  end
metadata CHANGED
@@ -1,41 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pdu_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Filip Zachar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-24 00:00:00.000000000 Z
11
+ date: 2017-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: phone
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: 1.2.3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.2.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activesupport
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: 3.2.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: 3.2.0
41
41
  description: Tools for encoding and decoding GSM SMS PDUs.
@@ -44,12 +44,12 @@ executables: []
44
44
  extensions: []
45
45
  extra_rdoc_files: []
46
46
  files:
47
- - lib/pdu_tools.rb
48
47
  - lib/pdu_tools/decoder.rb
49
48
  - lib/pdu_tools/encoder.rb
50
49
  - lib/pdu_tools/helpers.rb
51
50
  - lib/pdu_tools/message_part.rb
52
51
  - lib/pdu_tools/pdu.rb
52
+ - lib/pdu_tools.rb
53
53
  - spec/decoder_spec.rb
54
54
  - spec/encoder_spec.rb
55
55
  - spec/spec_helper.rb
@@ -63,17 +63,17 @@ require_paths:
63
63
  - lib
64
64
  required_ruby_version: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  required_rubygems_version: !ruby/object:Gem::Requirement
70
70
  requirements:
71
- - - ">="
71
+ - - '>='
72
72
  - !ruby/object:Gem::Version
73
73
  version: '0'
74
74
  requirements: []
75
75
  rubyforge_project:
76
- rubygems_version: 2.5.1
76
+ rubygems_version: 2.0.14.1
77
77
  signing_key:
78
78
  specification_version: 4
79
79
  summary: Tools for encoding and decoding GSM SMS PDUs.