rails_contributor_genders 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 952707706bc093a4cfcd23be85c7e8f99c2cb03b
4
+ data.tar.gz: 65c967fc0aafff14430eb5b7cdad99410b20724e
5
+ SHA512:
6
+ metadata.gz: a80476e13d63c0c4e544422efb9c5d7b26d04df1606abbe8c2c6fd68f46bb9d03503f89bedf6672a541d86fb5c569797f957ef108e8f5ff539a10fc21efe3bc9
7
+ data.tar.gz: 2067ec2b5f90ad766961ae14aa6016051870a7259fc2f91fab926e97f11b9ea4533a7e013e584a5c1428cdf89e7e37359d99584baf974dc193878828d41c8525
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "rails_contributor_genders"
4
+
5
+ puts RailsContributorGenders.results(ARGV[0])
@@ -0,0 +1,24 @@
1
+ require "rails_contributor_genders/version"
2
+ require "rails_contributor_genders/analyzer"
3
+ require "rails_contributor_genders/importer"
4
+
5
+ module RailsContributorGenders
6
+ def self.results(number = nil)
7
+ all_names = Importer.new.contributor_names
8
+
9
+ names = if number
10
+ all_names.first(number.to_i)
11
+ else
12
+ all_names
13
+ end
14
+
15
+ results = Analyzer.new(names).results
16
+ results[:neutral] = results.delete(:andy)
17
+
18
+ results.each_pair do |gender, count|
19
+ puts "#{gender.to_s.capitalize.gsub("_", " ")}: #{count}"
20
+ end
21
+
22
+ nil
23
+ end
24
+ end
@@ -0,0 +1,32 @@
1
+ require "gender_detector"
2
+
3
+ class Analyzer
4
+ def initialize(names)
5
+ @names = names
6
+ end
7
+
8
+ def results
9
+ results_hash = {
10
+ male: 0,
11
+ female: 0,
12
+ mostly_male: 0,
13
+ mostly_female: 0,
14
+ andy: 0
15
+ }
16
+
17
+ detector = GenderDetector.new
18
+
19
+ first_names.each do |name|
20
+ gender = detector.get_gender(name)
21
+ results_hash[gender] += 1
22
+ end
23
+
24
+ results_hash
25
+ end
26
+
27
+ private
28
+
29
+ def first_names
30
+ @names.map { |name| name.split(" ").first }
31
+ end
32
+ end
@@ -0,0 +1,12 @@
1
+ require "open-uri"
2
+ require "nokogiri"
3
+
4
+ class Importer
5
+ CONTRIBUTORS_URL = "http://contributors.rubyonrails.org/".freeze
6
+
7
+ def contributor_names
8
+ doc = Nokogiri::HTML(open(CONTRIBUTORS_URL))
9
+ name_elements = doc.css("td.contributor-name")
10
+ name_elements.map(&:text)
11
+ end
12
+ end
@@ -0,0 +1,3 @@
1
+ module RailsContributorGenders
2
+ VERSION = "0.1.1"
3
+ end
metadata ADDED
@@ -0,0 +1,106 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rails_contributor_genders
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Melanie Gilman
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-11-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: nokogiri
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: gender_detector
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.16'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.16'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.0'
69
+ description: Analyze the genders of names of Rails contributors
70
+ email:
71
+ - melanie.gilman@gmail.com
72
+ executables:
73
+ - rails_contributor_genders
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - exe/rails_contributor_genders
78
+ - lib/rails_contributor_genders.rb
79
+ - lib/rails_contributor_genders/analyzer.rb
80
+ - lib/rails_contributor_genders/importer.rb
81
+ - lib/rails_contributor_genders/version.rb
82
+ homepage: https://github.com/mrgilman/rails_contributor_genders
83
+ licenses:
84
+ - MIT
85
+ metadata: {}
86
+ post_install_message:
87
+ rdoc_options: []
88
+ require_paths:
89
+ - lib
90
+ required_ruby_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ requirements: []
101
+ rubyforge_project:
102
+ rubygems_version: 2.6.11
103
+ signing_key:
104
+ specification_version: 4
105
+ summary: Analyze the genders of names of Rails contributors
106
+ test_files: []