scouter 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3c1403462820c6babcda754965443992a7cfe199
4
- data.tar.gz: 63f65229bbfa520666666741ec28553c0e415c4c
3
+ metadata.gz: de25a57191d53f274b602f1302d711dfe1984384
4
+ data.tar.gz: 4d037129761a3de61a5d30b0550c04313a19e330
5
5
  SHA512:
6
- metadata.gz: fc65794f8c6425f4e478354620ab4d9e8f51d8b6b0a401a4ac9a29c3eaaa481429de4f4182d32c73f72f354f7ebd11d173c18ad21007a1ce468635c9ea4fdcc8
7
- data.tar.gz: 823628cf9b067b4a2621e4c79f532569d82a976c785f3b3b571c0f0088a1054a7086d27939542626b9872e8addf8ccc06c2c7d12c1d98366314e6ff9cdef9c86
6
+ metadata.gz: ebec5f6833621e940f618c1efee5a1e13a2c486bb040480e1b8829d7b8cc25db14e945d55731f14a3d29296cafbd3452fdfe04633ea2168b6d9f2be7ff1ee177
7
+ data.tar.gz: b12926883efbce420c0527462229555029360393d515a0fb29ad66b95a7e8d59b66e4f5f7c27e52da68519847208098b80cdde28cc13d9ffd34b068ae89d02d6
data/README.md CHANGED
@@ -26,7 +26,7 @@ Or install it yourself as:
26
26
 
27
27
  require 'scouter'
28
28
 
29
- results, errors = SocialCounter.new('http://google.com')
29
+ results, errors = Scouter.get_count('http://google.com')
30
30
  results.each do |url, service|
31
31
  puts url #=> http://google.com
32
32
  puts service.buffer #=> 129
@@ -40,7 +40,7 @@ Or install it yourself as:
40
40
 
41
41
  if you want to get social count in facebook & twitter
42
42
 
43
- results, errors = SocialCounter.new('http://google.com', [Scouter::Facebook, Scouter::Twitter])
43
+ results, errors = Scouter.get_count('http://google.com', [Scouter::Facebook, Scouter::Twitter])
44
44
  results.each do |url, service|
45
45
  puts url #=> http://google.com
46
46
  puts service.facebook #=> 166458
@@ -49,7 +49,7 @@ if you want to get social count in facebook & twitter
49
49
 
50
50
  ## Contributing
51
51
 
