Sha256: 5a3230fcd5b66f23103ff49809c1b8bd4f275c7da9bcc02eb80bffcd54cdd3dc

Contents?: true

Size: 828 Bytes

Versions: 4

Compression:

Stored size: 828 Bytes

Contents

require "status_page_vi/modules/recordable"

module StatusPageVi
  class BaseResource
    include StatusPageVi::Recordable

    def self.pull
      resource = self.new
      resource.call
      resource.save

      puts resource
    end

    def self.print_history
      puts "-------#{self}-------"
      self.list.each { |resource| puts resource }
      puts
    end

    attr_accessor :timestamp, :options, :scraper

    def call
      self.scraper = Nokogiri::HTML(open(self.class::URL))
      get_data
    end

    def get_data
      self.timestamp = Time.now
      self.options["status"] = stats_good? ? "good" : "bad"
    end

    def to_h
      { self.timestamp => { "status" => self.options["status"] } }
    end

    def to_s
      "#{self.class::URL}: #{self.timestamp} : #{self.options["status"]}"
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
status_page_vi-0.3.1 lib/status_page_vi/resources/base_resource.rb
status_page_vi-0.3.0 lib/status_page_vi/resources/base_resource.rb
status_page_vi-0.2.0 lib/status_page_vi/resources/base_resource.rb
status_page_vi-0.1.0 lib/status_page_vi/resources/base_resource.rb