Class: OpenGraphReader::Configuration
- Inherits:
-
Object
- Object
- OpenGraphReader::Configuration
- Includes:
- Singleton
- Defined in:
- lib/open_graph_reader/configuration.rb
Overview
The behavior of this library can be tweaked with some parameters. Note that configuration is global, changing it at runtime is not thread safe.
Instance Attribute Summary collapse
-
#discard_invalid_optional_properties ⇒ Bool
Discard invalid optional properties (default:
false
). -
#guess_datetime_format ⇒ Bool
Parse non ISO8601 datetimes (default:
false
). -
#strict ⇒ Bool
Strict mode (default:
false
). -
#synthesize_full_image_url ⇒ Bool
Guess image URL when it looks like a path (default:
false
). -
#synthesize_full_url ⇒ Bool
Guess object URL when it looks like a path (default:
false
). -
#synthesize_image_content ⇒ Bool
Guess the og:image content when it’s missing and og:image:url is present (default:
false
). -
#synthesize_title ⇒ Bool
Fallback to the title tag if og:title is missing (default:
false
). -
#synthesize_url ⇒ Bool
Return request URL if og:url is missing (default:
false
). -
#validate_references ⇒ Bool
Validate references (default:
true
). -
#validate_required ⇒ Bool
Validate required (default:
true
).
Instance Method Summary collapse
-
#reset_to_defaults! ⇒ Object
Reset configuration to their defaults.
Instance Attribute Details
#discard_invalid_optional_properties ⇒ Bool
Discard invalid optional properties (default: false
).
Instead of rendering the entire object invalid, discard invalid optional properties.
47 48 49 |
# File 'lib/open_graph_reader/configuration.rb', line 47 def discard_invalid_optional_properties @discard_invalid_optional_properties end |
#guess_datetime_format ⇒ Bool
Parse non ISO8601 datetimes (default: false
).
The standard clearly requires ISO8601 as format for datetime properties. However other formats are seen in the wild. With this setting enabled, the format is guessed.
101 102 103 |
# File 'lib/open_graph_reader/configuration.rb', line 101 def guess_datetime_format @guess_datetime_format end |
#strict ⇒ Bool
Strict mode (default: false
).
In strict mode, if the fetched site defines an unknown type or property, InvalidObjectError is thrown instead of just ignoring those.
22 23 24 |
# File 'lib/open_graph_reader/configuration.rb', line 22 def strict @strict end |
#synthesize_full_image_url ⇒ Bool
Guess image URL when it looks like a path (default: false
).
83 84 85 |
# File 'lib/open_graph_reader/configuration.rb', line 83 def synthesize_full_image_url @synthesize_full_image_url end |
#synthesize_full_url ⇒ Bool
Guess object URL when it looks like a path (default: false
).
The standard requires the url type to point to a full http or https URL. However it’s common practice to put a path relative to the domain URL. When enabled, the library tries to guess the full URL from such a path. Note the object can still turn invalid if it fails to do so.
76 77 78 |
# File 'lib/open_graph_reader/configuration.rb', line 76 def synthesize_full_url @synthesize_full_url end |
#synthesize_image_content ⇒ Bool
Guess the og:image content when it’s missing and og:image:url is present (default: false
).
The spec requires the og:image property to be present, however not all sites provide it, as they might see it redundant to og:image:url. This option enables a fallback that sets the og:image content to the og:image:url when the former is missing.
92 93 94 |
# File 'lib/open_graph_reader/configuration.rb', line 92 def synthesize_image_content @synthesize_image_content end |
#synthesize_title ⇒ Bool
Fallback to the title tag if og:title is missing (default: false
).
The standard makes defining og:title required, but it’s a common practice to rely on the parser falling back to synthesize it from the title tag. This option enables this feature.
56 57 58 |
# File 'lib/open_graph_reader/configuration.rb', line 56 def synthesize_title @synthesize_title end |
#synthesize_url ⇒ Bool
Return request URL if og:url is missing (default: false
).
The standard makes defining og:url required, but it’s often missing. This enables a fallback that sets the URL to the request URL if none was found.
65 66 67 |
# File 'lib/open_graph_reader/configuration.rb', line 65 def synthesize_url @synthesize_url end |
#validate_references ⇒ Bool
Validate references (default: true
).
If an object should be a reference to another object, validate that it contains an URL. Be careful in turning this off, an attacker could place things like javascript:
links there.
39 40 41 |
# File 'lib/open_graph_reader/configuration.rb', line 39 def validate_references @validate_references end |
#validate_required ⇒ Bool
Validate required (default: true
).
Validate that required properties exist. If this is enabled and they do not, InvalidObjectError is thrown.
30 31 32 |
# File 'lib/open_graph_reader/configuration.rb', line 30 def validate_required @validate_required end |
Instance Method Details
#reset_to_defaults! ⇒ Object
Reset configuration to their defaults
109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/open_graph_reader/configuration.rb', line 109 def reset_to_defaults! @strict = false @validate_required = true @validate_references = true @discard_invalid_optional_properties = false @synthesize_title = false @synthesize_url = false @synthesize_full_url = false @synthesize_full_image_url = false @synthesize_image_content = false @guess_datetime_format = false end |