Sha256: 9cb21b9f330c7f22db51f08483d71fb26f2bab9830a2730701a4df708c188e46
Contents?: true
Size: 1.58 KB
Versions: 1
Compression:
Stored size: 1.58 KB
Contents
require 'html2rss/config' require 'html2rss/feed_builder' require 'html2rss/version' require 'html2rss/utils' require 'yaml' ## # The Html2rss namespace. # Request HTML from an URL and transform it to a RSS 2.0 object. module Html2rss ## # Returns a RSS object which is generated from the provided file. # # `file_path`: a File object of a YAML file # `name`: the of the feed # # Example: # # feed = Html2rss.feed_from_yaml_config(File.join(['spec', 'config.test.yml']), 'nuxt-releases') # # => #<RSS::Rss:0x00007fb2f6331228 # @return [RSS:Rss] def self.feed_from_yaml_config(file, name) # rubocop:disable Security/YAMLLoad yaml = YAML.load(File.open(file)) # rubocop:enable Security/YAMLLoad feed_config = yaml['feeds'][name] global_config = yaml.reject { |key| key == 'feeds' } config = Config.new(feed_config, global_config) feed(config) end ## # Returns a RSS object which is generated from the provided config. # # `config`: can be a Hash or an instance of Html2rss::Config. # # Example: # # feed = Html2rss.feed( # channel: { name: 'StackOverflow: Hot Network Questions', url: 'https://stackoverflow.com' }, # selectors: { # items: { selector: '#hot-network-questions > ul > li' }, # title: { selector: 'a' }, # link: { selector: 'a', extractor: 'href' } # } # ) # # => #<RSS::Rss:0x00007fb2f48d14a0 ...> # @return [RSS:Rss] def self.feed(config) config = Config.new(config) unless config.is_a?(Config) feed = FeedBuilder.new config feed.rss end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
html2rss-0.6.0 | lib/html2rss.rb |