Class: Mihari::Analyzers::Feed

Inherits:
Base show all
Defined in:
lib/mihari/analyzers/feed.rb

Overview

Feed analyzer

Constant Summary

Constants included from Concerns::Retriable

Concerns::Retriable::DEFAULT_CONDITION, Concerns::Retriable::RETRIABLE_ERRORS

Instance Attribute Summary collapse

Attributes inherited from Mihari::Actor

#options

Instance Method Summary collapse

Methods inherited from Base

#call, from_query, #ignore_error?, inherited, #normalized_artifacts, #pagination_interval, #pagination_limit, #parallel?, #result, #truncated_query

Methods inherited from Mihari::Actor

#call, key, key_aliases, keys, #result, #retry_exponential_backoff, #retry_interval, #retry_times, #timeout, type, #validate_configuration!

Methods included from Concerns::Retriable

#retry_on_error

Methods included from Concerns::Configurable

#configuration_keys?, #configured?

Constructor Details

#initialize(url, options: nil, method: "GET", headers: nil, params: nil, json: nil, form: nil, selector: "") ⇒ Feed

Returns a new instance of Feed.

Parameters:

  • query (String)
  • options (Hash, nil) (defaults to: nil)
  • method (String) (defaults to: "GET")
  • headers (Hash, nil) (defaults to: nil)
  • params (Hash, nil) (defaults to: nil)
  • json (Hash, nil) (defaults to: nil)
  • form (form, nil) (defaults to: nil)
  • selector (String) (defaults to: "")
  • url (Object)


41
42
43
44
45
46
47
48
49
50
# File 'lib/mihari/analyzers/feed.rb', line 41

def initialize(url, options: nil, method: "GET", headers: nil, params: nil, json: nil, form: nil, selector: "")
  super(url, options: options)

  @method = method
  @headers = headers || {}
  @params = params
  @json = json
  @form = form
  @selector = selector
end

Instance Attribute Details

#formHash? (readonly)

Returns:

  • (Hash, nil)


10
11
12
# File 'lib/mihari/analyzers/feed.rb', line 10

def form
  @form
end

#headersHash (readonly)

Returns:

  • (Hash)


19
20
21
# File 'lib/mihari/analyzers/feed.rb', line 19

def headers
  @headers
end

#jsonHash? (readonly)

Returns:

  • (Hash, nil)


13
14
15
# File 'lib/mihari/analyzers/feed.rb', line 13

def json
  @json
end

#methodString (readonly)

Returns:

  • (String)


22
23
24
# File 'lib/mihari/analyzers/feed.rb', line 22

def method
  @method
end

#paramsHash? (readonly)

Returns:

  • (Hash, nil)


16
17
18
# File 'lib/mihari/analyzers/feed.rb', line 16

def params
  @params
end

#queryString (readonly)

Returns:

  • (String)


28
29
30
# File 'lib/mihari/analyzers/feed.rb', line 28

def query
  @query
end

#selectorString (readonly)

Returns:

  • (String)


25
26
27
# File 'lib/mihari/analyzers/feed.rb', line 25

def selector
  @selector
end

Instance Method Details

#artifactsObject



52
53
54
55
56
57
# File 'lib/mihari/analyzers/feed.rb', line 52

def artifacts
  data = Services::FeedReader.call(
    url, headers: headers, method: method, params: params, json: json, form: form, timeout: timeout
  )
  Services::FeedParser.call(data, selector)
end