Class: Html2rss::Config
- Inherits:
-
Object
show all
- Extended by:
- ClassMethods
- Defined in:
- lib/html2rss/config.rb,
lib/html2rss/config/schema.rb,
lib/html2rss/config/validator.rb,
lib/html2rss/config/class_methods.rb,
lib/html2rss/config/dynamic_params.rb,
lib/html2rss/config/request_headers.rb,
lib/html2rss/config/multiple_feeds_config.rb
Overview
The provided configuration is used to generate the RSS feed.
This class provides methods to load and process configuration from a YAML file,
supporting both single and multiple feed configurations.
Configuration is validated during initialization.
Defined Under Namespace
Modules: ClassMethods, Schema
Classes: DynamicParams, InvalidConfig, MultipleFeedsConfig, Preparer, RequestHeaders, Validator
Constant Summary
ClassMethods::UNSET
Instance Attribute Summary collapse
Instance Method Summary
collapse
auto_source_config, default_config, from_hash, json_schema, json_schema_json, load_yaml, schema_path, validate, validate_yaml
Constructor Details
#initialize(config) ⇒ Config
Initializes the configuration object.
Processes deprecated attributes, applies default values, and validates the configuration.
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/html2rss/config.rb', line 24
def initialize(config)
@request_controls = RequestControls.from_config(config)
prepared_config = Preparer.new.call(config)
validated_config = validated_config_for(prepared_config)
@config = validated_config.freeze
@request_controls = request_controls.with_effective_values(
strategy: validated_config[:strategy],
max_redirects: validated_config.dig(:request, :max_redirects),
max_requests: validated_config.dig(:request, :max_requests)
)
end
|
Instance Attribute Details
Returns request controls with provenance.
50
51
52
|
# File 'lib/html2rss/config.rb', line 50
def request_controls
@request_controls
end
|
Instance Method Details
#auto_source ⇒ Object
60
|
# File 'lib/html2rss/config.rb', line 60
def auto_source = config[:auto_source]
|
#channel ⇒ Object
53
|
# File 'lib/html2rss/config.rb', line 53
def channel = config[:channel]
|
#explicit_max_requests? ⇒ Boolean
Returns whether max_requests was explicitly configured by the caller.
44
45
46
|
# File 'lib/html2rss/config.rb', line 44
def explicit_max_requests?
request_controls.explicit?(:max_requests)
end
|
52
|
# File 'lib/html2rss/config.rb', line 52
def = config[:headers]
|
#max_redirects ⇒ Object
38
|
# File 'lib/html2rss/config.rb', line 38
def max_redirects = request_controls.max_redirects
|
#max_requests ⇒ Object
39
|
# File 'lib/html2rss/config.rb', line 39
def max_requests = request_controls.max_requests
|
#request ⇒ Object
57
|
# File 'lib/html2rss/config.rb', line 57
def request = config[:request]
|
#selectors ⇒ Object
59
|
# File 'lib/html2rss/config.rb', line 59
def selectors = config[:selectors]
|
#strategy ⇒ Object
37
|
# File 'lib/html2rss/config.rb', line 37
def strategy = request_controls.strategy
|
#stylesheets ⇒ Object
40
|
# File 'lib/html2rss/config.rb', line 40
def stylesheets = config[:stylesheets]
|
#time_zone ⇒ Object
55
|
# File 'lib/html2rss/config.rb', line 55
def time_zone = config.dig(:channel, :time_zone)
|
#url ⇒ Object
54
|
# File 'lib/html2rss/config.rb', line 54
def url = config.dig(:channel, :url)
|