Class: Livedoor::API::FeedDiscover::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/livedoor/api/feed_discover/client.rb

Constant Summary collapse

BASE_URI =
URI("http://rpc.reader.livedoor.com/feed/discover").freeze
DEFAULT_USERAGENT =
"livedoor-feeddiscover/#{Livedoor::API::FeedDiscover::VERSION::STRING} (+http://feeddiscoverapi.rubyforge.org)"

Instance Method Summary collapse

Constructor Details

#initialize(header = nil) ⇒ Client

Returns a new instance of Client.



23
24
25
26
27
28
# File 'lib/livedoor/api/feed_discover/client.rb', line 23

def initialize(header = nil)
  @http_header = {
    "User-Agent" => DEFAULT_USERAGENT,
  }
  @http_header.update(header) if header
end

Instance Method Details

#find(*args) ⇒ Object

Raises:

  • (ArgumentError)


34
35
36
37
38
39
40
# File 'lib/livedoor/api/feed_discover/client.rb', line 34

def find(*args)
  urls = (args || []).flatten
  header = (Hash === urls.last ? urls.pop : {})
  raise ArgumentError, "empty link" if urls.empty?
  raise ArgumentError, "to many links `#{urls.size}' (max 1000)" if 1000 < urls.size
  FeedList.new(discover_lazy(http_header.update(header), :links => urls.join("\n")))
end

#find_from(url, header = nil) ⇒ Object

Raises:

  • (ArgumentError)


42
43
44
45
46
# File 'lib/livedoor/api/feed_discover/client.rb', line 42

def find_from(url, header = nil)
  raise ArgumentError, "nil url" if url.nil?
  header ||= {}
  FeedList.new(discover_lazy(http_header.update(header), :url => url))
end

#http_headerObject



30
31
32
# File 'lib/livedoor/api/feed_discover/client.rb', line 30

def http_header
  @http_header.dup
end