rims-rfc822 0.2.2 → 0.2.3

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
  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