namey 0.0.6 → 0.0.7
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/api/namey_app.rb +3 -3
- data/api/public/ajax-loader.gif +0 -0
- data/api/public/namey.css +33 -0
- data/api/public/ui.js +16 -3
- data/api/views/index.erb +54 -62
- data/lib/namey/generator.rb +17 -1
- data/lib/namey/version.rb +1 -1
- metadata +12 -10
data/api/namey_app.rb
CHANGED
@@ -11,7 +11,7 @@ class Hash
|
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
|
-
|
14
|
+
before do
|
15
15
|
@generator = Namey::Generator.new
|
16
16
|
end
|
17
17
|
|
@@ -39,11 +39,11 @@ get '/name.?:format?' do
|
|
39
39
|
|
40
40
|
names = 1.upto(count).collect do
|
41
41
|
@generator.generate(opts)
|
42
|
-
end
|
42
|
+
end.compact
|
43
43
|
|
44
44
|
if params[:format] == "json"
|
45
45
|
content_type :json, 'charset' => 'utf-8'
|
46
|
-
JSON.
|
46
|
+
JSON.generate names
|
47
47
|
else
|
48
48
|
["<ul>", names.collect { |n| "<li>#{n}</li>" }.join(" "), "</ul>"].join("")
|
49
49
|
end
|
Binary file
|
@@ -0,0 +1,33 @@
|
|
1
|
+
body {
|
2
|
+
padding-top: 10px;
|
3
|
+
}
|
4
|
+
.hero-unit {
|
5
|
+
padding-top: 10px;
|
6
|
+
padding-bottom: 10px;
|
7
|
+
margin-bottom: 10px;
|
8
|
+
}
|
9
|
+
.hero-unit h1 {
|
10
|
+
font-size: 48px;
|
11
|
+
}
|
12
|
+
.hero-unit p {
|
13
|
+
font-size: 16px;
|
14
|
+
line-height: 18px;
|
15
|
+
font-weight: 100;
|
16
|
+
}
|
17
|
+
|
18
|
+
.custom_range_wrapper {
|
19
|
+
display: none;
|
20
|
+
}
|
21
|
+
|
22
|
+
form#name-results textarea, .biglabel {
|
23
|
+
color: black;
|
24
|
+
font-size: 110%;
|
25
|
+
}
|
26
|
+
.spinny {
|
27
|
+
display: none;
|
28
|
+
padding-left: 5px;
|
29
|
+
}
|
30
|
+
|
31
|
+
#about {
|
32
|
+
margin-top: 45px;
|
33
|
+
}
|
data/api/public/ui.js
CHANGED
@@ -1,17 +1,29 @@
|
|
1
1
|
$(document).ready(function() {
|
2
2
|
$("input[name=frequency]").change(function() {
|
3
|
-
console.log("HI!");
|
4
3
|
if ( $("input[name=frequency]:checked").val() == "custom" ) {
|
4
|
+
$(".custom_range_wrapper").fadeIn();
|
5
5
|
$("#min_freq,#max_freq").removeClass("disabled").removeAttr("disabled");
|
6
6
|
}
|
7
7
|
else {
|
8
|
+
$(".custom_range_wrapper").fadeOut();
|
8
9
|
$("#min_freq,#max_freq").addClass("disabled").attr("disabled", true); ;
|
9
10
|
}
|
11
|
+
});
|
10
12
|
|
13
|
+
$("input[name=type]").change(function() {
|
14
|
+
if ( $("input[name=type]:checked").val() != "surname" ) {
|
15
|
+
$(".surname-wrapper").fadeIn();
|
16
|
+
}
|
17
|
+
else {
|
18
|
+
$(".surname-wrapper").fadeOut();
|
19
|
+
}
|
11
20
|
});
|
12
21
|
|
22
|
+
|
13
23
|
$('#name-params').submit(function() {
|
14
24
|
|
25
|
+
$(".spinny").show();
|
26
|
+
|
15
27
|
var opts = {
|
16
28
|
count: $("select[name=count]").val(),
|
17
29
|
with_surname: $("input[name=with_surname]:checked").val() === "true"
|
@@ -33,8 +45,9 @@ $(document).ready(function() {
|
|
33
45
|
}
|
34
46
|
|
35
47
|
opts.callback = function(r) {
|
36
|
-
|
37
|
-
|
48
|
+
$(".spinny").hide();
|
49
|
+
$("#nameList").val(r.join("\n"));
|
50
|
+
}
|
38
51
|
namey.get(opts);
|
39
52
|
|
40
53
|
return false;
|
data/api/views/index.erb
CHANGED
@@ -3,9 +3,9 @@
|
|
3
3
|
<!-- shamelessly stolen from view-source:http://twitter.github.com/bootstrap/examples/hero.html -->
|
4
4
|
<head>
|
5
5
|
<meta charset="utf-8">
|
6
|
-
<title>Namey</title>
|
7
|
-
<meta name="description" content="">
|
8
|
-
<meta name="author" content="">
|
6
|
+
<title>Namey - A random name generator</title>
|
7
|
+
<meta name="description" content="a simple tool for generating random names">
|
8
|
+
<meta name="author" content="Colin Mitchell">
|
9
9
|
|
10
10
|
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
|
11
11
|
<!--[if lt IE 9]>
|
@@ -20,25 +20,7 @@
|
|
20
20
|
|
21
21
|
<!-- Le styles -->
|
22
22
|
<link href="/bootstrap.css" rel="stylesheet">
|
23
|
-
<
|
24
|
-
body {
|
25
|
-
padding-top: 10px;
|
26
|
-
}
|
27
|
-
.hero-unit {
|
28
|
-
padding-top: 10px;
|
29
|
-
padding-bottom: 10px;
|
30
|
-
}
|
31
|
-
.hero-unit h1 {
|
32
|
-
font-size: 48px;
|
33
|
-
}
|
34
|
-
.hero-unit p {
|
35
|
-
font-size: 16px;
|
36
|
-
line-height: 18px;
|
37
|
-
font-weight: 100;
|
38
|
-
}
|
39
|
-
|
40
|
-
</style>
|
41
|
-
|
23
|
+
<link href="/namey.css" rel="stylesheet">
|
42
24
|
<!---
|
43
25
|
<link rel="shortcut icon" href="images/favicon.ico">
|
44
26
|
--->
|
@@ -49,23 +31,24 @@ padding-top: 10px;
|
|
49
31
|
|
50
32
|
<!-- Main hero unit for a primary marketing message or call to action -->
|
51
33
|
<div class="hero-unit">
|
52
|
-
<h1>Namey
|
53
|
-
<
|
54
|
-
|
55
|
-
gem of the same name. It uses the
|
34
|
+
<h1>Namey! <small>A random name generator</small></h1>
|
35
|
+
<p>Welcome to Namey, your friendly neighborhood random name
|
36
|
+
generator. It uses the
|
56
37
|
<a href="http://www.census.gov/genealogy/names/">US Census
|
57
38
|
Bureau database</a> of first and last names to generate random
|
58
39
|
names. You can specify gender, whether you want a common or
|
59
|
-
|
40
|
+
rare name, and so on. It's pretty easy, so... Lets make
|
41
|
+
some names!</p>
|
60
42
|
</div>
|
61
43
|
|
62
44
|
<section id="forms">
|
63
45
|
<div class="page-header">
|
64
|
-
<h1>
|
46
|
+
<h1>Options <small>What sort of names do you want?</small></h1>
|
65
47
|
</div>
|
48
|
+
|
66
49
|
<div class="row">
|
67
|
-
<div>
|
68
|
-
<form id="name-params">
|
50
|
+
<div class="span8">
|
51
|
+
<form id="name-params" class="form-stacked">
|
69
52
|
<fieldset>
|
70
53
|
<div class="clearfix">
|
71
54
|
<label id="type-opts">Name Type</label>
|
@@ -99,7 +82,7 @@ padding-top: 10px;
|
|
99
82
|
</div>
|
100
83
|
</div><!-- /clearfix -->
|
101
84
|
|
102
|
-
<div class="clearfix">
|
85
|
+
<div class="clearfix surname-wrapper">
|
103
86
|
<div class="input">
|
104
87
|
<ul class="inputs-list">
|
105
88
|
<li>
|
@@ -140,9 +123,13 @@ padding-top: 10px;
|
|
140
123
|
<li>
|
141
124
|
<label>
|
142
125
|
<input type="radio" name="frequency" value="custom" />
|
143
|
-
<span>Custom range
|
144
|
-
|
145
|
-
|
126
|
+
<span>Custom range </span>
|
127
|
+
|
128
|
+
<span class="custom_range_wrapper">
|
129
|
+
- From: <input class="span2 disabled" id="min_freq" name="min_freq" type="text" placeholder="(1-100)" disabled />
|
130
|
+
To: <input class="span2 disabled" id="max_freq" name="max_freq" type="text" placeholder="(1-100)" disabled /><br />
|
131
|
+
<small>(1 is super-common, 100 is super-rare)</small>
|
132
|
+
</span>
|
146
133
|
</label>
|
147
134
|
</li>
|
148
135
|
</ul>
|
@@ -164,48 +151,53 @@ padding-top: 10px;
|
|
164
151
|
</div><!-- /clearfix -->
|
165
152
|
|
166
153
|
<div class="clearfix">
|
167
|
-
<
|
154
|
+
<input type="submit" class="btn primary" value="Let's go!">
|
155
|
+
<span class="spinny"><img src="/ajax-loader.gif" /></span>
|
156
|
+
</div>
|
157
|
+
</fieldset>
|
158
|
+
</form>
|
159
|
+
</div>
|
160
|
+
|
161
|
+
<div class="span8" id="results">
|
162
|
+
<form id="name-results" class="form-stacked">
|
163
|
+
<label for="nameList" class="biglabel">Results:</label>
|
164
|
+
<fieldset>
|
165
|
+
<div class="clearfix">
|
168
166
|
<div class="input">
|
169
|
-
<textarea class="
|
167
|
+
<textarea class="large" name="nameList" id="nameList" rows="5"></textarea>
|
170
168
|
</div>
|
171
169
|
</div><!-- /clearfix -->
|
172
|
-
|
173
|
-
<div class="actions">
|
174
|
-
<input type="submit" class="btn primary" value="Gimme a name!">
|
175
|
-
</div>
|
176
170
|
</fieldset>
|
177
171
|
</form>
|
178
172
|
</div>
|
179
173
|
</div><!-- /row -->
|
180
|
-
|
181
174
|
</section>
|
182
175
|
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
176
|
+
<section id="about">
|
177
|
+
<div class="row">
|
178
|
+
<div class="span5">
|
179
|
+
<h2>Open Source</h2>
|
180
|
+
<p>Namey is powered by a ruby gem. The code is totally open source, do what you
|
181
|
+
like with it! <a href="https://github.com/muffinista/namey">Check it out on github</a></p>
|
182
|
+
</div>
|
183
|
+
<div class="span6">
|
184
|
+
<h2>I have an API!</h2>
|
185
|
+
<p>Are you a nerd? Do you like APIs? You're in luck! Namey
|
186
|
+
has a <a href="/api.js">Javascript API</a> available so
|
187
|
+
you can generate names however you would like.</p>
|
188
|
+
</div>
|
189
|
+
<div class="span5">
|
190
|
+
<h2>Muffinlabs</h2>
|
191
|
+
<p>Namey is
|
192
|
+
a <a href="http://muffinlabs.com">muffinlabs</a>
|
193
|
+
production. Please visit anytime!</p>
|
194
|
+
</div>
|
189
195
|
</div>
|
190
|
-
|
191
|
-
<h2>API Available</h2>
|
192
|
-
<p>Are you a nerd? Do you like APIs? You're in luck! Namey
|
193
|
-
has a <a href="/api.js">Javascript API</a> available so
|
194
|
-
you can generate names however you would like.</p>
|
195
|
-
</div>
|
196
|
-
<div class="span5">
|
197
|
-
<h2>Muffinlabs</h2>
|
198
|
-
<p>Namey is
|
199
|
-
a <a href="http://muffinlabs.com">muffinlabs</a>
|
200
|
-
production. Please visit!</p>
|
201
|
-
</div>
|
202
|
-
</div>
|
196
|
+
</section>
|
203
197
|
|
204
198
|
<footer>
|
205
199
|
<p>© Colin Mitchell 2011, <a href="http://muffinlabs.com">http://muffinlabs.com</a></p>
|
206
200
|
</footer>
|
207
|
-
|
208
201
|
</div> <!-- /container -->
|
209
|
-
|
210
202
|
</body>
|
211
203
|
</html>
|
data/lib/namey/generator.rb
CHANGED
@@ -70,7 +70,22 @@ module Namey
|
|
70
70
|
|
71
71
|
if ! ( params[:min_freq] || params[:max_freq] )
|
72
72
|
params[:min_freq], params[:max_freq] = frequency_values(params[:frequency])
|
73
|
+
else
|
74
|
+
|
75
|
+
#
|
76
|
+
# do some basic data validation in case someone is being a knucklehead
|
77
|
+
#
|
78
|
+
params[:min_freq] = params[:min_freq].to_i
|
79
|
+
params[:max_freq] = params[:max_freq].to_i
|
80
|
+
|
81
|
+
params[:max_freq] = params[:min_freq] + 1 if params[:max_freq] <= params[:min_freq]
|
82
|
+
|
83
|
+
# max_freq needs to be at least 4 to get any results back,
|
84
|
+
# because the most common male name only rates 3.3
|
85
|
+
# JAMES 3.318 3.318 1
|
86
|
+
params[:max_freq] = 4 if params[:max_freq] < 4
|
73
87
|
end
|
88
|
+
|
74
89
|
|
75
90
|
name = get_name(params[:type], params[:min_freq], params[:max_freq])
|
76
91
|
|
@@ -134,7 +149,8 @@ module Namey
|
|
134
149
|
# query the db for a name
|
135
150
|
#
|
136
151
|
def get_name(src, min_freq = 0, max_freq = 100)
|
137
|
-
random_sort(@db[src.to_sym].filter{(freq >= min_freq) & (freq <= max_freq)})
|
152
|
+
tmp = random_sort(@db[src.to_sym].filter{(freq >= min_freq) & (freq <= max_freq)})
|
153
|
+
tmp.count > 0 ? tmp.first[:name] : nil
|
138
154
|
end
|
139
155
|
end
|
140
156
|
end
|
data/lib/namey/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: namey
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-11-
|
12
|
+
date: 2011-11-11 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sequel
|
16
|
-
requirement: &
|
16
|
+
requirement: &13029780 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *13029780
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: sqlite3
|
27
|
-
requirement: &
|
27
|
+
requirement: &13029280 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *13029280
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: shoulda
|
38
|
-
requirement: &
|
38
|
+
requirement: &13028800 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *13028800
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: yard
|
49
|
-
requirement: &
|
49
|
+
requirement: &13028320 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *13028320
|
58
58
|
description: Simple name generator, which can generate male/female names based on
|
59
59
|
US Census Data
|
60
60
|
email:
|
@@ -75,6 +75,7 @@ files:
|
|
75
75
|
- api/public/LICENSE
|
76
76
|
- api/public/Makefile
|
77
77
|
- api/public/README.md
|
78
|
+
- api/public/ajax-loader.gif
|
78
79
|
- api/public/api.js
|
79
80
|
- api/public/bootstrap.css
|
80
81
|
- api/public/bootstrap.min.css
|
@@ -126,6 +127,7 @@ files:
|
|
126
127
|
- api/public/lib/tables.less
|
127
128
|
- api/public/lib/type.less
|
128
129
|
- api/public/lib/variables.less
|
130
|
+
- api/public/namey.css
|
129
131
|
- api/public/ui.js
|
130
132
|
- api/views/index.erb
|
131
133
|
- bin/namey-load-data
|