Sha256: be0cd93ee18bcb5b9a2caaea24673323daadfba36164bd8bd0427d72f4362dac

Contents?: true

Size: 1.08 KB

Versions: 7

Compression:

Stored size: 1.08 KB

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(
          description: hash['description'],
          id: hash['id'],
          item_description_selector: hash['item_description_selector'],
          item_image_selector: hash['item_image_selector'],
          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

7 entries across 7 versions & 1 rubygems

Version Path
weneedfeed-0.13.0 lib/weneedfeed/schema.rb
weneedfeed-0.12.0 lib/weneedfeed/schema.rb
weneedfeed-0.11.0 lib/weneedfeed/schema.rb
weneedfeed-0.10.0 lib/weneedfeed/schema.rb
weneedfeed-0.9.2 lib/weneedfeed/schema.rb
weneedfeed-0.9.1 lib/weneedfeed/schema.rb
weneedfeed-0.9.0 lib/weneedfeed/schema.rb