rb_raventools 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/lib/rb_raventools.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'rb_raventools/version'
2
2
  require 'rb_raventools/client'
3
3
  require 'rb_raventools/base'
4
+ require 'rb_raventools/address'
4
5
 
5
6
  module RavenTools
6
7
 
@@ -0,0 +1,22 @@
1
+ module RavenTools
2
+ class Address < Client
3
+
4
+ def self.build(method, options = {})
5
+ url = "#{RavenTools::API_BASE_URL}key=#{@@api_key}&format=#{@@format}&method=#{method}"
6
+ unless options[:domain] == nil
7
+ url << "&domain=#{options[:domain]}"
8
+ end
9
+ unless options[:start_date] == nil
10
+ url << "&start_date=#{options[:start_date]}"
11
+ end
12
+ unless options[:end_date] == nil
13
+ url << "&end_date=#{options[:end_date]}"
14
+ end
15
+ unless options[:engine] == nil
16
+ url << "&engine=#{options[:engine]}"
17
+ end
18
+ return url
19
+ end
20
+
21
+ end
22
+ end
@@ -5,59 +5,89 @@ module RavenTools
5
5
 
6
6
  class Client
7
7
 
8
- attr_accessor :api_key, :format
8
+ attr_accessor :api_key
9
9
 
10
10
  def initialize(api_key)
11
+ @@api_key = api_key
12
+ @@format = "json"
11
13
  self.api_key = api_key
12
- @format = "json"
13
14
  end
14
15
 
15
16
  def profile_info
16
- method = "profile_info"
17
- raven_url = "#{RavenTools::API_BASE_URL}key=#{self.api_key}&method=#{method}&format=#{@format}"
18
- response = HTTParty.get(raven_url)
19
- parsed_response = JSON.parse(response.body)
20
- return parsed_response
17
+ response = HTTParty.get(RavenTools::Address.build("profile_info"))
18
+ JSON.parse(response.body)
21
19
  end
22
20
 
23
21
  def engines
24
- method = "engines"
25
- raven_url = "#{RavenTools::API_BASE_URL}key=#{self.api_key}&method=#{method}&format=#{@format}"
26
- response = HTTParty.get(raven_url)
27
- parsed_response = JSON.parse(response.body)
28
- return parsed_response
22
+ response = HTTParty.get(RavenTools::Address.build("engines"))
23
+ JSON.parse(response.body)
29
24
  end
30
25
 
31
26
  def domains
32
- method = "domains"
33
- raven_url = "#{RavenTools::API_BASE_URL}key=#{self.api_key}&method=#{method}&format=#{@format}"
34
- response = HTTParty.get(raven_url)
35
- parsed_response = JSON.parse(response.body)
36
- return parsed_response
27
+ response = HTTParty.get(RavenTools::Address.build("domains"))
28
+ JSON.parse(response.body)
37
29
  end
38
30
 
39
31
  def domain_info(domain)
40
- method = "domain_info"
41
- raven_url = "#{RavenTools::API_BASE_URL}key=#{self.api_key}&method=#{method}&format=#{@format}&domain=#{domain}"
42
- response = HTTParty.get(raven_url)
43
- parsed_response = JSON.parse(response.body)
44
- return parsed_response
32
+ response = HTTParty.get(RavenTools::Address.build("domain_info", { domain: domain }))
33
+ JSON.parse(response.body)
45
34
  end
46
35
 
47
36
  def keywords(domain)
48
- method = "keywords"
49
- raven_url = "#{RavenTools::API_BASE_URL}key=#{self.api_key}&method=#{method}&format=#{@format}&domain=#{domain}"
50
- response = HTTParty.get(raven_url)
37
+ response = HTTParty.get(RavenTools::Address.build("keywords", { domain: domain }))
38
+ JSON.parse(response.body)
39
+ end
40
+
41
+ def keyword_info(domain, keyword)
42
+ method = "keywords_tags"
43
+ response = HTTParty.get(RavenTools::Address.build(method, { domain: domain }))
51
44
  parsed_response = JSON.parse(response.body)
52
- return parsed_response
45
+ keyword_info = [{ keyword: keyword }]
46
+ parsed_response.each do |keywords|
47
+ if keywords['keyword'] == keyword
48
+ keyword_info << { tags: keywords['tags'].to_a }
49
+ end
50
+ end
51
+ return keyword_info
53
52
  end
54
53
 
55
54
  def keywords_with_tags(domain)
55
+ response = HTTParty.get(RavenTools::Address.build("keywords_tags", { domain: domain }))
56
+ JSON.parse(response.body)
57
+ end
58
+
59
+ def tags(domain)
60
+ method = "keywords_tags"
61
+ response = HTTParty.get(RavenTools::Address.build(method, { domain: domain }))
62
+ parsed_response = JSON.parse(response.body)
63
+ tags = []
64
+ parsed_response.each do |keywords|
65
+ tag_list = keywords['tags'].to_a
66
+ unless tag_list.size < 1
67
+ tag_list.each do |tag|
68
+ unless tags.include? tag
69
+ tags << tag
70
+ end
71
+ end
72
+ end
73
+ end
74
+ return tags
75
+ end
76
+
77
+ def tag_info(domain, tag)
56
78
  method = "keywords_tags"
57
- raven_url = "#{RavenTools::API_BASE_URL}key=#{self.api_key}&method=#{method}&format=#{@format}&domain=#{domain}"
58
- response = HTTParty.get(raven_url)
79
+ response = HTTParty.get(RavenTools::Address.build(method, { domain: domain }))
59
80
  parsed_response = JSON.parse(response.body)
60
- return parsed_response
81
+ tag_info = [{ tag: tag }]
82
+ keyword_list = []
83
+ parsed_response.each do |keywords|
84
+ tag_list = keywords['tags'].to_a
85
+ if tag_list.include? tag
86
+ keyword_list << keywords['keyword']
87
+ end
88
+ end
89
+ tag_info << { keywords: keyword_list }
90
+ return tag_info
61
91
  end
62
92
 
63
93
  end
@@ -1,3 +1,3 @@
1
1
  module RavenTools
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rb_raventools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -57,6 +57,7 @@ files:
57
57
  - README.md
58
58
  - Rakefile
59
59
  - lib/rb_raventools.rb
60
+ - lib/rb_raventools/address.rb
60
61
  - lib/rb_raventools/base.rb
61
62
  - lib/rb_raventools/client.rb
62
63
  - lib/rb_raventools/version.rb