Module: Crown::CGM::Countable
- Included in:
- BackType::URICounter, Buzzurl::BookmarkCounter, Delicious::BookmarkCounter, FacebookCounter, Google::PlusOne::URICounter, LinkedIn::URICounter, Topsy::URICounter, TweetMeme::URICounter, Twitter::URICounter, Yahoo::BookmarkCounter
- Defined in:
- lib/crown/cgm/countable.rb
Overview
——————————————————————- #
Countable
はてなブックマークのブックマーク数や Twitter のツイート数の
ように,ある URL に対して何らかのカウント値を API 経由で提供
している CGM 用の Mix-in.
——————————————————————- #
Instance Method Summary collapse
-
#address ⇒ Object
————————————————————— #.
-
#count(uri, options = {}) ⇒ Object
————————————————————— # count ————————————————————— #.
-
#error_value ⇒ Object
————————————————————— #.
-
#parse(body) ⇒ Object
————————————————————— # parse ————————————————————— #.
-
#path ⇒ Object
————————————————————— # path ————————————————————— #.
-
#port ⇒ Object
————————————————————— #.
-
#query(uri, options) ⇒ Object
————————————————————— # query ————————————————————— #.
Instance Method Details
#address ⇒ Object
————————————————————— #
address
カウント値を取得する API のドメインを返すメソッド.
インクルードしたクラスが再定義する必要がある.
————————————————————— #
56 57 58 |
# File 'lib/crown/cgm/countable.rb', line 56 def address() return 'example.com' end |
#count(uri, options = {}) ⇒ Object
————————————————————— #
count
————————————————————— #
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/crown/cgm/countable.rb', line 109 def count(uri, = {}) begin proxy_addr = nil proxy_port = nil if (.class == Hash) proxy_addr = [:proxy_address] if (.has_key?(:proxy_address)) proxy_port = [:proxy_port] if (.has_key?(:proxy_port)) end Crown::HTTPWrapper.start(address(), port(), proxy_addr, proxy_port) { |session| str = path() + query(uri, ) response = session.get(str) return error_value() if (response == nil || response.code.to_i != 200) return parse(response.body) } rescue Exception => e return error_value() end end |
#error_value ⇒ Object
————————————————————— #
error_value
何らかの理由で指定した CGM からカウント値が取得できなかった
場合に返す値を定義するためのメソッド.
————————————————————— #
102 103 104 |
# File 'lib/crown/cgm/countable.rb', line 102 def error_value() return -1 end |
#parse(body) ⇒ Object
————————————————————— #
parse
————————————————————— #
90 91 92 |
# File 'lib/crown/cgm/countable.rb', line 90 def parse(body) return error_value() end |
#path ⇒ Object
————————————————————— #
path
————————————————————— #
76 77 78 |
# File 'lib/crown/cgm/countable.rb', line 76 def path() return '/' end |
#port ⇒ Object
————————————————————— #
port
カウント値を取得する API のポート番号を返すメソッド.
多くの場合は標準の HTTP 通信(ポート番号 80)で通信が行われる
ので,必要な場合のみ再定義する.
————————————————————— #
69 70 71 |
# File 'lib/crown/cgm/countable.rb', line 69 def port() return 80 end |
#query(uri, options) ⇒ Object
————————————————————— #
query
————————————————————— #
83 84 85 |
# File 'lib/crown/cgm/countable.rb', line 83 def query(uri, ) return uri end |