Sha256: be8b18a71fd08d238ae48dd22e571c64df1a3c37cfeda8fb8003ecc26482722f

Contents?: true

Size: 665 Bytes

Versions: 1

Compression:

Stored size: 665 Bytes

Contents

require 'colander/invalid_file'
require 'colander/parser/base'
require 'roo'
require 'iconv'

module Colander
  module Parser
    class Xls < Base
      def parse
        spreadsheet = parse_file
        @emails = collect_emails spreadsheet
      rescue Exception => e
        raise InvalidFile.new e
      end

      protected

      def parse_file
        Excel.new(@file_path,nil,:ignore)
      end

      def collect_emails(spreadsheet)
        spreadsheet.sheets.map do |sheet|
          spreadsheet.default_sheet = sheet
          spreadsheet.to_yaml.scan(/\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}\b/)
        end.flatten
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
colander-0.0.3 lib/colander/parser/xls.rb