Class: NVDFeedScraper::Meta
- Inherits:
-
Object
- Object
- NVDFeedScraper::Meta
- Defined in:
- lib/nvd_feed_api.rb
Overview
Manage the meta file from a feed.
Usage
Several ways to set the url:
m = NVDFeedScraper::Meta.new()
m.parse
# or
m = NVDFeedScraper::Meta.new
m.url =
m.parse
# or
m = NVDFeedScraper::Meta.new
m.parse()
Instance Attribute Summary collapse
-
#gz_size ⇒ String
readonly
Meta gz size getter.
-
#last_modified_date ⇒ String
readonly
Meta last modified date getter.
-
#sha256 ⇒ String
readonly
Meta JSON sha256 getter.
-
#size ⇒ String
readonly
Meta JSON size getter.
-
#url ⇒ String
Meta URL getter.
-
#zip_size ⇒ String
readonly
Meta zip size getter.
Instance Method Summary collapse
-
#initialize(url = nil) ⇒ Meta
constructor
A new instance of Meta.
-
#parse(*arg) ⇒ Object
Parse the meta file from the URL and set the attributes.
Constructor Details
#initialize(url = nil) ⇒ Meta
Returns a new instance of Meta.
668 669 670 |
# File 'lib/nvd_feed_api.rb', line 668 def initialize(url = nil) @url = url end |
Instance Attribute Details
#gz_size ⇒ String (readonly)
NVDFeedScraper::Meta gz size getter
659 660 661 |
# File 'lib/nvd_feed_api.rb', line 659 def gz_size @gz_size end |
#last_modified_date ⇒ String (readonly)
NVDFeedScraper::Meta last modified date getter
641 642 643 |
# File 'lib/nvd_feed_api.rb', line 641 def last_modified_date @last_modified_date end |
#sha256 ⇒ String (readonly)
NVDFeedScraper::Meta JSON sha256 getter
665 666 667 |
# File 'lib/nvd_feed_api.rb', line 665 def sha256 @sha256 end |
#size ⇒ String (readonly)
NVDFeedScraper::Meta JSON size getter
647 648 649 |
# File 'lib/nvd_feed_api.rb', line 647 def size @size end |
#url ⇒ String
NVDFeedScraper::Meta URL getter.
674 675 676 |
# File 'lib/nvd_feed_api.rb', line 674 def url @url end |
#zip_size ⇒ String (readonly)
NVDFeedScraper::Meta zip size getter
653 654 655 |
# File 'lib/nvd_feed_api.rb', line 653 def zip_size @zip_size end |
Instance Method Details
#parse ⇒ Integer #parse(url) ⇒ Integer
Parse the meta file from the URL and set the attributes.
692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 |
# File 'lib/nvd_feed_api.rb', line 692 def parse(*arg) if arg.empty? elsif arg.length == 1 # arg = url self.url = arg[0] else raise 'Too much arguments' end raise "Can't parse if the URL is empty" if @url.nil? uri = URI(@url) = Net::HTTP.get(uri) = Hash[.split.map { |x| x.split(':', 2) }] raise 'no lastModifiedDate attribute found' unless ['lastModifiedDate'] raise 'no valid size attribute found' unless /[0-9]+/.match?(['size']) raise 'no valid zipSize attribute found' unless /[0-9]+/.match?(['zipSize']) raise 'no valid gzSize attribute found' unless /[0-9]+/.match?(['gzSize']) raise 'no valid sha256 attribute found' unless /[0-9A-F]{64}/.match?(['sha256']) @last_modified_date = ['lastModifiedDate'] @size = ['size'] @zip_size = ['zipSize'] @gz_size = ['gzSize'] @sha256 = ['sha256'] 0 end |