Sha256: 973973498be6215f309ba95f9ea743cb5d1a470101478cfb2da1061cc18078f4

Contents?: true

Size: 935 Bytes

Versions: 2

Compression:

Stored size: 935 Bytes

Contents

# frozen_string_literal: true

module Weneedfeed
  class Schema
    # @param [Hash] raw
    def initialize(raw)
      @raw = raw
    end

    # @param [String, nl] page_schema_id
    # @return [Weneedfeed::PageSchema]
    def find_page_schema(page_schema_id)
      page_schemata.find do |page_schema|
        page_schema.id == page_schema_id
      end
    end

    # @return [Array<String>]
    def page_ids
      page_schemata.map(&:id)
    end

    # @return [Array<Weneedfeed::PageSchema>]
    def page_schemata
      @raw['pages'].map do |hash|
        ::Weneedfeed::PageSchema.new(
          id: hash['id'],
          item_link_selector: hash['item_link_selector'],
          item_time_selector: hash['item_time_selector'],
          item_title_selector: hash['item_title_selector'],
          item_selector: hash['item_selector'],
          title: hash['title'],
          url: hash['url'],
        )
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
weneedfeed-0.6.1 lib/weneedfeed/schema.rb
weneedfeed-0.6.0 lib/weneedfeed/schema.rb