Sha256: f4cefc54a16456d4df14d860989d3afd470c9429b16a030a2ec1cb08bf018629

Contents?: true

Size: 647 Bytes

Versions: 2

Compression:

Stored size: 647 Bytes

Contents

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

module Colander
  module Parser
    class Xls < Base
      def parse
        spreadsheet = parse_file
        @emails = collect_emails spreadsheet
      rescue TypeError, IOError
        raise InvalidFile
      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

2 entries across 2 versions & 1 rubygems

Version Path
colander-0.0.2 lib/colander/parser/xls.rb
colander-0.0.1 lib/colander/parser/xls.rb