sexmachine 0.0.5 → 0.0.6

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.
data/Rakefile CHANGED
@@ -1,6 +1,5 @@
1
1
  require 'rubygems'
2
2
  require 'bundler'
3
- require 'rake/testtask'
4
3
  require 'rdoc/task'
5
4
 
6
5
  Bundler::GemHelper.install_tasks
@@ -12,12 +12,14 @@ module SexMachine
12
12
  def initialize(opts = {})
13
13
  opts = {
14
14
  :filename => File.expand_path('../data/nam_dict.txt', __FILE__),
15
- :case_sensitive => true
15
+ :case_sensitive => true,
16
+ :unknown_value => :andy
16
17
  }.merge(opts)
17
18
  @case_sensitive = opts[:case_sensitive]
19
+ @unknown_value = opts[:unknown_value]
18
20
  parse opts[:filename]
19
21
  end
20
-
22
+
21
23
  def parse(fname)
22
24
  @names = {}
23
25
  open(fname, "r:iso8859-1:utf-8") { |f|
@@ -26,12 +28,12 @@ module SexMachine
26
28
  }
27
29
  }
28
30
  end
29
-
31
+
30
32
  def get_gender(name, country = nil)
31
33
  name = UnicodeUtils.downcase(name) unless @case_sensitive
32
34
 
33
35
  if not @names.has_key?(name)
34
- :andy
36
+ @unknown_value
35
37
  elsif country.nil?
