class NeverBounce::CLI::Script::JobsCreate::SuppliedInputParser
The parser for SUPPLIED_INPUT=
environment variable. @see process
@see CLI::Feature::BasicInitialize
Attributes
separator[W]
Public Instance Methods
process(content)
click to toggle source
Process content, return parsed structure.
NOTE: The parser doesn't validate e-mail addresses.
process("alice@isp.com Alice Roberts;bob.smith@gmail.com Bob Smith") # => [["alice@isp.com", "Alice Roberts"], ["bob.smith@gmail.com", "Bob Smith"]]
@return [Array<email, name>]
# File lib/never_bounce/cli/script/jobs_create/supplied_input_parser.rb, line 30 def process(content) # NOTE: Keep it stage-procedural for easier debugging. chunks = content.split(separator).map(&:strip).reject(&:empty?) out = chunks.map do |chunk| if (chunk =~ /^(.+?)\s+(.+)$/) [$1, $2] else [chunk, ""] end end out.empty? and raise ArgumentError, "Empty content" out end
Also aliased as: []
separator()
click to toggle source
@return [Regexp]
# File lib/never_bounce/cli/script/jobs_create/supplied_input_parser.rb, line 16 def separator @separator ||= /[;,\n]/ end