snov 0.1.1 → 0.2.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
  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