52
- 1. Fork it ( https://github.com/[my-github-username]/scouter/fork )
52
+ 1. Fork it ( https://github.com/morizyun/scouter/fork )
53
53
  2. Create your feature branch (`git checkout -b my-new-feature`)
54
54
  3. Commit your changes (`git commit -am 'Add some feature'`)
55
55
  4. Push to the branch (`git push origin my-new-feature`)
@@ -3,7 +3,7 @@ module Scouter
3
3
  module Connection
4
4
  # get response by url
5
5
  # @param [String] url url which returns json
6
- # @return [Hash] json object
6
+ # @return [String] object by http request
7
7
  def get_response(url)
8
8
  open(url).read
9
9
  end
@@ -5,8 +5,9 @@ module Scouter
5
5
  class Object
6
6
  extend Scouter::Base::Connection
7
7
 
8
- # get Count By URL
8
+ # Get Count By URL
9
9
  # @param [String or Array] urls
10
+ # @return [Hashie::Mash, Array] URL & count hash, Error
10
11
  def self.get_count(urls)
11
12
  urls = check_and_trans_url(urls)
12
13
  results, errors = {}, []
@@ -21,9 +22,9 @@ module Scouter
21
22
 
22
23
  private
23
24
 
24
- # Get service name
25
- # @return [String] urls URL list
26
- # @return [String] service name
25
+ # Get response and parse it By URL
26
+ # @param [String or Array] urls
27
+ # @return [Hash, String] URL & count hash, Error message
27
28
  def self.get_and_parse_response(urls)
28
29
  url_str = api_url(urls)
29
30
  json = get_response(url_str)
@@ -41,7 +42,8 @@ module Scouter
41
42
  end
42
43
 
43
44
  # Check and transform urls to Array
44
- # @return [String] service name
45
+ # @param [String or Array] urls
46
+ # @return [Array] url
45
47
  def self.check_and_trans_url(url)
46
48
  url = to_array(url)
47
49
  raise ArgumentError, "#{url} is not String and Array" unless url.class == Array
@@ -63,14 +65,14 @@ module Scouter
63
65
  end
64
66
 
65
67
  # Parse response data for response (For Override)
66
- # @param [Hashie::Mash] response
68
+ # @param [String] response
67
69
  # @return [Hash] urls & count
68
70
  def self.parse_response(response, url = nil)
69
71
  end
70
72
 
71
73
  # build API URL (For Override)
72
74
  # @param [String] url
73
- # @return [String] API urls
75
+ # @return [String] API url
74
76
  def self.api_url(url)
75
77
  end
76
78
  end
@@ -1,3 +1,3 @@
1
1
  module Scouter
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
@@ -2,8 +2,9 @@ module Scouter
2
2
  class Buffer < Scouter::Base::Object
3
3
  END_POINT = 'https://api.bufferapp.com/1'.freeze
4
4
 
5
- # get Buffer Share Count
5
+ # Get Buffer Share Count
6
6
  # @param [String or Array] urls
7
+ # @return [Hashie::Mash, Array] URL & count hash, Error
7
8
  def self.get_count(urls)
8
9
  urls = check_and_trans_url(urls)
9
10
  results, errors = {}, []
@@ -19,9 +20,9 @@ module Scouter
19
20
 
20
21
  private
21
22
 
22
- # Get and parse response data
23
- # @return [String] urls URL list
24
- # @return [String] service name
23
+ # Get and parse response data & error message
24
+ # @param [String] urls URL list
25
+ # @return [Hash, String] URL & count hash, Error message
25
26
  def self.get_and_parse_response(url)
26
27
  html = get_response(api_url(url))
27
28
  res = parse_response(html, url)
@@ -31,7 +32,7 @@ module Scouter
31
32
  return [nil, message]
32
33
  end
33
34
 
34
- # build Feedly API URL
35
+ # Build Feedly API URL
35
36
  # @param [String] url
36
37
  # @return [String] API url
37
38
  def self.api_url(url)
@@ -39,7 +40,7 @@ module Scouter
39
40
  end
40
41
 
41
42
  # Parse json data for response
42
- # @param [Hash] json
43
+ # @param [String] json
43
44
  # @return [Hash] url & count
44
45
  def self.parse_response(json, url)
45
46
  res = JSON.parse(json)
@@ -4,7 +4,7 @@ module Scouter
4
4
 
5
5
  private
6
6
 
7
- # build Facebook Graph API url
7
+ # Build Facebook Graph API url
8
8
  # @param [Array] url
9
9
  # @return [String] API url
10
10
  def self.api_url(url)
@@ -12,13 +12,16 @@ module Scouter
12
12
  "#{END_POINT}/fql?q=SELECT%20url,%20total_count%20FROM%20link_stat%20WHERE%20url%20in%20(#{str})"
13
13
  end
14
14
 
15
- # Parse json data of response
16
- # @param [Hash] json
15
+ # Parse JSON data of response
16
+ # @param [String] json
17
17
  # @return [Hash] url & count
18
18
  def self.parse_response(json, urls = nil)
19
19
  parse_response_item(JSON.parse(json)['data'])
20
20
  end
21
21
 
22
+ # Parse JSON List data of response
23
+ # @param [Array] json_list
24
+ # @return [Hash] url & count
22
25
  def self.parse_response_item(json_list)
23
26
  results = {}
24
27
  json_list.each do |json|
@@ -2,8 +2,9 @@ module Scouter
2
2
  class Feedly < Scouter::Base::Object
3
3
  END_POINT = 'http://cloud.feedly.com/v3'.freeze
4
4
 
5
- # get Feedly Count
5
+ # Get feedly Count
6
6
  # @param [String or Array] urls
7
+ # @return [Hashie::Mash, Array] URL & count hash, Error
7
8
  def self.get_count(urls)
8
9
  urls = check_and_trans_url(urls)
9
10
  results, errors = {}, []
@@ -19,7 +20,7 @@ module Scouter
19
20
 
20
21
  private
21
22
 
22
- # build Feedly API URL
23
+ # Build Feedly API URL
23
24
  # @param [String] url
24
25
  # @return [String] API url
25
26
  def self.api_url(url)
@@ -28,7 +29,8 @@ module Scouter
28
29
  end
29
30
 
30
31
  # Parse json data for response
31
- # @param [Hash] json
32
+ # @param [String] json response by API
33
+ # @param [String] url url
32
34
  # @return [Hash] url & count
33
35
  def self.parse_response(json, url)
34
36
  res = JSON.parse(json)
@@ -2,8 +2,9 @@ module Scouter
2
2
  class GooglePlus < Scouter::Base::Object
3
3
  API_KEY = 'AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ'.freeze
4
4
 
5
- # get Google Plus Count
5
+ # Get Google+ Count
6
6
  # @param [String or Array] urls
7
+ # @return [Hashie::Mash, Array] URL & count hash, Error
7
8
  def self.get_count(urls)
8
9
  urls = check_and_trans_url(urls)
9
10
  results, errors = {}, []
@@ -20,8 +21,8 @@ module Scouter
20
21
  private
21
22
 
22
23
  # Get and parse response
23
- # @return [String] urls URL list
24
- # @return [String] service name
24
+ # @param [String] url
25
+ # @return [Hash, String] URL & count hash, Error message
25
26
  def self.get_and_parse_response(url)
26
27
  json = get_response(url)
27
28
  res = parse_response(json, url)
@@ -31,9 +32,9 @@ module Scouter
31
32
  return [nil, message]
32
33
  end
33
34
 
34
- # get json data from API
35
+ # Get json data from API
35
36
  # @param [String] url
36
- # @return [Hash] response from API
37
+ # @return [String] response from API
37
38
  def self.get_response(url)
38
39
  option = {'Content-Type' => 'application/json'}
39
40
  request = Net::HTTP::Post.new(api_uri.request_uri, option)
@@ -57,15 +58,15 @@ module Scouter
57
58
  }.body
58
59
  end
59
60
 
60
- # Build url for api
61
- # @param [Hash] json
62
- # @return [String] API url
61
+ # Build url for API
62
+ # @return [URI] URI object of API URL
63
63
  def self.api_uri
64
64
  URI.parse("https://clients6.google.com/rpc?key=#{API_KEY}")
65
65
  end
66
66
 
67
- # Parse json data of response
68
- # @param [Hash] response
67
+ # Parse Json data of response
68
+ # @param [Array] json_list
69
+ # @param [String] url
69
70
  # @return [Hash] url & count
70
71
  def self.parse_response(json_list, url)
71
72
  results = {}
@@ -4,7 +4,7 @@ module Scouter
4
4
 
5
5
  private
6
6
 
7
- # build Hatena Bookmark Count API URL
7
+ # Build Hatena Bookmark Count API URL
8
8
  # @param [Array] url
9
9
  # @return [String] API url
10
10
  def self.api_url(url)
@@ -12,13 +12,16 @@ module Scouter
12
12
  "#{END_POINT}/entry.counts?#{url_str}"
13
13
  end
14
14
 
15
- # Parse json data of response
16
- # @param [Hash] response
15
+ # Parse JSON data of response
16
+ # @param [String] response
17
17
  # @return [Hash] url & count
18
18
  def self.parse_response(response, urls = nil)
19
19
  parse_response_item(JSON.parse(response))
20
20
  end
21
21
 
22
+ # Parse JSON list data of response
23
+ # @param [Array] response
24
+ # @return [Hash] url & count
22
25
  def self.parse_response_item(json_list)
23
26
  results = {}
24
27
  json_list.each do |json|
@@ -2,8 +2,9 @@ module Scouter
2
2
  class Linkedin < Scouter::Base::Object
3
3
  END_POINT = 'https://www.linkedin.com/countserv'.freeze
4
4
 
5
- # get Linkedin Count
5
+ # Get Linkedin Count
6
6
  # @param [String or Array] urls
7
+ # @return [Hashie::Mash, Array] URL & count hash, Error
7
8
  def self.get_count(urls)
8
9
  urls = check_and_trans_url(urls)
9
10
  results, errors = {}, []
@@ -19,19 +20,20 @@ module Scouter
19
20
 
20
21
  private
21
22
 
22
- # Build url for api
23
- # @param [Hash] json
23
+ # Build url for API
24
+ # @param [String] url
24
25
  # @return [String] API url
25
26
  def self.api_url(url)
26
27
  "#{END_POINT}/count/share?url=#{url}&format=json"
27
28
  end
28
29
 
29
- # Parse json data for response
30
- # @param [Hash] json
30
+ # Parse JSON data for response
31
+ # @param [String] json
32
+ # @param [String] url
31
33
  # @return [Hash] url & count
32
34
  def self.parse_response(json, url)
33
35
  res = JSON.parse(json)
34
- { res['url'] => { self.service_name => res['count'] } }
36
+ { url => { self.service_name => res['count'] } }
35
37
  end
36
38
  end
37
39
  end
@@ -2,8 +2,9 @@ module Scouter
2
2
  class Pinterest < Scouter::Base::Object
3
3
  END_POINT = 'http://api.pinterest.com/v1'.freeze
4
4
 
5
- # get Pinterest Count
5
+ # Get Pinterest Count
6
6
  # @param [String or Array] urls
7
+ # @return [Hashie::Mash, Array] URL & count hash, Error
7
8
  def self.get_count(urls)
8
9
  urls = check_and_trans_url(urls)
9
10
  results, errors = {}, []
@@ -19,15 +20,16 @@ module Scouter
19
20
 
20
21
  private
21
22
 
22
- # Build url for api
23
- # @param [Hash] json
23
+ # Build url for API
24
+ # @param [String] url
24
25
  # @return [String] API url
25
26
  def self.api_url(url)
26
27
  "#{END_POINT}/urls/count.json?url=#{url}"
27
28
  end
28
29
 
29
- # Parse json data for response
30
- # @param [Hash] json
30
+ # Parse JSON data for response
31
+ # @param [String] json
32
+ # @param [String] url
31
33
  # @return [Hash] url & count
32
34
  def self.parse_response(json, url)
33
35
  res = JSON.parse(json.gsub(/(receiveCount\(|\))/, ''))
@@ -2,8 +2,9 @@ module Scouter
2
2
  class Pocket < Scouter::Base::Object
3
3
  END_POINT = 'https://widgets.getpocket.com'.freeze
4
4
 
5
- # get Pocket Count
5
+ # Get Pocket Count
6
6
  # @param [String or Array] urls
7
+ # @return [Hashie::Mash, Array] URL & count hash, Error
7
8
  def self.get_count(urls)
8
9
  urls = check_and_trans_url(urls)
9
10
  results, errors = {}, []
@@ -17,6 +18,8 @@ module Scouter
17
18
  return [res_hash, errors]
18
19
  end
19
20
 
21
+ # Set API parameter for test mock
22
+ # @param [String or Array] num
20
23
  def self.set_api_random(num)
21
24
  @@api_rand_num = num
22
25
  end
@@ -24,8 +27,8 @@ module Scouter
24
27
  private
25
28
 
26
29
  # Get and parse response data
27
- # @return [String] urls URL list
28
- # @return [String] service name
30
+ # @param [String] url URL
31
+ # @return [Hash, String] URL & count hash, Error message
29
32
  def self.get_and_parse_response(url)
30
33
  html = get_response(api_url(url))
31
34
  res = parse_response(html, url)
@@ -35,7 +38,7 @@ module Scouter
35
38
  return [nil, message]
36
39
  end
37
40
 
38
- # build Pocket API URL
41
+ # Build Pocket API URL
39
42
  # @param [String] url
40
43
  # @return [String] API url
41
44
  def self.api_url(url)
@@ -45,7 +48,8 @@ module Scouter
45
48
  end
46
49
 
47
50
  # Parse html for response
48
- # @param [Hash] html
51
+ # @param [String] html
52
+ # @param [String] url
49
53
  # @return [Hash] url & count
50
54
  def self.parse_response(html, url)
51
55
  count = (html.to_s =~ /id="cnt"[^0-9]+([0-9]+)/) ? $1.to_i : 0
@@ -2,8 +2,9 @@ module Scouter
2
2
  class Twitter < Scouter::Base::Object
3
3
  END_POINT = 'http://urls.api.twitter.com'.freeze
4
4
 
5
- # get Twitter Count
5
+ # Get Twitter Count
6
6
  # @param [String or Array] urls
7
+ # @return [Hashie::Mash, Array] URL & count hash, Error
7
8
  def self.get_count(urls)
8
9
  urls = check_and_trans_url(urls)
9
10
  results, errors = {}, []
@@ -19,7 +20,7 @@ module Scouter
19
20
 
20
21
  private
21
22
 
22
- # build Twitter API URL
23
+ # Build Twitter API URL
23
24
  # @param [String] url
24
25
  # @return [String] API url
25
26
  def self.api_url(url)
@@ -27,8 +28,9 @@ module Scouter
27
28
  "#{END_POINT}/1/urls/count.json?url=#{escaped_url}"
28
29
  end
29
30
 
30
- # Parse json data for response
31
- # @param [Hash] json
31
+ # Parse JSON data for response
32
+ # @param [String] json data
33
+ # @param [String] url
32
34
  # @return [Hash] url & count
33
35
  def self.parse_response(json, url)
34
36
  res = JSON.parse(json)
data/lib/scouter.rb CHANGED
@@ -33,10 +33,12 @@ module Scouter
33
33
  Scouter::Pocket,
34
34
  Scouter::Twitter ]
