snov 0.1.1 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0e2c1f129ba398f54a6a910cdcdb3cbf13920abe6ae32651b5f137c8d324d2d8
4
- data.tar.gz: ae1b8107f3904cebb48367c98213e49f0f78ff76a4661273af5a5bf656fbaed2
3
+ metadata.gz: ff67b667ed595a895daa8402e7ea3103ae05375fe25f304aa89c93f5da03ce91
4
+ data.tar.gz: bd5d17087cb7e756cfb3cb9efb50373cb86a396db4fb6a31310f1bda71c8afe8
5
5
  SHA512:
6
- metadata.gz: 00c6f62c9d033943d244453672ba2951aea873e967359148d0411d4faeed1548fa2cf7cbc247b18b04e52e865b2c91658e4f0fa84ea351f66e150be50f7674fb
7
- data.tar.gz: 82875dbb5bfdc6555d98866a6f9e96d2dd7b7bde9209c7d1fe90a2ff78378c17c1f2d1cd3bd201ef4991ae55f3d3c79e7b3c11022a244685ac2d56db9c6631fc
6
+ metadata.gz: 1c71b29ab55193fca7630ca47fa64edd84f810780c480e56f2f1e66b18ce1f9d27ffc67604947ed57ffffab3479dbb7cadfae56d1683d1760850f94cee08a290
7
+ data.tar.gz: af9e751e32c13f1453a53fbb27da4bcaa143bcd414d259ce15897ba48b210254976d7bb2ecd4fdbde3fef9e1d6f2541591cd426de22226b3665b281bb77df7fa
@@ -2,6 +2,7 @@ require:
2
2
  - rubocop-rspec
3
3
 
4
4
  AllCops:
5
+ SuggestExtensions: false
5
6
  NewCops: enable
6
7
  Exclude:
7
8
  - 'vendor/**/*'
@@ -1,3 +1,17 @@
1
+ ## [0.2.4]
2
+ * Fix DomainSearch to_a
3
+
4
+ ## [0.2.3]
5
+ * Fix DomainSearch doing post instead of get
6
+ ## [0.2.2]
7
+ * DomainSearch Response class
8
+
9
+ ## [0.2.1]
10
+ * DomainSearch fake example data
11
+
12
+ ## [0.2.0]
13
+ * DomainSearch
14
+
1
15
  ## [0.1.1]
2
16
 
3
17
  ### Fixed
data/README.md CHANGED
@@ -20,6 +20,24 @@ Or install it yourself as:
20
20
 
21
21
  set `SNOV_USER_ID` and `SNOV_SECRET` environment variables
22
22
 
23
+ ### DomainSearch
24
+
25
+ see https://snov.io/api#DomainSearch2
26
+
27
+ ```ruby
28
+ results = Snov::DomainSearch.new(domain: "octagon.com", type: "personal", limit: 10)
29
+ results.last_id
30
+ results.each do |result|
31
+ puts result.email
32
+ puts result.first_name
33
+ puts result.last_name
34
+ puts result.position
35
+ puts result.source_page
36
+ puts result.company_name
37
+ puts result.type
38
+ puts result.status
39
+ end
40
+ ```
23
41
 
24
42
  ### GetProfileByEmail
25
43
 
data/gems.rb CHANGED
@@ -3,9 +3,17 @@ source "https://rubygems.org"
3
3
  # Specify your gem's dependencies in snov.gemspec
4
4
  gemspec
5
5
 
6
+ gem "byebug"
6
7
  gem "rake", "~> 12.0"
7
8
  gem "rspec", "~> 3.0"
8
9
  gem "rubocop"
9
10
  gem "rubocop-rspec"
10
11
  gem "simplecov"
11
12
  gem "webmock"
13
+
14
+ if ENV['GEM_VERSIONS'] == 'min'
15
+ gem 'activemodel', '~> 4.1.0'
16
+ gem 'activesupport', '~> 4.1.0'
17
+ gem 'faraday', '~> 0.10.0'
18
+ gem 'multi_json', '~> 1.4.0'
19
+ end
@@ -24,3 +24,4 @@ require 'snov/get_all_prospects_from_list'
24
24
  require 'snov/get_prospects_by_email'
25
25
  require 'snov/get_prospect_list'
26
26
  require 'snov/get_user_lists'
