kickfire 0.0.02
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 +7 -0
- data/Gemfile +12 -0
- data/README.md +53 -0
- data/Rakefile +12 -0
- data/lib/kickfire.rb +13 -0
- data/lib/kickfire/company.rb +85 -0
- data/lib/kickfire/error.rb +21 -0
- data/lib/kickfire/version.rb +3 -0
- metadata +135 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 003c3179a986e77d669f136d833ffbca297795bc
|
4
|
+
data.tar.gz: c2b6d2fd09f4c3b6f6038980020a25b3f1b2a1ab
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 18d91f07123bca95910789a128123a5614ffcb3bafaff16b972dfcd7fc80ff28cd3173ad465c54eba62828403f7e09f0006ed3c81e1f640327839a0e87444ba8
|
7
|
+
data.tar.gz: 51b8b6cf1a3d0f79619fd83ae3256147acfd9ec81f061c9670f1f72b79a947fc50eb7b5ffd1ca36219cc559bfa58fbe9f66c48f09f79d3d6b3074b2b938c34c5
|
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
# Kick Fire Ruby
|
2
|
+
Ruby Gem for talking to the Kickfire api
|
3
|
+
|
4
|
+
Kickfire provides information about a company or ip address, including
|
5
|
+
address and social data.
|
6
|
+
|
7
|
+
### Setup
|
8
|
+
Put your kickfire api key in `config/initializers/kickfire.rb` as a constant,
|
9
|
+
like
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
module Kickfire
|
13
|
+
API_KEY = 'valid_api_key_here'
|
14
|
+
end
|
15
|
+
```
|
16
|
+
|
17
|
+
### Usage
|
18
|
+
```ruby
|
19
|
+
Kickfire::Company.find("#{ip_address_of_company to look up}")
|
20
|
+
#
|
21
|
+
# an instance of KickFire::Company with public methods based on results
|
22
|
+
#
|
23
|
+
|
24
|
+
```
|
25
|
+
#### Public methods
|
26
|
+
* cid
|
27
|
+
* name
|
28
|
+
* website
|
29
|
+
* street
|
30
|
+
* city
|
31
|
+
* regionShort
|
32
|
+
* region
|
33
|
+
* postal
|
34
|
+
* countryShort
|
35
|
+
* country
|
36
|
+
* phone
|
37
|
+
* employees
|
38
|
+
* revenue
|
39
|
+
* category
|
40
|
+
* site_code
|
41
|
+
* category2
|
42
|
+
* naics_code
|
43
|
+
* longitude
|
44
|
+
* lattitude
|
45
|
+
* stock_symbol
|
46
|
+
* facebook
|
47
|
+
* twitter
|
48
|
+
* linkedin
|
49
|
+
* linedkin_id
|
50
|
+
* isp
|
51
|
+
* to_json
|
52
|
+
* twitter_url
|
53
|
+
* address
|
data/Rakefile
ADDED
data/lib/kickfire.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
require 'uri'
|
3
|
+
|
4
|
+
require 'active_support'
|
5
|
+
require 'active_support/core_ext/object/blank'
|
6
|
+
|
7
|
+
# Set our version number
|
8
|
+
require 'kickfire/version'
|
9
|
+
require 'kickfire/error'
|
10
|
+
require 'kickfire/company'
|
11
|
+
|
12
|
+
module Kickfire
|
13
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
module Kickfire
|
2
|
+
class Company
|
3
|
+
BASE_URL = "https://api.kickfire.com/v2/"
|
4
|
+
BASE_QUERY = "company:(all)"
|
5
|
+
|
6
|
+
def initialize(attributes = nil)
|
7
|
+
if attributes.kind_of?(Array) && attributes.first
|
8
|
+
attributes = attributes.first
|
9
|
+
end
|
10
|
+
|
11
|
+
if attributes.kind_of?(Hash)
|
12
|
+
@raw = attributes
|
13
|
+
attributes.each do |k,v|
|
14
|
+
instance_variable_set("@#{k.to_s.underscore}", v)
|
15
|
+
end
|
16
|
+
elsif attributes.kind_of? String
|
17
|
+
Kickfire::Company.find(attributes)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.find(ip, api_key: nil)
|
22
|
+
if !api_key
|
23
|
+
if defined? Kickfire::API_KEY
|
24
|
+
api_key = Kickfire::API_KEY
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
uri = URI("#{BASE_URL}#{BASE_QUERY}")
|
29
|
+
params = { ip: ip, key: api_key }
|
30
|
+
uri.query = URI.encode_www_form(params)
|
31
|
+
response = ::HTTParty.get(uri)
|
32
|
+
|
33
|
+
if !response
|
34
|
+
raise Kickfire::Error.new('No data returned from Kickfire')
|
35
|
+
elsif response['status'] == 'error'
|
36
|
+
Kickfire::Error.find(response['code'],response['message'])
|
37
|
+
elsif response['status'] == 'not found'
|
38
|
+
nil
|
39
|
+
else
|
40
|
+
new(response['data'])
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
attr_reader :cid
|
45
|
+
attr_reader :name
|
46
|
+
attr_reader :website
|
47
|
+
attr_reader :street
|
48
|
+
attr_reader :city
|
49
|
+
attr_reader :regionShort
|
50
|
+
attr_reader :region
|
51
|
+
attr_reader :postal
|
52
|
+
attr_reader :countryShort
|
53
|
+
attr_reader :country
|
54
|
+
attr_reader :phone
|
55
|
+
attr_reader :employees
|
56
|
+
attr_reader :revenue
|
57
|
+
attr_reader :category
|
58
|
+
attr_reader :site_code
|
59
|
+
attr_reader :category2
|
60
|
+
attr_reader :naics_code
|
61
|
+
attr_reader :longitude
|
62
|
+
attr_reader :lattitude
|
63
|
+
attr_reader :stock_symbol
|
64
|
+
attr_reader :facebook
|
65
|
+
attr_reader :twitter
|
66
|
+
attr_reader :linkedin
|
67
|
+
attr_reader :linedkin_id
|
68
|
+
|
69
|
+
def isp?
|
70
|
+
@is_isp == 1
|
71
|
+
end
|
72
|
+
|
73
|
+
def twitter_url
|
74
|
+
"http://twitter.com/" + twitter
|
75
|
+
end
|
76
|
+
|
77
|
+
def address
|
78
|
+
[street, city, regionShort, postal].compact.join ", "
|
79
|
+
end
|
80
|
+
|
81
|
+
def to_json
|
82
|
+
@raw.to_json
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Kickfire
|
2
|
+
class Error < StandardError
|
3
|
+
def self.find(code,message)
|
4
|
+
if code.to_s.index("90")
|
5
|
+
raise Kickfire::AuthenticationError.new("#{code} #{message}")
|
6
|
+
elsif code.to_s.index("10")
|
7
|
+
raise Kickfire::AccountLimitError.new("#{code} #{message}")
|
8
|
+
elsif code.to_s.index("20") || code.to_s.index("20")
|
9
|
+
raise Kickfire::RequestError.new("#{code} #{message}")
|
10
|
+
else
|
11
|
+
raise Kickfire::Error.new("#{code} #{message}")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
class AuthenticationError < Error
|
16
|
+
end
|
17
|
+
class AccountLimitError < Error
|
18
|
+
end
|
19
|
+
class RequestError < Error
|
20
|
+
end
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,135 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: kickfire
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.02
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Stephen Reid
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-12-28 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: httparty
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activesupport
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.6'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.6'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: vcr
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: webmock
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
description:
|
98
|
+
email:
|
99
|
+
- stephen.reid@terminus.com
|
100
|
+
executables: []
|
101
|
+
extensions: []
|
102
|
+
extra_rdoc_files: []
|
103
|
+
files:
|
104
|
+
- Gemfile
|
105
|
+
- README.md
|
106
|
+
- Rakefile
|
107
|
+
- lib/kickfire.rb
|
108
|
+
- lib/kickfire/company.rb
|
109
|
+
- lib/kickfire/error.rb
|
110
|
+
- lib/kickfire/version.rb
|
111
|
+
homepage: ''
|
112
|
+
licenses:
|
113
|
+
- MIT
|
114
|
+
metadata: {}
|
115
|
+
post_install_message:
|
116
|
+
rdoc_options: []
|
117
|
+
require_paths:
|
118
|
+
- lib
|
119
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - ">="
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0'
|
129
|
+
requirements: []
|
130
|
+
rubyforge_project:
|
131
|
+
rubygems_version: 2.4.8
|
132
|
+
signing_key:
|
133
|
+
specification_version: 4
|
134
|
+
summary: Kickfire API Client
|
135
|
+
test_files: []
|