rims-rfc822 0.2.2 → 0.2.3

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
  SHA256:
3
- metadata.gz: 6d5fb16811b51a21112bde75cf3afb370097c69205b0351847382a19debeaac9
4
- data.tar.gz: c7a0b7ee568f34e324f2fe3cef2db7908346a09ab7c9131fc6ae96bdd39c06e0
3
+ metadata.gz: cc4454910f11d01d157636ce54fd8cbceeb6bec9dd609f5a8d969ed80cdda046
4
+ data.tar.gz: 773c722bd0f8c13c2475fadb68af4de073eb150f043db04bfca9edf2cccd76b4
5
5
  SHA512:
6
- metadata.gz: 0f4e32a989c3f2d49a304133eba4109d6f058eca263bcf4c593ee81aafce43ef54aae91bd74f8e0cba9dd571c5c4892a0dcfe2b31b4d96cedd4adfe6574509ca
7
- data.tar.gz: 67c9fccdca18ccb61c91f5c416e650a7525de89827654173fd9cc09f403190a5cd586d2eac7934be73080956499be2bdf373f8251a7b79504e513a641d263d50
6
+ metadata.gz: e0ceeaf306c54fac3d97386a95f82c1778abbb21b8078d014d4182e4b1c8717e1af46d9df694007ab38de948cc9c2b9a0721ef390dee07b8a6f4d6576f80aef0
7
+ data.tar.gz: 4500f5d11ca07f4905f4f158e450886dbb1ba5cf5d36b89b14d5b33a0477625d8e6fbf180c6f8eb19e9a5cb38b22b7c0ad11e7c9358b4db102a593f75e4d0ae3
data/lib/rims/rfc822.rb CHANGED
@@ -8,7 +8,7 @@ module RIMS
8
8
  module RFC822
9
9
  module Parse
10
10
  def split_message(msg_txt)
11
- header_txt, body_txt = msg_txt.lstrip.split(/\r?\n\r?\n/, 2)
11
+ header_txt, body_txt = msg_txt.lstrip.split(/\R\R/, 2)
12
12
  if ($&) then
13
13
  header_txt << $&
14
14
  else
@@ -22,13 +22,12 @@ module RIMS
22
22
 
23
23
  def parse_header(header_txt)
24
24
  field_pair_list = header_txt.scan(%r{
25
- ^
26
25
  ((?#name) \S+? )
27
26
  \s* : \s*
28
27
  (
29
28
  (?#value)
30
- .*? (?: \n|\z)
31
- (?: ^\s .*? (?: \n|\z) )*
29
+ .*? (?: \R|\z)
30
+ (?: \s .*? (?: \R|\z) )*
32
31
  )
33
32
  }x)
34
33
 
@@ -432,11 +431,8 @@ module RIMS
432
431
  encoded_word_list = $&.split(/\s+/, -1)
433
432
 
434
433
  unless (foreword.empty?) then
435
- if (dst.encoding.dummy?) then
436
- # run the slow `String#encode' only when really needed
437
- # because of a premise that the strings other than
438
- # encoded words are ASCII only.
439
- foreword.encode!(dst.encoding, charset_convert_options)
434
+ if (Encoding.compatible? dst, foreword) then
435
+ foreword.encode!(dst.encoding, **charset_convert_options)
440
436
  end
441
437
  dst << foreword
442
438
  end
@@ -451,28 +447,26 @@ module RIMS
451
447
  if (decode_charset_encoding) then
452
448
  if (decoded_text.encoding != decode_charset_encoding) then
453
449
  # `decoded_text' is frozen
454
- decoded_text = decoded_text.encode(decode_charset_encoding, charset_convert_options)
450
+ decoded_text = decoded_text.encode(decode_charset_encoding, **charset_convert_options)
455
451
  end
456
- elsif (dst.ascii_only?) then
457
- if (decoded_text.encoding.dummy?) then
458
- dst.encode!(decoded_text.encoding, charset_convert_options)
459
- end
460
- else
461
- if (decoded_text.encoding != dst.encoding) then
452
+ end
453
+
454
+ unless (Encoding.compatible? dst, decoded_text) then
455
+ if (dst.ascii_only?) then
456
+ dst.encode!(decoded_text.encoding, **charset_convert_options)
457
+ else
462
458
  # `decoded_text' is frozen
463
- decoded_text = decoded_text.encode(dst.encoding, charset_convert_options)
459
+ decoded_text = decoded_text.encode(dst.encoding, **charset_convert_options)
464
460
  end
465
461
  end
462
+
466
463
  dst << decoded_text
467
464
  end
468
465
  end
469
466
 
470
467
  unless (src.empty?) then
471
- if (dst.encoding.dummy?) then
472
- # run the slow `String#encode' only when really needed
473
- # because of a premise that the strings other than encoded
474
- # words are ASCII only.
475
- src = src.encode(dst.encoding, charset_convert_options) # `src' may be frozen
468
+ unless (Encoding.compatible? dst, src) then
469
+ src = src.encode(dst.encoding, **charset_convert_options) # `src' may be frozen
476
470
  end
477
471
  dst << src
478
472
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module RIMS
4
4
  module RFC822
5
- VERSION = '0.2.2'
5
+ VERSION = '0.2.3'
6
6
  end
7
7
  end
8
8
 
data/rims-rfc822.gemspec CHANGED
@@ -28,10 +28,11 @@ Gem::Specification.new do |spec|
28
28
  spec.executables = spec.files.grep(%r{^exe/}) {|f| File.basename(f) }
29
29
  spec.require_paths = ['lib']
30
30
 
31
- spec.add_development_dependency 'bundler', '~> 1.17'
32
- spec.add_development_dependency 'rake', '~> 10.0'
31
+ spec.add_development_dependency 'bundler'
32
+ spec.add_development_dependency 'rake'
33
33
  spec.add_development_dependency 'rdoc'
34
34
  spec.add_development_dependency 'test-unit'
35
+ spec.add_development_dependency 'irb'
35
36
  end
36
37
 
37
38
  # Local Variables:
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rims-rfc822
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - TOKI Yoshinori
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-07-22 00:00:00.000000000 Z
11
+ date: 2019-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.17'
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '1.17'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rdoc
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: irb
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  description: |2
70
84
  Fast parser for a RFC822 formatted message.
71
85
  This gem is a component of RIMS (Ruby IMap Server), but can be