27
+ require 'snov/domain_search'
@@ -0,0 +1,60 @@
1
+ require 'active_support/core_ext/array'
2
+ require 'camel_snake_struct'
3
+
4
+ module Snov
5
+ class DomainSearch
6
+ Response = Class.new(CamelSnakeStruct)
7
+ Response.example(MultiJson.load(File.read("#{__dir__}/fake_client/get_v2_domain-emails-with-info.json")))
8
+ include Enumerable
9
+
10
+ attr_reader :client, :domain, :type, :limit
11
+
12
+ def initialize(domain:, type: 'all', limit: 10, last_id: 0, client: Snov.client)
13
+ @client = client
14
+ @domain = domain
15
+ @type = type
16
+ @limit = limit
17
+ @last_id = last_id
18
+ end
19
+
20
+ def each(&block)
21
+ emails.each(&block)
22
+ end
23
+
24
+ def success
25
+ raw_result.success
26
+ end
27
+
28
+ def webmail
29
+ raw_result.webmail
30
+ end
31
+
32
+ def result
33
+ raw_result.result
34
+ end
35
+
36
+ def last_id
37
+ raw_result.last_id
38
+ end
39
+
40
+ def company_name
41
+ raw_result.company_name
42
+ end
43
+
44
+ def emails
45
+ raw_result.emails
46
+ end
47
+
48
+ def raw_result
49
+ @raw_result ||= Response.new(client.get("/v2/domain-emails-with-info",
50
+ 'lastId' => @last_id,
51
+ 'limit' => @limit,
52
+ 'type' => type.to_s,
53
+ 'domain' => domain.to_s))
54
+ end
55
+
56
+ def to_h
57
+ raw_result.to_h
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,21 @@
1
+ {
2
+ "success": true,
3
+ "domain": "octagon.com",
4
+ "webmail": false,
5
+ "result": 84,
6
+ "lastId": 1823487525,
7
+ "limit": 100,
8
+ "companyName": "Octagon",
9
+ "emails": [
10
+ {
11
+ "email": "ben.gillespie@octagon.com",
12
+ "firstName": "Ben",
13
+ "lastName": "Gillespie",
14
+ "position": "Senior Account Executive",
15
+ "sourcePage": "https://www.linkedin.com/pub/ben-gillespie/7/73/809",
16
+ "companyName": "Octagon",
17
+ "type": "prospect",
18
+ "status": "verified"
19
+ }
20
+ ]
21
+ }
@@ -1,3 +1,3 @@
1
1
  module Snov
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.4"
3
3
  end
@@ -24,8 +24,9 @@ Gem::Specification.new do |spec|
24
24
  spec.bindir = "exe"
25
25
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
26
26
  spec.require_paths = ["lib"]
27
- spec.add_dependency 'activemodel'
28
- spec.add_dependency 'activesupport'
29
- spec.add_dependency 'faraday'
30
- spec.add_dependency 'multi_json'
27
+ spec.add_dependency 'activemodel', '>= 4.1.0', '< 7.0'
28
+ spec.add_dependency 'activesupport', '>= 4.1.0', '< 7.0'
29
+ spec.add_dependency 'camel_snake_struct', '>= 0.1.0', '< 2.0'
30
+ spec.add_dependency 'faraday', '>= 0.10.0', '< 2.0'
31
+ spec.add_dependency 'multi_json', '>= 1.4.0', '< 2.0'
31
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: snov
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Grant Petersen-Speelman
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-29 00:00:00.000000000 Z
11
+ date: 2021-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -16,56 +16,100 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 4.1.0
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '7.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - ">="
25
28
  - !ruby/object:Gem::Version
26
- version: '0'
29
+ version: 4.1.0
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '7.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: activesupport
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - ">="
32
38
  - !ruby/object:Gem::Version
33
- version: '0'
39
+ version: 4.1.0
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '7.0'
34
43
  type: :runtime
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
47
  - - ">="
39
48
  - !ruby/object:Gem::Version
40
- version: '0'
49
+ version: 4.1.0
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '7.0'
53
+ - !ruby/object:Gem::Dependency
54
+ name: camel_snake_struct
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 0.1.0
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: '2.0'
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 0.1.0
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: '2.0'
41
73
  - !ruby/object:Gem::Dependency
42
74
  name: faraday
43
75
  requirement: !ruby/object:Gem::Requirement
44
76
  requirements:
45
77
  - - ">="
46
78
  - !ruby/object:Gem::Version
47
- version: '0'
79
+ version: 0.10.0
80
+ - - "<"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.0'
48
83
  type: :runtime
49
84
  prerelease: false
50
85
  version_requirements: !ruby/object:Gem::Requirement
51
86
  requirements:
52
87
  - - ">="
53
88
  - !ruby/object:Gem::Version
54
- version: '0'
89
+ version: 0.10.0
90
+ - - "<"
91
+ - !ruby/object:Gem::Version
92
+ version: '2.0'
55
93
  - !ruby/object:Gem::Dependency
56
94
  name: multi_json
57
95
  requirement: !ruby/object:Gem::Requirement
58
96
  requirements:
59
97
  - - ">="
60
98
  - !ruby/object:Gem::Version
61
- version: '0'
99
+ version: 1.4.0
100
+ - - "<"
101
+ - !ruby/object:Gem::Version
102
+ version: '2.0'
62
103
  type: :runtime
63
104
  prerelease: false
64
105
  version_requirements: !ruby/object:Gem::Requirement
65
106
  requirements:
66
107
  - - ">="
67
108
  - !ruby/object:Gem::Version
68
- version: '0'
109
+ version: 1.4.0
110
+ - - "<"
111
+ - !ruby/object:Gem::Version
112
+ version: '2.0'
69
113
  description: Snov client to interact with snov api
70
114
  email:
71
115
  - grantspeelman@gmail.com
@@ -88,8 +132,10 @@ files:
88
132
  - gems.rb
89
133
  - lib/snov.rb
90
134
  - lib/snov/client.rb
135
+ - lib/snov/domain_search.rb
91
136
  - lib/snov/fake_client.rb
92
137
  - lib/snov/fake_client/get_v1_get-user-lists.json
138
+ - lib/snov/fake_client/get_v2_domain-emails-with-info.json
93
139
  - lib/snov/fake_client/post_v1_get-profile-by-email.json
94
140
  - lib/snov/fake_client/post_v1_get-prospects-by-email.json
95
141
  - lib/snov/fake_client/post_v1_prospect-list.json