easysuite 1.2.1 → 1.3.1

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: ce68c493c22986c2c08f2443778f6de32c365eeeed0b64e24182a01b162cd295
4
- data.tar.gz: ababc499754f35cec1e70a68f577ca172b60a2fcab9112059a8b0b779429581d
3
+ metadata.gz: 067c6571048a4ce4432a14f97ceeca3edb15ac577445a90783bcb311d91d2948
4
+ data.tar.gz: 89b4d2d147a313840bc859156308032bec3f0fcc82f3682b1f84841084fcf2ca
5
5
  SHA512:
6
- metadata.gz: 9030154a5e7c000c3ca1742590b88a4fb02a39b029ea0fae635b48a26978904062530efe8ea8c393c16bce92a3dead707fd16710bc61082ae2c06b9e6ba8037c
7
- data.tar.gz: '08f47c288a9f622de954df439c313e417b7fb4760637464aa34582f4e9cc4792f2935807b87d96b14d2edd4802bb263386389b85652caf60549b5e7c2d3dda69'
6
+ metadata.gz: 0d3ac4c52b6a5c6d6d9336d4d9b2a21d767a7171ca27574a8bb17683f8458244447c611b3c3f81a93a7b8f0633c530bbf409d33670e34a95bce2054daea48508
7
+ data.tar.gz: 055e62b4ff1b3cc060e92444732006bb056926429623dffbaad9e02246445884c0d12cd32444c8362eceb1c3b689f5a3e7914c5826cb14e56e4eb17b3ca84d60
@@ -73,6 +73,7 @@ module EasySuite
73
73
  end
74
74
 
75
75
  if values.kind_of?(Hash)
76
+ keys = keys.flatten
76
77
  keys = values.keys if keys.empty?
77
78
 
78
79
  keys.each do |key|
@@ -133,6 +134,14 @@ module EasySuite
133
134
  end
134
135
  end
135
136
 
137
+ #--
138
+ # deep_copy
139
+ #++
140
+ # Simple deep copy.
141
+ def deep_copy(obj)
142
+ Marshal.load(Marshal.dump(obj)) rescue nil
143
+ end
144
+
136
145
  private
137
146
 
138
147
  #--
@@ -13,15 +13,21 @@ module EasySuite
13
13
  #--
14
14
  # initialize
15
15
  #++
16
- def initialize
16
+ def initialize(params = {})
17
17
  @port = Net::SMTP.default_port
18
18
  @helo_domain = "localhost"
19
+ Config.set_values(self, params)
19
20
  end
20
21
 
21
22
  #--
22
23
  # send_mail
23
24
  #++
24
- def send_mail(subject, message)
25
+ def send_mail(subject, message, params = {})
26
+ params = params.dup
27
+ params[:from] ||= @from
28
+ params[:to] ||= @to
29
+ params[:cc] ||= @cc
30
+ params[:bcc] ||= @bcc
25
31
  smtp = Net::SMTP.new(@address, @port)
26
32
 
27
33
  case @port
@@ -36,10 +42,12 @@ module EasySuite
36
42
 
37
43
  body, charset, transfer_encoding = make_body(message)
38
44
  headers = []
39
- headers << make_header("From", @from) if @from
40
- headers << make_header("To", @to) if @to
41
- headers << make_header("Cc", @cc) if @cc
42
- headers << make_header("Bcc", @bcc) if @bcc
45
+
46
+ ["From", "To", "Cc", "Bcc"].each do |key|
47
+ next unless value = params[key.downcase.to_sym]
48
+ headers << make_header(key, value)
49
+ end
50
+
43
51
  headers << make_header("Subject", subject)
44
52
  headers << make_header("Date", Time.now.strftime("%a, %d %b %Y %X %z"))
45
53
  headers << make_header("Mime-Version", "1.0")
@@ -49,33 +57,34 @@ module EasySuite
49
57
  mailsrc += "\n\n#{body}"
50
58
 
51
59
  smtp.start(@helo_domain, @account, @password, @authtype) do |smtp|
52
- smtp.send_mail(mailsrc, mail_from, rcpt_to)
60
+ smtp.send_mail(mailsrc, mail_from(params), rcpt_to(params))
53
61
  end
54
62
  end
55
63
 
64
+ private
65
+
56
66
  #--
57
67
  # mail_from
58
68
  #++
59
- def mail_from
60
- extract_address(@from)
69
+ def mail_from(params)
70
+ extract_address(params[:from])
61
71
  end
62
72
 
63
73
  #--
64
74
  # rcpt_to
65
75
  #++
66
- def rcpt_to
67
- addrs = []
76
+ def rcpt_to(params)
77
+ rcpt_to = []
78
+ addrs = [params[:to]].flatten + [params[:cc]].flatten + [params[:bcc]].flatten
68
79
 
69
- ([@to].flatten + [@cc].flatten + [@bcc].flatten).each do |addr|
80
+ addrs.each do |addr|
70
81
  next unless addr
71
- addrs << extract_address(addr)
82
+ rcpt_to << extract_address(addr)
72
83
  end
73
84
 
74
- addrs.uniq
85
+ rcpt_to.uniq
75
86
  end
76
87
 
77
- private
78
-
79
88
  #--
80
89
  # make_header
81
90
  #++
@@ -1,3 +1,3 @@
1
1
  module EasySuite
2
- VERSION = "1.2.1"
2
+ VERSION = "1.3.1"
3
3
  end
data/lib/easysuite.rb CHANGED
@@ -59,6 +59,9 @@ module Enumerable
59
59
  # If the value is not positive, there is no limit.
60
60
  def peach(pool_size = 2)
61
61
  if block_given?
62
+ max_pools = 32
63
+ pool_size = max_pools if (pool_size <= 0)
64
+ pool_size = [pool_size, max_pools].min
62
65
  pool = EasySuite::ThreadPool.new(pool_size)
63
66
 
64
67
  self.each do |args|
metadata CHANGED
@@ -1,17 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easysuite
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masafumi Kiribayashi
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-07-18 00:00:00.000000000 Z
12
- dependencies: []
13
- description:
14
- email:
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: net-smtp
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
15
26
  executables:
16
27
  - easysuite
17
28
  extensions: []
@@ -29,11 +40,9 @@ files:
29
40
  - sample/common.rb
30
41
  - sample/easytools.rb
31
42
  - sample/sample.rb
32
- homepage:
33
43
  licenses:
34
44
  - MIT
35
45
  metadata: {}
36
- post_install_message:
37
46
  rdoc_options: []
38
47
  require_paths:
39
48
  - lib
@@ -48,8 +57,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
48
57
  - !ruby/object:Gem::Version
49
58
  version: '0'
50
59
  requirements: []
51
- rubygems_version: 3.3.26
52
- signing_key:
60
+ rubygems_version: 3.7.0
53
61
  specification_version: 4
54
62
  summary: Programming for easygoing.
55
63
  test_files: []