35
35
 
36
- # get Social Count By Buffer/Facebook/Feedly/GooglePlus/HatenaBookmark/Linkedin/Pinterest/Pocket/Twitter
37
- # @param [String or Array] urls
36
+ # Get Social Count By Buffer/Facebook/Feedly/GooglePlus/HatenaBookmark/Linkedin/Pinterest/Pocket/Twitter
37
+ # @param [String or Array] urls url list ot get count
38
+ # @param [Array or nil] service service list to get count
39
+ # @return [Hashie::Mash, Hashie::Mash] URL & count hash, Error
38
40
  def self.get_count(urls, services = SERVICES)
39
- results, errors = [], {}
41
+ results, errors = [], Hashie::Mash.new()
40
42
 
41
43
  Parallel.each(services, in_threads: services.count) do |service|
42
44
  result, error = service.get_count(urls)
@@ -50,6 +52,9 @@ module Scouter
50
52
 
51
53
  private
52
54
 
55
+ # Merge result data of service to hash
56
+ # @param [Hashie::Mash] social count & url of some services
57
+ # @return [Hashie::Mash] URL & count hash, Error
53
58
  def self.results_merged_hash(results)
54
59
  results_hash = {}
55
60
  results.each do |item|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scouter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - morizyun
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-16 00:00:00.000000000 Z
11
+ date: 2014-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hashie