trikle-mail 0.0.6 → 0.0.7

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/trikle-mail +13 -4
  3. data/lib/triklemailer.rb +11 -6
  4. metadata +15 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1bc1f6ac3d5593c2b07c79554fd73ac007913e2b8e257d044611328eca81d1c5
4
- data.tar.gz: 779eb9f435e07e043f91d5eff45d2092a16076049157dbbbfaa1ee785b99cf5b
3
+ metadata.gz: fcae7d44b75688c09359e79a19af8e9103b57d7f26956f342e766ce3e1677fae
4
+ data.tar.gz: c46a0e13c0e5dfb3630d2718f58280c8cccee86aef0f224b1d697332e55e0f4b
5
5
  SHA512:
6
- metadata.gz: 7b9635c1c57938ea53c143458d48587234855f6b3910b1877c3f99b9bbedef48403748289338c38c2344b27e1915eec6806a8a3dd269225be85661d62fcc8eaa
7
- data.tar.gz: baee1a420a5bcc5cd1ca280b3caee0aae9a0af0f98ff7d8423f49a7f90ab3e0c32cb639773decd0c3021a28edbf66ebbb21ef5d2c196741608099be655c2568e
6
+ metadata.gz: a897b41c9de4827986b7aac850e31d24aa2c3da34f69676264f71e03d182da271554bb70ff53c99b8ea3ea7791b408d0d07beb5bb9bf7a26ed419447a464bca0
7
+ data.tar.gz: 13055a1ef42990d12a0dffeaec428ff9e9edb8540bf5d1edd679acbe54a38422546c7eaef10648f901ee61ac852d0d7462b4e116b4547b76a30663da1495e755
@@ -29,16 +29,25 @@ class TrikleMail
29
29
  c.option '--minutes INTEGER', Integer, 'The number of minutes over which to send the emails'
30
30
 
31
31
  c.action do |args, options|
32
- recipients = CSV.new(args[0], headers: true).map(&:to_h)
33
- sent_file_name = ['sent', options.template.split('.').first].join('_')
34
- sent = CSV.new(sent_file_name, headers: true).map { |r| r[:email] }
32
+ recipients = CSV.new(File.new(args[0]), headers: true, header_converters: :symbol).map(&:to_h)
33
+ sent_file_name = "./#{['sent', options.template.split('.').first].join('_')}.csv"
34
+ sent =
35
+ if File.exists?(sent_file_name)
36
+ CSV.new(File.new(sent_file_name), headers: true, header_converters: :symbol).map { |r| r[:email] }
37
+ else
38
+ []
39
+ end
35
40
 
36
41
  mail_options = Triklemailer::Options.new(
37
42
  template: File.read(options.template),
38
43
  template_name: options.template,
39
44
  is_html: options.template.end_with?('html'),
40
45
  from: options.from,
41
- subject: options.subject
46
+ subject: options.subject,
47
+ port: options.port,
48
+ host: options.host,
49
+ username: options.username,
50
+ password: options.password
42
51
  )
43
52
 
44
53
  Triklemailer.send_mail(mail_options, recipients, sent)
@@ -2,8 +2,12 @@ require 'mail'
2
2
  require 'csv'
3
3
 
4
4
  module Triklemailer
5
- VERSION = '0.0.6'
6
- Options = Struct.new(:template, :template_name, :is_html, :from, :subject, keyword_init: true)
5
+ VERSION = '0.0.7'
6
+ Options = Struct.new(
7
+ :template, :template_name, :is_html, :from, :subject,
8
+ :host, :port, :username, :password,
9
+ keyword_init: true
10
+ )
7
11
 
8
12
  # It should take:
9
13
  # * A list of emails and data
@@ -78,18 +82,19 @@ module Triklemailer
78
82
  options.template_name)
79
83
  rescue => e
80
84
  puts "Failed to send email to #{recipient[:email]}."
85
+ puts e
81
86
  next
82
87
  end
83
88
  end
84
89
  end
85
90
 
86
- def log_sent(email, template)
87
- log_file_name = ['sent', template.split('.').first].join('_')
91
+ def self.log_sent(email, template)
92
+ log_file_name = "./#{['sent', template.split('.').first].join('_')}.csv"
88
93
 
89
94
  CSV.open(
90
- "./#{log_file_name}.csv",
95
+ log_file_name,
91
96
  'a',
92
- write_headers: true,
97
+ write_headers: !File.exists?(log_file_name),
93
98
  headers: ['email', 'sent_at']
94
99
  ) do |csv|
95
100
  csv << [email, Time.now]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trikle-mail
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jasper Lyons
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '2'
83
+ - !ruby/object:Gem::Dependency
84
+ name: byebug
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  description: Send bulk email in a trickle over mandrill
84
98
  email: jasper.lyons@gmail.com
85
99
  executables: