Sha256: 93a31f6659654edcf172f36b8cc23b884a059820869d96f0cdfb71ac79ccb50a

Contents?: true

Size: 1.56 KB

Versions: 3

Compression:

Stored size: 1.56 KB

Contents

module FBO::Parser::SourcesSoughtHandler
  TAGS = %w( SRCSGT DATE YEAR CBAC PASSWORD ZIP CLASSCOD NAICS OFFADD ) +
    %w( AGENCY OFFICE LOCATION SUBJECT SOLNBR RESPDATE ARCHDATE CONTACT DESC ) +
    %w( LINK URL EMAIL ADDRESS SETASIDE POPADDRESS POPZIP POPCOUNTRY \/SRCSGT )

  ANY_SRCSGT_TAG           = TAGS.join("|")
  SOURCES_SOUGHT_PATTERN  = /^<SRCSGT>/


  def is_sources_sought?(text)
    text =~ SOURCES_SOUGHT_PATTERN
  end

  def parse(text)
    params = {
      date: date(text),
      year: year(text),
      zip:  zip(text),
      class_code: classification_code(text),
      naics_code: naics_code(text),
      agency: agency(text),
      office: office(text),
      location: location(text),
      office_address: office_address(text),
      subject: subject(text),
      solicitation_number: solicitation_number(text),
      response_date: response_date(text),
      archive_date: archive_date(text),
      contact_info: contact(text),
      description: description(text),
      link_url: link_url(text),
      link_description: link_description(text),
      email_address: email_address(text),
      email_description: email_description(text),
      setaside: set_aside(text),
      pop_address: pop_address(text),
      pop_zip: pop_zip_code(text),
      pop_country: pop_country(text)
    }
    FBO::Notices::SourcesSought.new(params)
  end


  protected

  # Returns a concatenated list of all tags for the notice
  #
  # @return [String]
  def any_notice_tag
    ANY_SRCSGT_TAG
  end


  extend FBO::Parser::NoticeHandler
  extend FBO::Parser::ParserHelper
  extend self
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
fbo-0.0.3 lib/fbo/parser/sources_sought_handler.rb
fbo-0.0.2 lib/fbo/parser/sources_sought_handler.rb
fbo-0.0.1 lib/fbo/parser/sources_sought_handler.rb