class Html2rss::Config
The Config
class abstracts from the config data structure and provides default values.
Attributes
channel_config[R]
feed_config[R]
global_config[R]
Public Class Methods
new(feed_config, global_config = {})
click to toggle source
# File lib/html2rss/config.rb, line 8 def initialize(feed_config, global_config = {}) @global_config = global_config.deep_symbolize_keys @feed_config = feed_config.deep_symbolize_keys @channel_config = @feed_config.fetch(:channel, {}) end
Public Instance Methods
attribute?(name)
click to toggle source
# File lib/html2rss/config.rb, line 64 def attribute?(name) attribute_names.include?(name) end
attribute_names()
click to toggle source
# File lib/html2rss/config.rb, line 83 def attribute_names @attribute_names ||= feed_config.fetch(:selectors, {}).keys.tap { |attrs| attrs.delete(:items) } end
attribute_options(name)
click to toggle source
# File lib/html2rss/config.rb, line 60 def attribute_options(name) feed_config.dig(:selectors).fetch(name, {}).merge(channel: channel_config) end
category_selectors()
click to toggle source
# File lib/html2rss/config.rb, line 68 def category_selectors categories = feed_config.dig(:selectors, :categories) return [] unless categories categories = categories.keep_if { |category| category.to_s != '' } categories.map!(&:to_sym) categories.uniq! categories end
description()
click to toggle source
# File lib/html2rss/config.rb, line 39 def description channel_config.fetch :description, "Latest items from #{url}." end
generated_title()
click to toggle source
# File lib/html2rss/config.rb, line 26 def generated_title uri = URI(url) nicer_path = uri.path.split('/') nicer_path.reject! { |part| part == '' } nicer_path.any? ? "#{uri.host}: #{nicer_path.join(' ').titleize}" : uri.host end
headers()
click to toggle source
# File lib/html2rss/config.rb, line 56 def headers global_config.fetch(:headers, {}).merge(channel_config.fetch(:headers, {})) end
items_order()
click to toggle source
# File lib/html2rss/config.rb, line 87 def items_order feed_config.dig(:selectors, :items, :order)&.to_sym end
json?()
click to toggle source
# File lib/html2rss/config.rb, line 52 def json? channel_config.fetch :json, false end
language()
click to toggle source
# File lib/html2rss/config.rb, line 35 def language channel_config.fetch :language, 'en' end
selector(name)
click to toggle source
# File lib/html2rss/config.rb, line 79 def selector(name) feed_config.dig(:selectors, name, :selector) end
time_zone()
click to toggle source
# File lib/html2rss/config.rb, line 48 def time_zone channel_config.fetch :time_zone, 'UTC' end
title()
click to toggle source
# File lib/html2rss/config.rb, line 22 def title channel_config.fetch(:title) { generated_title } end
ttl()
click to toggle source
# File lib/html2rss/config.rb, line 18 def ttl channel_config.fetch :ttl, 360 end
url()
click to toggle source
# File lib/html2rss/config.rb, line 43 def url channel_config.dig :url end
Also aliased as: link