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