Module: SourceMonitor::Sources::Params

Defined in:
lib/source_monitor/sources/params.rb

Class Method Summary collapse

Class Method Details

.default_attributesObject



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/source_monitor/sources/params.rb', line 33

def default_attributes
  {
    active: true,
    scraping_enabled: false,
    auto_scrape: false,
    requires_javascript: false,
    feed_content_readability_enabled: false,
    fetch_interval_minutes: 360,
    adaptive_fetching_enabled: true,
    scraper_adapter: "readability"
  }
end

.permitted_attributesObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/source_monitor/sources/params.rb', line 8

def permitted_attributes
  [
    :name,
    :feed_url,
    :website_url,
    :fetch_interval_minutes,
    :active,
    :auto_scrape,
    :scraping_enabled,
    :requires_javascript,
    :feed_content_readability_enabled,
    :scraper_adapter,
    :items_retention_days,
    :max_items,
    :adaptive_fetching_enabled,
    :health_auto_pause_threshold,
    { scrape_settings: [
      :include_plain_text,
      :timeout,
      :javascript_enabled,
      { selectors: %i[content title], http: [], readability: [] }
    ] }
  ]
end

.sanitize(params) ⇒ Object



46
47
48
49
# File 'lib/source_monitor/sources/params.rb', line 46

def sanitize(params)
  permitted = params.require(:source).permit(*permitted_attributes)
  SourceMonitor::Security::ParameterSanitizer.sanitize(permitted.to_h)
end