hermeneutics 1.14 → 1.16

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: 34855e35779618671f657756ec5e16cb4f57da8925d822a605aa5a727aa3362c
4
- data.tar.gz: 6ebed997b49c501692cd829c2fd010fd06bd4ef34e1f76ca88a6970ca0ffab67
3
+ metadata.gz: e86ac661e4e7c36adaa22ad9496a22b6d6730b96d37b0fadb7bfc3c10adc0918
4
+ data.tar.gz: ebc397e72b4cfb43786313754fc20e817d4ba5ee325762cc6ffc0474a3a60a3c
5
5
  SHA512:
6
- metadata.gz: 04a4d6586ee2dd68e571b6e5a4e9da0bc329fd715dd619a1c72392e0e68992dd6e84bd70f8542645545c8e9d25f81e46c2814cbc794ff0d4e3cd3a11f3794161
7
- data.tar.gz: d44b4fdf6b8285938b3bf4bf66ec5f7627fdd274d0be9ca764ffc918dcfe2ddd431ca9ffdefa988ee6ac5f4e5cffafb5f4b4d227442e9b3dab0f8968835421cc
6
+ metadata.gz: 0acf28e544d40be0c60ed53adce283b3618095997b608776704e59d5748f7ddb6fedbcfec1e1233830045eac5bc7f8cb4972ae1fc8e6fc2456f0396f280108af
7
+ data.tar.gz: d3634608d57395a97b7b11d7ea4e82dfb2e78492f36560ca0d3b68d90ee0a8e4121988ca49b206289b45104f505aafedcb86d3ab25983c0ef6ad96b5eb9689d5
@@ -635,6 +635,7 @@ module Hermeneutics
635
635
  include Enumerable
636
636
 
637
637
  def has? *mails
638
+ mails.flatten!
638
639
  mails.find { |m|
639
640
  case m
640
641
  when Regexp then
@@ -17,45 +17,52 @@ end
17
17
 
18
18
  module Hermeneutics
19
19
 
20
- class PlainText < String
20
+ class PlainText
21
21
  class <<self
22
22
  def parse str
23
23
  t = HeaderExt.decode str
24
24
  new t
25
25
  end
26
26
  end
27
- def initialize text
28
- super
29
- gsub! /\s+/, " "
30
- strip!
27
+ attr_reader :value
28
+ def initialize value
29
+ self.value = value
31
30
  end
32
- def quote
33
- to_s
31
+ def value= value
32
+ @value = value
33
+ @value.gsub! /\s+/, " "
34
+ @value.strip!
35
+ @value.freeze
34
36
  end
37
+ def to_s ; @value ; end
38
+ alias quote to_s
35
39
  def encode
36
- (HeaderExt.encode self).split
40
+ HeaderExt.encode @value
37
41
  end
38
42
  end
39
43
 
40
- class Timestamp < Time
41
- class <<self
42
- def new time = nil
43
- case time
44
- when nil then now
45
- when Time then mktime *time.to_a
46
- else parse time.to_s
47
- end
44
+ class Timestamp
45
+ attr_reader :value
46
+ def initialize value = nil
47
+ self.value = value
48
+ end
49
+ def value= value
50
+ @value = case value
51
+ when nil then Time.now
52
+ when Time then value
53
+ else Time.parse value.to_s
48
54
  end
49
55
  end
56
+ def to_s ; @value.to_s ; end
50
57
  def quote
51
58
  to_s
52
59
  end
53
60
  def encode
54
- rfc822
61
+ @value.rfc822
55
62
  end
56
63
  end
57
64
 
58
- class Id < String
65
+ class Id
59
66
  @host = nil
60
67
  class <<self
61
68
  attr_writer :host
@@ -69,10 +76,15 @@ module Hermeneutics
69
76
  $1
70
77
  end
71
78
  end
72
- attr_reader :id
73
- def initialize id = nil
74
- super id || generate
79
+ attr_reader :value
80
+ def initialize value = nil
81
+ self.value = value
82
+ end
83
+ def value= value
84
+ @value = value ? value.new_string : generate
85
+ @value.freeze
75
86
  end
87
+ def to_s ; @value ; end
76
88
  alias quote to_s
77
89
  def encode
78
90
  "<#{self}>"
@@ -89,7 +101,7 @@ module Hermeneutics
89
101
  end
90
102
  end
91
103
 
92
- class IdList < Array
104
+ class IdList
93
105
  class <<self
94
106
  def parse str
95
107
  i = new
@@ -101,17 +113,23 @@ module Hermeneutics
101
113
  i
102
114
  end
103
115
  end
104
- def initialize
105
- super
116
+ attr_reader :value
117
+ def initialize *ids
118
+ ids.flatten!
119
+ self.value = ids
106
120
  end
107
- def add id
108
- id = Id.new id.to_s unless Id === id
109
- puts id
121
+ def value= ids
122
+ @list = []
123
+ ids.each { |id|
124
+ id = Id.new id unless Id === id
125
+ @list.push id
126
+ }
127
+ @list.freeze
110
128
  end
111
- def quote
129
+ def to_s
112
130
  map { |i| i.quote }.join " "
113
131
  end
114
- alias to_s quote
132
+ alias quote to_s
115
133
  def encode
116
134
  map { |i| i.encode }.join " "
117
135
  end
@@ -124,11 +142,12 @@ module Hermeneutics
124
142
  new i
125
143
  end
126
144
  end
145
+ attr_reader :value
127
146
  def initialize num
128
- @i = num.to_i
147
+ @value = num.to_i
129
148
  end
130
- def method_missing sym, *args, **kwargs, &block
131
- @i.send sym, *args, **kwargs, &block
149
+ def value= value
150
+ @value = value
132
151
  end
133
152
  alias quote to_s
134
153
  alias encode to_s
@@ -13,7 +13,7 @@
13
13
  module Hermeneutics
14
14
 
15
15
  NAME = "hermeneutics"
16
- VERSION = "1.14".freeze
16
+ VERSION = "1.16".freeze
17
17
  SUMMARY = "CGI and mail handling"
18
18
 
19
19
  DESCRIPTION = <<~EOT
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hermeneutics
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.14'
4
+ version: '1.16'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bertram Scharpf
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-14 00:00:00.000000000 Z
11
+ date: 2023-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: supplement
@@ -97,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
97
  version: '0'
98
98
  requirements:
99
99
  - Ruby, at least 3.0
100
- rubygems_version: 3.0.8
100
+ rubygems_version: 3.4.13
101
101
  signing_key:
102
102
  specification_version: 4
103
103
  summary: CGI and mail handling