Module: FetchUtil::Regulatory::UsagePreferences
- Included in:
- FetchUtil::Regulatory
- Defined in:
- lib/fetch_util/regulatory/usage_preferences.rb
Instance Method Summary collapse
- #extract_content_signal_signals(value, user_agent: nil) ⇒ Object
- #extract_content_usage_robot_signals(value, user_agent: nil) ⇒ Object
- #extract_content_usage_statement_signals(value, path:, user_agent: nil) ⇒ Object
- #sort_usage_preference_signals(signals) ⇒ Object
Instance Method Details
#extract_content_signal_signals(value, user_agent: nil) ⇒ Object
6 7 8 9 10 |
# File 'lib/fetch_util/regulatory/usage_preferences.rb', line 6 def extract_content_signal_signals(value, user_agent: nil) parse_yes_no_preferences(value).map do |label, verb| usage_preference_signal(label, verb, path: "/*", user_agent: user_agent) end end |
#extract_content_usage_robot_signals(value, user_agent: nil) ⇒ Object
12 13 14 15 16 17 |
# File 'lib/fetch_util/regulatory/usage_preferences.rb', line 12 def extract_content_usage_robot_signals(value, user_agent: nil) path, statement = parse_content_usage_rule(value) return [] if statement.nil? || statement.empty? extract_content_usage_statement_signals(statement, path: normalize_output_path(path || "/*"), user_agent: user_agent) end |
#extract_content_usage_statement_signals(value, path:, user_agent: nil) ⇒ Object
19 20 21 22 23 |
# File 'lib/fetch_util/regulatory/usage_preferences.rb', line 19 def extract_content_usage_statement_signals(value, path:, user_agent: nil) parse_structured_usage_preferences(value).map do |label, verb| usage_preference_signal(label, verb, path: path, user_agent: user_agent) end end |
#sort_usage_preference_signals(signals) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/fetch_util/regulatory/usage_preferences.rb', line 25 def sort_usage_preference_signals(signals) Array(signals).sort_by do |signal| [ -path_specificity(signal["path"]), wildcard_signal?(signal) ? 1 : 0, signal_noun(signal), allow_signal?(signal) ? 1 : 0, signal.dig("conditions", "user-agent").to_s ] end end |