@@ -17,18 +17,22 @@ def results
1717 # Writes results to file.
1818 #
1919 # Formats: tsv, csv, xlsx (xlsx writable on windows only)
20+ # Headers only need to be specified when they differ from
21+ # the columns of the query results.
2022 #
2123 # @param [String] outfile path for outfile
2224 # - for xlsx only: a relative path is relative to user's windows
2325 # home directory, so using an absolute path may be preferable
2426 # @param [Enumerable<#values>] results (default: Sierra::DB.results)
27+ # @param [Array<String>] headers (default: nil)
2528 # @param [Boolean] include_headers (default: true) write headers to file?
2629 # @param [Symbol] format (default: tsv) format of export: :tsv, :csv,
2730 # :xlsx.
28- def write_results ( outfile , results : self . results ,
31+ def write_results ( outfile , results : self . results , headers : nil ,
2932 include_headers : true , format : :tsv )
3033 Sierra ::DB ::Query . write_results ( outfile ,
3134 results : results , format : format ,
35+ headers : headers ,
3236 include_headers : include_headers )
3337 end
3438
@@ -76,15 +80,11 @@ def self.headers
7680 end
7781
7882 # (see #write_results)
79- def self . write_results ( outfile , results : self . results ,
83+ def self . write_results ( outfile , results : self . results , headers : nil ,
8084 include_headers : true , format : :tsv )
8185 puts 'writing results'
82- headers =
83- if include_headers
84- self . headers
85- else
86- ''
87- end
86+ headers ||= self . headers
87+ headers = '' unless include_headers
8888
8989 format = format . to_sym
9090 case format
@@ -159,12 +159,14 @@ def self.write_xlsx(outfile, results, headers)
159159
160160 # Returns cached email "address book" or reads it from 'email.secret'
161161 # yaml file.
162- def self . emails
162+ def self . emails ( file = 'email.secret' )
163163 @emails ||=
164164 begin
165- YAML . load_file ( 'email.secret' )
165+ YAML . load_file ( file )
166166 rescue Errno ::ENOENT
167- YAML . load_file ( File . join ( base_dir , '/email.secret' ) )
167+ YAML . load_file ( File . join ( Connection . base_dir , file ) )
168+ rescue TypeError
169+ YAML . load ( file )
168170 end
169171 end
170172
@@ -176,12 +178,14 @@ def self.emails=(hsh)
176178 # yaml file.
177179 #
178180 # @return [Hash] smtp server connection details (address, port)
179- def self . smtp
181+ def self . smtp ( file = 'smtp.secret' )
180182 @smtp ||=
181183 begin
182- YAML . load_file ( 'smtp.secret' )
184+ YAML . load_file ( file )
183185 rescue Errno ::ENOENT
184- YAML . load_file ( File . join ( base_dir , '/smtp.secret' ) )
186+ YAML . load_file ( File . join ( Connection . base_dir , file ) )
187+ rescue TypeError
188+ YAML . load ( file )
185189 end
186190 end
187191
@@ -197,6 +201,7 @@ def self.send_mail(outfile, mail_details, remove_file: false)
197201 Mail . deliver do
198202 from mail_details [ :from ]
199203 to mail_details [ :to ]
204+ cc mail_details [ :cc ]
200205 subject mail_details [ :subject ]
201206 body mail_details [ :body ]
202207
0 commit comments