Sha256: 6d2dc5b8e8c79c36ac47189d4273588d1e60b59e5d9a9d27ccc8bcf1f4677103

Contents?: true

Size: 1.21 KB

Versions: 3

Compression:

Stored size: 1.21 KB

Contents

module Html2rss
  class Config
    attr_reader :feed_config, :channel_config

    def initialize(config, name)
      @config = config
      @feed_config = @config['feeds'][name.to_s]
      @channel_config = @feed_config['channel']
    end

    def author
      channel_config.fetch 'author', 'html2rss'
    end

    def ttl
      (channel_config.fetch 'ttl').to_i || nil
    end

    def title
      channel_config.fetch 'title', 'html2rss generated title'
    end

    def language
      channel_config.fetch 'language', 'en'
    end

    def description
      channel_config.fetch 'description', 'A description of my html2rss feed.'
    end

    def url
      channel_config.dig 'url'
    end
    alias link url

    def headers
      @config.fetch('headers', {})
    end

    def options(name)
      feed_config.dig('selectors').fetch(name, {}).merge('channel' => channel_config)
    end

    def categories
      feed_config.dig('selectors').fetch('categories', [])
    end

    def selector(name)
      feed_config.dig('selectors', name, 'selector')
    end

    def attribute_names
      attribute_names = feed_config.fetch('selectors', {}).keys.map(&:to_s)
      attribute_names.delete('items')
      attribute_names
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
html2rss-0.2.2 lib/html2rss/config.rb
html2rss-0.2.1 lib/html2rss/config.rb
html2rss-0.2.0 lib/html2rss/config.rb