genderize_wrapper 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/genderize_wrapper.rb +44 -0
  3. metadata +44 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e5541cbf77c5ff9dd95fb63a49ba5caa149888c1
4
+ data.tar.gz: 41bf652ca08f6dc6e659128612c1e2289f748a57
5
+ SHA512:
6
+ metadata.gz: 7857c99164c8389ba13e3846ad41d9c136552f02b626b6ebd61bd3cb4f25e713d23cf3af4a0982b8f8277eab7047e4373bc6112de320e5de1e1fc253cec576bb
7
+ data.tar.gz: e6269694526bc8a2165021bc1f13ed72254806fe363d11a005b418f5f9eb8b4dc71545bd849bdeb91d8d9299989820adf54159a7a5e951ea3609857dd84a9b58
@@ -0,0 +1,44 @@
1
+ require 'net/http'
2
+ require 'json'
3
+
4
+ class GenderizeWrapper
5
+ class << self
6
+ SERVICE_BASE_URL = 'https://api.genderize.io'
7
+ @@cache = nil
8
+ @@previous_names = nil
9
+
10
+ def gender_of(names)
11
+ return @@cache if names == @@previous_names
12
+ @@previous_names= names
13
+ @@cache = request(create_query_string(names))
14
+ end
15
+
16
+ private
17
+
18
+ def create_query_string(params)
19
+ if params.is_a?(Array)
20
+ multiple_name_param(params)
21
+ else
22
+ single_name_param(params)
23
+ end
24
+ end
25
+
26
+ def single_name_param(name)
27
+ "name=#{name}"
28
+ end
29
+
30
+ def multiple_name_param(names)
31
+ query_string = ''
32
+ names.each_with_index do |name, index|
33
+ query_string << "name[#{index}]=#{name}&"
34
+ end
35
+ query_string
36
+ end
37
+
38
+ def request(query_string)
39
+ uri = URI("#{SERVICE_BASE_URL}/?#{query_string}")
40
+ response = Net::HTTP.get(uri)
41
+ JSON.parse(response)
42
+ end
43
+ end
44
+ end
metadata ADDED
@@ -0,0 +1,44 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: genderize_wrapper
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Danilo Barion Nogueira
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-10-18 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Get gender info from first name using Genderize.io API.
14
+ email: danilo.barion@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/genderize_wrapper.rb
20
+ homepage: http://rubygems.org/gems/genderize_wrapper
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '1.9'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubyforge_project:
40
+ rubygems_version: 2.6.13
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: Wrapper for Genderize.io
44
+ test_files: []