Module: FetchUtil::Regulatory::TdmPage

Included in:
FetchUtil::Regulatory
Defined in:
lib/fetch_util/regulatory/tdm_page.rb

Instance Method Summary collapse

Instance Method Details

#extract_tdm_meta_signals(meta_tags, path:) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/fetch_util/regulatory/tdm_page.rb', line 6

def extract_tdm_meta_signals(meta_tags, path:)
  reservation = nil
  policy_url = nil

  meta_tags.each do |attributes|
    name = attributes["name"].to_s.strip.downcase
    reservation ||= attributes["content"] if name == "tdm-reservation"
    policy_url ||= attributes["content"] if name == "tdm-policy"
  end

  extract_tdm_value_signals(reservation: reservation, policy_url: policy_url, path: path)
end

#extract_tdm_value_signals(reservation:, policy_url:, path:) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/fetch_util/regulatory/tdm_page.rb', line 19

def extract_tdm_value_signals(reservation:, policy_url:, path:)
  value = reservation.to_s.strip
  return [[], []] unless %w[0 1].include?(value)

  conditions = {}
  policy = policy_url.to_s.strip
  conditions["policy"] = policy if value == "1" && !policy.empty?
  signals = [
    build_signal(
      value == "1" ? "disallow" : "allow",
      "text-and-data-mining",
      path: path,
      conditions: conditions
    )
  ]
  policies = value == "1" ? [policy_ref(policy, path)] : []
  [signals, dedupe_policy_refs(policies)]
end