teebo 0.0.0 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/data/seed-data.db +0 -0
- data/lib/teebo.rb +36 -3
- data/lib/teebo/name.rb +33 -0
- metadata +26 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b39c312308355f0fe6943109ae6356a52cc0f1cc
|
4
|
+
data.tar.gz: c9c8fc4e0db8f9228b4d4d512c716d8359d52c05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be7143b79ea1c277f7b0f4ee92ab57cc21b04ea96e92de23cccbf3644ec290f0f896f25a2fd3ac29bd4828a9c477d95074d5c2642f58821f6bc47ae4d0d7c4e0
|
7
|
+
data.tar.gz: 19ce9d17ae23fd916a8e5f528a0bda3a61b2fc17fe18dccec909bbc5196676072daa38294f3a1262ce9cbb69816c074d296f06b0632b553dd1edf36c2f3b71a7
|
Binary file
|
data/lib/teebo.rb
CHANGED
@@ -1,5 +1,38 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
require 'sqlite3'
|
2
|
+
|
3
|
+
module Teebo
|
4
|
+
|
5
|
+
class Base
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
# Initialize the database
|
9
|
+
@@database = SQLite3::Database.new "lib/data/seed-data.db"
|
10
|
+
@@database.results_as_hash = true
|
11
|
+
end
|
12
|
+
|
13
|
+
def weight
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
def update_sum_count
|
18
|
+
sexes = ['M', 'F']
|
19
|
+
sexes.each do |sex|
|
20
|
+
get_rows = <<-SQL
|
21
|
+
select * from given_names where sex = ?
|
22
|
+
SQL
|
23
|
+
|
24
|
+
put_count_to = <<-SQL
|
25
|
+
update given_names set count_to = ? where id = ?
|
26
|
+
SQL
|
27
|
+
|
28
|
+
count = 0
|
29
|
+
@database.execute(get_rows, sex) do |row|
|
30
|
+
count += row['count']
|
31
|
+
database.execute(put_count_to, count, row[0])
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
4
35
|
end
|
5
36
|
end
|
37
|
+
|
38
|
+
require 'teebo/name'
|
data/lib/teebo/name.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
module Teebo
|
2
|
+
#
|
3
|
+
# Generates names in accordance with their frequency in the United States
|
4
|
+
# population.
|
5
|
+
#
|
6
|
+
class Name < Base
|
7
|
+
|
8
|
+
#
|
9
|
+
# Finds the total count for the number of names in the database.
|
10
|
+
#
|
11
|
+
def sum_count sex
|
12
|
+
find_count = <<-SQL
|
13
|
+
select sum(count) from 'given_names' where sex = ?
|
14
|
+
SQL
|
15
|
+
return @@database.execute(find_count, sex)[0][0]
|
16
|
+
end
|
17
|
+
|
18
|
+
#
|
19
|
+
# Selects a random (weighted) given name from the database.
|
20
|
+
#
|
21
|
+
def given_name sex
|
22
|
+
find_range_query = <<-SQL
|
23
|
+
select * from given_names where sex = ?
|
24
|
+
and (count_to - ?) >= 0
|
25
|
+
order by id limit 1
|
26
|
+
SQL
|
27
|
+
|
28
|
+
count = sum_count sex
|
29
|
+
rand = rand(count)
|
30
|
+
return @@database.execute(find_range_query, sex, rand)[0]['name']
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
metadata
CHANGED
@@ -1,23 +1,45 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: teebo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Russ Taylor
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
12
|
-
dependencies:
|
11
|
+
date: 2014-09-12 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: sqlite3
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 1.3.9
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.3'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.3.9
|
13
33
|
description: Contains basic functionality for data generation.
|
14
34
|
email: russ@russt.me
|
15
35
|
executables: []
|
16
36
|
extensions: []
|
17
37
|
extra_rdoc_files: []
|
18
38
|
files:
|
39
|
+
- lib/data/seed-data.db
|
19
40
|
- lib/teebo.rb
|
20
|
-
|
41
|
+
- lib/teebo/name.rb
|
42
|
+
homepage: http://github.com/russtaylor/teebo
|
21
43
|
licenses:
|
22
44
|
- MIT
|
23
45
|
metadata: {}
|