pdu_tools 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
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.