36
38
  most_popular_gender(name) { |country_values|
37
39
  country_values.split("").select { |l| l.strip != "" }.length
@@ -45,28 +47,28 @@ module SexMachine
45
47
  raise "No such country: #{country}"
46
48
  end
47
49
  end
48
-
50
+
49
51
  private
50
52
  def eat_name_line(line)
51
53
  return if line.start_with?("#") or line.start_with?("=")
52
-
54
+
53
55
  parts = line.split(" ").select { |p| p.strip != "" }
54
56
  country_values = line.slice(30, line.length)
55
57
  name = @case_sensitive ? parts[1] : UnicodeUtils.downcase(parts[1])
56
58
 
57
59
  case parts[0]
58
- when "M" then set(name, :male, country_values)
59
- when "1M", "?M" then set(name, :mostly_male, country_values)
60
- when "F" then set(name, :female, country_values)
61
- when "1F", "?F" then set(name, :mostly_female, country_values)
62
- when "?" then set(name, :andy, country_values)
63
- else raise "Not sure what to do with a sex of #{parts[0]}"
60
+ when "M" then set(name, :male, country_values)
61
+ when "1M", "?M" then set(name, :mostly_male, country_values)
62
+ when "F" then set(name, :female, country_values)
63
+ when "1F", "?F" then set(name, :mostly_female, country_values)
64
+ when "?" then set(name, :andy, country_values)
65
+ else raise "Not sure what to do with a sex of #{parts[0]}"
64
66
  end
65
67
  end
66
68
 
67
69
  def most_popular_gender(name)
68
- return :andy unless @names.has_key?(name)
69
-
70
+ return @unknown_value unless @names.has_key?(name)
71
+
70
72
  max = 0
71
73
  best = @names[name].keys.first
72
74
  @names[name].each { |gender, country_values|
@@ -1,3 +1,3 @@
1
1
  module SexMachine
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
metadata CHANGED
@@ -1,33 +1,37 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: sexmachine
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.5
3
+ version: !ruby/object:Gem::Version
5
4
  prerelease:
5
+ version: 0.0.6
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Brian Muller
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-26 00:00:00.000000000Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
12
+
13
+ date: 2012-11-09 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
15
16
  name: unicode_utils
16
- requirement: &70220187561160 !ruby/object:Gem::Requirement
17
+ prerelease: false
18
+ requirement: &id001 !ruby/object:Gem::Requirement
17
19
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
21
23
  version: 1.3.0
22
24
  type: :runtime
23
- prerelease: false
24
- version_requirements: *70220187561160
25
+ version_requirements: *id001
25
26
  description: Get gender from first name.
26
27
  email: brian.muller@livingsocial.com
27
28
  executables: []
29
+
28
30
  extensions: []
31
+
29
32
  extra_rdoc_files: []
30
- files:
33
+
34
+ files:
31
35
  - lib/sexmachine/data/nam_dict.txt
32
36
  - lib/sexmachine/detector.rb
33
37
  - lib/sexmachine/version.rb
@@ -37,37 +41,32 @@ files:
37
41
  - LICENSE
38
42
  - Rakefile
39
43
  - README.rdoc
40
- - docs/created.rid
41
- - docs/index.html
42
- - docs/lib/sexmachine/detector_rb.html
43
- - docs/lib/sexmachine/version_rb.html
44
- - docs/lib/sexmachine_rb.html
45
- - docs/rdoc.css
46
- - docs/README_rdoc.html
47
- - docs/SexMachine/Detector.html
48
- - docs/SexMachine.html
49
44
  homepage: https://github.com/bmuller/sexmachine
50
45
  licenses: []
46
+
51
47
  post_install_message:
52
48
  rdoc_options: []
53
- require_paths:
49
+
50
+ require_paths:
54
51
  - lib
55
- required_ruby_version: !ruby/object:Gem::Requirement
52
+ required_ruby_version: !ruby/object:Gem::Requirement
56
53
  none: false
57
- requirements:
58
- - - ! '>='
59
- - !ruby/object:Gem::Version
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
60
57
  version: 1.9.0
61
- required_rubygems_version: !ruby/object:Gem::Requirement
58
+ required_rubygems_version: !ruby/object:Gem::Requirement
62
59
  none: false
63
- requirements:
64
- - - ! '>='
65
- - !ruby/object:Gem::Version
66
- version: '0'
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: "0"
67
64
  requirements: []
65
+
68
66
  rubyforge_project: sexmachine
69
- rubygems_version: 1.8.17
67
+ rubygems_version: 1.8.24
70
68
  signing_key:
71
69
  specification_version: 3
72
70
  summary: Get gender from first name.
73
71
  test_files: []
72
+
@@ -1,123 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
-
5
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
- <head>
7
- <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
8
-
9
- <title>File: README.rdoc [SexMachine - Gender from first name]</title>
10
-
11
- <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
12
-
13
- <script src="./js/jquery.js" type="text/javascript"
14
- charset="utf-8"></script>
15
- <script src="./js/thickbox-compressed.js" type="text/javascript"
16
- charset="utf-8"></script>
17
- <script src="./js/quicksearch.js" type="text/javascript"
18
- charset="utf-8"></script>
19
- <script src="./js/darkfish.js" type="text/javascript"
20
- charset="utf-8"></script>
21
- </head>
22
-
23
- <body class="file">
24
- <div id="metadata">
25
- <div id="home-metadata">
26
- <div id="home-section" class="section">
27
- <h3 class="section-header">
28
- <a href="./index.html">Home</a>
29
- <a href="./index.html#classes">Classes</a>
30
- <a href="./index.html#methods">Methods</a>
31
- </h3>
32
- </div>
33
- </div>
34
-
35
- <div id="project-metadata">
36
-
37
-
38
- <div id="fileindex-section" class="section project-section">
39
- <h3 class="section-header">Files</h3>
40
- <ul>
41
-
42
- <li class="file"><a href="./README_rdoc.html">README.rdoc</a></li>
43
-
44
- </ul>
45
- </div>
46
-
47
-
48
- <div id="classindex-section" class="section project-section">
49
- <h3 class="section-header">Class Index
50
- <span class="search-toggle"><img src="./images/find.png"
51
- height="16" width="16" alt="[+]"
52
- title="show/hide quicksearch" /></span></h3>
53
- <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
54
- <fieldset>
55
- <legend>Quicksearch</legend>
56
- <input type="text" name="quicksearch" value=""
57
- class="quicksearch-field" />
58
- </fieldset>
59
- </form>
60
-
61
- <ul class="link-list">
62
-
63
- <li><a href="./SexMachine.html">SexMachine</a></li>
64
-
65
- <li><a href="./SexMachine/Detector.html">SexMachine::Detector</a></li>
66
-
67
- </ul>
68
- <div id="no-class-search-results" style="display: none;">No matching classes.</div>
69
- </div>
70
-
71
-
72
- </div>
73
- </div>
74
-
75
- <div id="documentation">
76
- <h1>Sex Machine</h1>
77
- <p>
78
- This gem uses the underlying data from the program &#8220;gender&#8221; by
79
- Jorg Michael (described <a
80
- href="http://www.autohotkey.com/community/viewtopic.php?t=22000">here</a>).
81
- It&#8217;s use is pretty straightforward:
82
- </p>
83
- <pre>
84
- &gt;&gt; require 'sexmachine'
85
- &gt;&gt; d = Detector.new
86
- &gt;&gt; d.get_gender(&quot;Bob&quot;)
87
- :male
88
- &gt;&gt; d.get_gender(&quot;Sally&quot;)
89
- :female
90
- &gt;&gt; d.get_gender(&quot;Pauley&quot;) # should be androgynous
91
- :andy
92
- </pre>
93
- <p>
94
- I18N is fully supported:
95
- </p>
96
- <pre>
97
- &gt;&gt; d.get_gender(&quot;�lfr�n&quot;)
98
- :female
99
- </pre>
100
- <p>
101
- If you have an alterative data file, you can pass that in as an optional
102
- argument to the Detector.
103
- </p>
104
- <p>
105
- Try to avoid creating many Detectors, as each creation means reading in the
106
- data file.
107
- </p>
108
- <h1>Licenses</h1>
109
- <p>
110
- The genderator code is distributed under the GPLv3. The data file
111
- nam_dict.txt is released under the GNU Free Documentation License.
112
- </p>
113
-
114
- </div>
115
-
116
- <div id="validator-badges">
117
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
118
- <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
119
- Rdoc Generator</a> 1.1.6</small>.</p>
120
- </div>
121
- </body>
122
- </html>
123
-
data/docs/SexMachine.html DELETED
@@ -1,163 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
- <head>
6
- <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
-
8
- <title>Module: SexMachine</title>
9
-
10
- <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
11
-
12
- <script src="./js/jquery.js" type="text/javascript"
13
- charset="utf-8"></script>
14
- <script src="./js/thickbox-compressed.js" type="text/javascript"
15
- charset="utf-8"></script>
16
- <script src="./js/quicksearch.js" type="text/javascript"
17
- charset="utf-8"></script>
18
- <script src="./js/darkfish.js" type="text/javascript"
19
- charset="utf-8"></script>
20
-
21
- </head>
22
- <body class="module">
23
-
24
- <div id="metadata">
25
- <div id="home-metadata">
26
- <div id="home-section" class="section">
27
- <h3 class="section-header">
28
- <a href="./index.html">Home</a>
29
- <a href="./index.html#classes">Classes</a>
30
- <a href="./index.html#methods">Methods</a>
31
- </h3>
32
- </div>
33
- </div>
34
-
35
- <div id="file-metadata">
36
- <div id="file-list-section" class="section">
37
- <h3 class="section-header">In Files</h3>
38
- <div class="section-body">
39
- <ul>
40
-
41
- <li><a href="./lib/sexmachine/detector_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
42
- class="thickbox" title="lib/sexmachine/detector.rb">lib/sexmachine/detector.rb</a></li>
43
-
44
- <li><a href="./lib/sexmachine/version_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
45
- class="thickbox" title="lib/sexmachine/version.rb">lib/sexmachine/version.rb</a></li>
46
-
47
- </ul>
48
- </div>
49
- </div>
50
-
51
-
52
- </div>
53
-
54
- <div id="class-metadata">
55
-
56
- <!-- Parent Class -->
57
-
58
-
59
- <!-- Namespace Contents -->
60
-
61
- <div id="namespace-list-section" class="section">
62
- <h3 class="section-header">Namespace</h3>
63
- <ul class="link-list">
64
-
65
- <li><span class="type">CLASS</span> <a href="SexMachine/Detector.html">SexMachine::Detector</a></li>
66
-
67
- </ul>
68
- </div>
69
-
70
-
71
- <!-- Method Quickref -->
72
-
73
-
74
- <!-- Included Modules -->
75
-
76
- </div>
77
-
78
- <div id="project-metadata">
79
-
80
-
81
- <div id="fileindex-section" class="section project-section">
82
- <h3 class="section-header">Files</h3>
83
- <ul>
84
-
85
- <li class="file"><a href="./README_rdoc.html">README.rdoc</a></li>
86
-
87
- </ul>
88
- </div>
89
-
90
-
91
- <div id="classindex-section" class="section project-section">
92
- <h3 class="section-header">Class Index
93
- <span class="search-toggle"><img src="./images/find.png"
94
- height="16" width="16" alt="[+]"
95
- title="show/hide quicksearch" /></span></h3>
96
- <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
97
- <fieldset>
98
- <legend>Quicksearch</legend>
99
- <input type="text" name="quicksearch" value=""
100
- class="quicksearch-field" />
101
- </fieldset>
102
- </form>
103
-
104
- <ul class="link-list">
105
-
106
- <li><a href="./SexMachine.html">SexMachine</a></li>
107
-
108
- <li><a href="./SexMachine/Detector.html">SexMachine::Detector</a></li>
109
-
110
- </ul>
111
- <div id="no-class-search-results" style="display: none;">No matching classes.</div>
112
- </div>
113
-
114
-
115
- </div>
116
- </div>
117
-
118
- <div id="documentation">
119
- <h1 class="module">SexMachine</h1>
120
-
121
- <div id="description">
122
-
123
- </div>
124
-
125
- <!-- Constants -->
126
-
127
- <div id="constants-list" class="section">
128
- <h3 class="section-header">Constants</h3>
129
- <dl>
130
-
131
- <dt><a name="VERSION">VERSION</a></dt>
132
-
133
- <dd class="description"></dd>
134
-
135
-
136
- </dl>
137
- </div>
138
-
139
-
140
- <!-- Attributes -->
141
-
142
-
143
- <!-- Methods -->
144
-
145
-
146
- </div>
147
-
148
-
149
- <div id="rdoc-debugging-section-dump" class="debugging-section">
150
-
151
- <p>Disabled; run with --debug to generate this.</p>
152
-
153
- </div>
154
-
155
- <div id="validator-badges">
156
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
157
- <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
158
- Rdoc Generator</a> 1.1.6</small>.</p>
159
- </div>
160
-
161
- </body>
162
- </html>
163
-