Class: Relaton::Nist::Scraper

Inherits:
Object
  • Object
show all
Extended by:
Core::DateParser
Defined in:
lib/relaton/nist/scraper.rb

Constant Summary collapse

DOMAIN =
"https://csrc.nist.gov".freeze

Class Method Summary collapse

Class Method Details

.fetch_gh(hit_data) ⇒ Object



21
22
23
24
25
# File 'lib/relaton/nist/scraper.rb', line 21

def fetch_gh(hit_data)
  uri = URI.parse "#{HitCollection::GHNISTDATA}#{hit_data[:path]}"
  yaml = Net::HTTP.get(uri)
  Item.from_yaml(yaml)
end

.parse_json(hit_data) ⇒ Object



27
28
29
30
31
32
33
34
# File 'lib/relaton/nist/scraper.rb', line 27

def parse_json(hit_data)
  item_data = from_json hit_data
  titles = fetch_titles(hit_data)
  item_data[:fetched] = ::Date.today.to_s
  item_data[:type] = "standard"
  item_data[:title] = titles
  ItemData.new(**item_data)
end

.parse_page(hit_data) ⇒ Relaton::Nist::ItemData

Parse page.

Parameters:

  • hit_data (Hash)

Returns:



17
18
19
# File 'lib/relaton/nist/scraper.rb', line 17

def parse_page(hit_data)
  hit_data[:path] ? fetch_gh(hit_data) : parse_json(hit_data)
end