Class: Fushin::Models::Website
- Defined in:
- lib/fushin/models/website.rb
Instance Attribute Summary collapse
-
#url ⇒ Object
readonly
Returns the value of attribute url.
Instance Method Summary collapse
- #domain ⇒ Object
-
#initialize(url) ⇒ Website
constructor
A new instance of Website.
- #normalized_url ⇒ Object
- #to_attachements ⇒ Object
- #uri ⇒ Object
- #urlscan_link ⇒ Object
- #vt_link ⇒ Object
Methods inherited from Model
Constructor Details
#initialize(url) ⇒ Website
Returns a new instance of Website.
11 12 13 14 |
# File 'lib/fushin/models/website.rb', line 11 def initialize(url) uri = Embiggen::URI(url) @url = uri..to_s end |
Instance Attribute Details
#url ⇒ Object (readonly)
Returns the value of attribute url.
10 11 12 |
# File 'lib/fushin/models/website.rb', line 10 def url @url end |
Instance Method Details
#domain ⇒ Object
20 21 22 |
# File 'lib/fushin/models/website.rb', line 20 def domain uri.hostname end |
#normalized_url ⇒ Object
28 29 30 |
# File 'lib/fushin/models/website.rb', line 28 def normalized_url @normalized_url ||= uri.path.empty? ? "#{url}/" : url end |
#to_attachements ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/fushin/models/website.rb', line 36 def to_attachements [ { fallback: "virustotal.com link", title: "VT: #{url}", title_link: vt_link, footer: "virustotal.com", footer_icon: "http://www.google.com/s2/favicons?domain=virustotal.com" }, { fallback: "urlscan.io link", title: "urlscan.io: #{domain}", title_link: urlscan_link, footer: "urlscan.io", footer_icon: "http://www.google.com/s2/favicons?domain=urlscan.io" }, ] end |
#uri ⇒ Object
16 17 18 |
# File 'lib/fushin/models/website.rb', line 16 def uri @uri ||= URI(url) end |
#urlscan_link ⇒ Object
24 25 26 |
# File 'lib/fushin/models/website.rb', line 24 def urlscan_link "https://urlscan.io/domain/#{domain}" end |
#vt_link ⇒ Object
32 33 34 |
# File 'lib/fushin/models/website.rb', line 32 def vt_link "https://www.virustotal.com/#/url/#{Digest::SHA256.hexdigest(normalized_url)}" end |