class YoutubeParser::BaseParser

Attributes

options[R]

Public Class Methods

new(options = {}) click to toggle source
# File lib/youtube_parser/base_parser.rb, line 7
def initialize(options = {})
  @options = Resource.new(options)

  required_options.each do |option|
    message = "missing keyword: #{option}"

    raise ArgumentError, message unless @options.public_send(option)
  end
end
options(*opts) click to toggle source
# File lib/youtube_parser/base_parser.rb, line 25
def self.options(*opts)
  define_method(:required_options) { opts }
end

Public Instance Methods

info() click to toggle source
# File lib/youtube_parser/base_parser.rb, line 21
def info
  raise NotImplementedError
end
resource() click to toggle source
# File lib/youtube_parser/base_parser.rb, line 17
def resource
  @resource ||= Resource.new(info)
end

Private Instance Methods

client() click to toggle source
# File lib/youtube_parser/base_parser.rb, line 38
def client
  @client ||= options.client || Client.new(options.attributes)
end
keys() click to toggle source
# File lib/youtube_parser/base_parser.rb, line 31
def keys
  return @keys if @keys

  path = YoutubeParser.root.join('lib/youtube_parser/config/keys.yml')
  @keys = Resource.new(YAML.load_file(path).merge(default_method_value: []))
end
required_options() click to toggle source

Default definition

# File lib/youtube_parser/base_parser.rb, line 43
def required_options
  []
end