ffaker 1.16.1 → 1.16.2
Sign up to get free protection for your applications and to get access to all the features.
- data/{Changelog.rdoc → Changelog.md} +28 -25
- data/LICENSE +1 -1
- data/README.md +82 -0
- data/ffaker.gemspec +5 -5
- data/lib/ffaker.rb +1 -1
- data/lib/ffaker/ssn_se.rb +1 -1
- metadata +53 -62
- data/README.rdoc +0 -101
@@ -1,69 +1,72 @@
|
|
1
|
-
|
1
|
+
## 1.16.2
|
2
|
+
Small bug fix and updated docs.
|
3
|
+
|
4
|
+
## 1.16.1
|
2
5
|
Fixes for ruby 1.8.x
|
3
6
|
|
4
|
-
|
7
|
+
## 1.16.0
|
5
8
|
Many module additions from different contributors!
|
6
9
|
|
7
|
-
|
10
|
+
## 1.15.0
|
8
11
|
NameKR (https://github.com/EmmanuelOga/ffaker/pull/47) and PhoneNumbersSG
|
9
12
|
(https://github.com/EmmanuelOga/ffaker/pull/46).
|
10
13
|
|
11
|
-
|
14
|
+
## 1.14.0
|
12
15
|
|
13
16
|
AddressSN (thanks PapePathe), and a bugfix on Faker::Product.model (thanks finarfin).
|
14
17
|
|
15
|
-
|
18
|
+
## 1.13.0
|
16
19
|
|
17
20
|
Education bug fix, Faker::Job (thanks Piotr Usewicz)
|
18
21
|
|
19
|
-
|
22
|
+
## 1.12.0
|
20
23
|
|
21
24
|
Faker::AddressAU and FakkerAddressPhoneAU modules (thanks Ben Wiseley).
|
22
25
|
|
23
|
-
|
26
|
+
## 1.11.0
|
24
27
|
|
25
28
|
Extraction of AddressUK and AddressUS classes. (Thanks doctorbh).
|
26
29
|
|
27
|
-
|
30
|
+
## 1.10.1
|
28
31
|
|
29
32
|
Faker::AddressCA (Thanks doctorbh, https://github.com/EmmanuelOga/ffaker/pull/27)
|
30
33
|
|
31
|
-
|
34
|
+
## 1.9.1
|
32
35
|
|
33
36
|
Faker::NameSN, Faker::PhoneNumberSN (Thanks SENE, https://github.com/EmmanuelOga/ffaker/pull/26)
|
34
37
|
|
35
38
|
Added Faker::NameJA (Thanks kichiro, https://github.com/EmmanuelOga/ffaker/pull/21)
|
36
39
|
|
37
|
-
|
40
|
+
## 1.8.1
|
38
41
|
|
39
42
|
Remove a warning.
|
40
43
|
|
41
|
-
|
44
|
+
## 1.8.0
|
42
45
|
|
43
46
|
Faker::HTMLIpsum module inspired in http://html-ipsum.com/ (Thanks Chris Bloom, https://github.com/EmmanuelOga/ffaker/pull/18)
|
44
47
|
|
45
|
-
|
48
|
+
## 1.7.0
|
46
49
|
|
47
50
|
Faker::LoremCN (Thanks Shane Weng, Shane Weng, https://github.com/swcool, https://github.com/EmmanuelOga/ffaker/pull/16/files)
|
48
51
|
|
49
|
-
|
52
|
+
## 1.6.0
|
50
53
|
|
51
54
|
Faker::NameDE (thanks David Noelte, https://github.com/marvin, https://github.com/EmmanuelOga/ffaker/pull/17)
|
52
55
|
Added Faker::Internet#disposable_email (Thanks Port 80 Labs, https://github.com/port80labs, https://github.com/EmmanuelOga/ffaker/pull/15)
|
53
56
|
|
54
|
-
|
57
|
+
## 1.5.0
|
55
58
|
|
56
59
|
Faker::NameRU (Thanks Vsevolod Romashov, https://github.com/7even, https://github.com/EmmanuelOga/ffaker/pull/14)
|
57
60
|
|
58
|
-
|
61
|
+
## 1.4.0
|
59
62
|
|
60
63
|
Faker::Product and Faker::Education (thanks Rico Sta. Cruz, https://github.com/EmmanuelOga/ffaker/pull/12 )
|
61
64
|
|
62
|
-
|
65
|
+
## 1.3.0
|
63
66
|
|
64
67
|
Faker::Lorem.word as a convenience method, instead of Faker::Lorem.words(1).first.
|
65
68
|
|
66
|
-
|
69
|
+
## 1.2.0
|
67
70
|
|
68
71
|
New Faker::NameCN module (contributions by qichunren)
|
69
72
|
|
@@ -71,7 +74,7 @@ New Faker::NameCN module (contributions by qichunren)
|
|
71
74
|
Faker::NameCN.last_name # => 禹
|
72
75
|
Faker::NameCN.name # => 俊伶漫
|
73
76
|
|
74
|
-
|
77
|
+
## 1.1.0
|
75
78
|
|
76
79
|
Api additions (contributions by Robert Berry)
|
77
80
|
|
@@ -79,7 +82,7 @@ Api additions (contributions by Robert Berry)
|
|
79
82
|
Faker::Internet.http_url
|
80
83
|
Faker::Internet.ip_v4_address
|
81
84
|
|
82
|
-
|
85
|
+
## 0.4.0
|
83
86
|
|
84
87
|
Api additions by Rafael Souza
|
85
88
|
|
@@ -88,21 +91,21 @@ Api additions by Rafael Souza
|
|
88
91
|
Faker::Address.neighborhood # => "Renton West"
|
89
92
|
|
90
93
|
|
91
|
-
|
94
|
+
## 0.3.3 2010-01-14
|
92
95
|
|
93
96
|
* removed library file and directory "faker". now you only can load the gem using require 'ffaker'
|
94
97
|
|
95
|
-
|
98
|
+
## 0.3.2 2010-01-14
|
96
99
|
|
97
100
|
* Several Optimizations, renamed gem packege to ffaker.
|
98
101
|
|
99
|
-
|
102
|
+
## 0.3.1 2008-04-03
|
100
103
|
|
101
104
|
1 minor enhancement:
|
102
105
|
|
103
106
|
* Added city to Address
|
104
107
|
|
105
|
-
|
108
|
+
## 0.3.0 2008-01-01
|
106
109
|
|
107
110
|
3 major enhancements:
|
108
111
|
|
@@ -110,7 +113,7 @@ Api additions by Rafael Souza
|
|
110
113
|
* Added secondary_address to Address, and made inclusion of secondary address in street_address optional (false by default).
|
111
114
|
* Added UK address methods [Caius Durling]
|
112
115
|
|
113
|
-
|
116
|
+
## 0.2.1 2007-12-05
|
114
117
|
|
115
118
|
1 major enhancement:
|
116
119
|
|
@@ -121,6 +124,6 @@ Api additions by Rafael Souza
|
|
121
124
|
* Changed the output of user_name to randomly separate with a . or _
|
122
125
|
* Added a few tests
|
123
126
|
|
124
|
-
|
127
|
+
## 0.1.0 2007-11-22
|
125
128
|
|
126
129
|
* Initial release
|
data/LICENSE
CHANGED
data/README.md
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
# ffaker
|
2
|
+
|
3
|
+
[ffaker](http://rubygems.org/gems/ffaker) is a rewrite of [faker](http://rubygems.org/gems/faker).
|
4
|
+
|
5
|
+
## Usage
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
require 'ffaker'
|
9
|
+
Faker::Name.name => "Christophe Bartell"
|
10
|
+
Faker::Internet.email => "kirsten.greenholt@corkeryfisher.info"
|
11
|
+
```
|
12
|
+
|
13
|
+
## ffaker vs faker
|
14
|
+
|
15
|
+
faker and ffaker APIs are mostly the same, although the API on ffaker keeps
|
16
|
+
growing with its users additions. In general, the only difference is that you
|
17
|
+
need to:
|
18
|
+
|
19
|
+
gem install ffaker
|
20
|
+
|
21
|
+
and then
|
22
|
+
|
23
|
+
require 'ffaker'
|
24
|
+
|
25
|
+
instead of "faker" with only one f.
|
26
|
+
|
27
|
+
## ffaker is faster... does it really matter?
|
28
|
+
|
29
|
+
ffaker was initially written in an effort to speed up a slow spec suite. Bear
|
30
|
+
in mind, if your spec suite is slow, chances are the generation of random data
|
31
|
+
will not account for much of the run time.
|
32
|
+
|
33
|
+
Since then, the original faker gem has become faster seem it was
|
34
|
+
maintained). Nevertheless, ffaker is still about 20x faster than faker.
|
35
|
+
|
36
|
+
```ruby
|
37
|
+
N = 10_000
|
38
|
+
|
39
|
+
Benchmark.bm do |rep|
|
40
|
+
rep.report("generating #{ N } names") do
|
41
|
+
N.times do
|
42
|
+
Faker::Name.name
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
```
|
47
|
+
|
48
|
+
```
|
49
|
+
* ruby 1.8.7 (2011-02-18 patchlevel 334) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2011.03
|
50
|
+
|
51
|
+
generating 10000 names (faker 0.9.5) 1.500000 0.000000 1.500000 ( 1.506865)
|
52
|
+
generating 10000 names (ffaker 1.5.0) 0.070000 0.000000 0.070000 ( 0.067526)
|
53
|
+
|
54
|
+
* ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]
|
55
|
+
|
56
|
+
generating 10000 names (faker 0.9.5) 1.030000 0.020000 1.050000 ( 1.046116)
|
57
|
+
generating 10000 names (ffaker 1.7.0) 0.040000 0.000000 0.040000 ( 0.045917)
|
58
|
+
```
|
59
|
+
|
60
|
+
## Contributors
|
61
|
+
|
62
|
+
A lot of people has contributed to ffaker. Check [this list](https://github.com/EmmanuelOga/ffaker/graphs/contributors).
|
63
|
+
|
64
|
+
## TODO
|
65
|
+
|
66
|
+
* Even though the API is pretty simple, better rdoc documentation would not hurt.
|
67
|
+
* Put all modules under its respective language (E.G. EducationUS instead of just Education)
|
68
|
+
|
69
|
+
## Note on Patches/Pull Requests
|
70
|
+
|
71
|
+
* Fork the project.
|
72
|
+
* Make your feature addition or bug fix.
|
73
|
+
* Add tests for it. This is important so I don't break it in a
|
74
|
+
future version unintentionally.
|
75
|
+
* Commit, do not mess with rakefile, version, or history.
|
76
|
+
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
77
|
+
* Send me a pull request. Bonus points for topic branches.
|
78
|
+
|
79
|
+
## Copyright
|
80
|
+
|
81
|
+
Copyright (c) 2013 Emmanuel Oga. See LICENSE for details.
|
82
|
+
Copyright (c) 2007 Benjamin Curtis
|
data/ffaker.gemspec
CHANGED
@@ -4,8 +4,8 @@ Gem::Specification.new do |s|
|
|
4
4
|
s.rubygems_version = '1.3.5'
|
5
5
|
|
6
6
|
s.name = 'ffaker'
|
7
|
-
s.version = '1.16.
|
8
|
-
s.date = '2013-05
|
7
|
+
s.version = '1.16.2'
|
8
|
+
s.date = '2013-07-05'
|
9
9
|
s.rubyforge_project = 'ffaker'
|
10
10
|
|
11
11
|
s.summary = "Faster Faker, generates dummy data."
|
@@ -18,14 +18,14 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.require_paths = %w[lib]
|
19
19
|
|
20
20
|
s.rdoc_options = ["--charset=UTF-8"]
|
21
|
-
s.extra_rdoc_files = %w[README.
|
21
|
+
s.extra_rdoc_files = %w[README.md LICENSE Changelog.md]
|
22
22
|
|
23
23
|
# = MANIFEST =
|
24
24
|
s.files = %w[
|
25
|
-
Changelog.
|
25
|
+
Changelog.md
|
26
26
|
Gemfile
|
27
27
|
LICENSE
|
28
|
-
README.
|
28
|
+
README.md
|
29
29
|
Rakefile
|
30
30
|
ffaker.gemspec
|
31
31
|
lib/ffaker.rb
|
data/lib/ffaker.rb
CHANGED
data/lib/ffaker/ssn_se.rb
CHANGED
@@ -26,7 +26,7 @@ module Faker
|
|
26
26
|
def ssn(opts = {})
|
27
27
|
from = opts[:from] || ::Time.local(1940, 1, 1)
|
28
28
|
to = opts[:to] || ::Time.now
|
29
|
-
gender = opts[:gender] || GENDERS.rand
|
29
|
+
gender = (opts[:gender] || GENDERS.rand).to_s
|
30
30
|
|
31
31
|
raise_error_on_bad_arguments(from, to, gender)
|
32
32
|
|
metadata
CHANGED
@@ -1,65 +1,61 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffaker
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.16.2
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 16
|
9
|
-
- 1
|
10
|
-
version: 1.16.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Emmanuel Oga
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2013-07-05 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: rake
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
version: "0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
32
22
|
type: :development
|
33
|
-
version_requirements: *id001
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: test-unit
|
36
23
|
prerelease: false
|
37
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: test-unit
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
38
33
|
none: false
|
39
|
-
requirements:
|
40
|
-
- -
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
segments:
|
44
|
-
- 0
|
45
|
-
version: "0"
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
46
38
|
type: :development
|
47
|
-
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
48
46
|
description: Faster Faker, generates dummy data.
|
49
47
|
email: EmmanuelOga@gmail.com
|
50
48
|
executables: []
|
51
|
-
|
52
49
|
extensions: []
|
53
|
-
|
54
|
-
|
55
|
-
- README.rdoc
|
50
|
+
extra_rdoc_files:
|
51
|
+
- README.md
|
56
52
|
- LICENSE
|
57
|
-
- Changelog.
|
58
|
-
files:
|
59
|
-
- Changelog.
|
53
|
+
- Changelog.md
|
54
|
+
files:
|
55
|
+
- Changelog.md
|
60
56
|
- Gemfile
|
61
57
|
- LICENSE
|
62
|
-
- README.
|
58
|
+
- README.md
|
63
59
|
- Rakefile
|
64
60
|
- ffaker.gemspec
|
65
61
|
- lib/ffaker.rb
|
@@ -173,38 +169,33 @@ files:
|
|
173
169
|
- test/test_venue.rb
|
174
170
|
homepage: http://github.com/emmanueloga/ffaker
|
175
171
|
licenses: []
|
176
|
-
|
177
172
|
post_install_message:
|
178
|
-
rdoc_options:
|
173
|
+
rdoc_options:
|
179
174
|
- --charset=UTF-8
|
180
|
-
require_paths:
|
175
|
+
require_paths:
|
181
176
|
- lib
|
182
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
177
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
183
178
|
none: false
|
184
|
-
requirements:
|
185
|
-
- -
|
186
|
-
- !ruby/object:Gem::Version
|
187
|
-
|
188
|
-
segments:
|
179
|
+
requirements:
|
180
|
+
- - ! '>='
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '0'
|
183
|
+
segments:
|
189
184
|
- 0
|
190
|
-
|
191
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
185
|
+
hash: 901117054328453094
|
186
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
192
187
|
none: false
|
193
|
-
requirements:
|
194
|
-
- -
|
195
|
-
- !ruby/object:Gem::Version
|
196
|
-
|
197
|
-
segments:
|
198
|
-
- 0
|
199
|
-
version: "0"
|
188
|
+
requirements:
|
189
|
+
- - ! '>='
|
190
|
+
- !ruby/object:Gem::Version
|
191
|
+
version: '0'
|
200
192
|
requirements: []
|
201
|
-
|
202
193
|
rubyforge_project: ffaker
|
203
194
|
rubygems_version: 1.8.25
|
204
195
|
signing_key:
|
205
196
|
specification_version: 2
|
206
197
|
summary: Faster Faker, generates dummy data.
|
207
|
-
test_files:
|
198
|
+
test_files:
|
208
199
|
- test/test_address.rb
|
209
200
|
- test/test_address_au.rb
|
210
201
|
- test/test_address_ca.rb
|
data/README.rdoc
DELETED
@@ -1,101 +0,0 @@
|
|
1
|
-
= ffaker
|
2
|
-
|
3
|
-
Fast Faker == Faker refactored. http://rubygems.org/gems/ffaker
|
4
|
-
|
5
|
-
= Faker
|
6
|
-
|
7
|
-
A port of Perl's Data::Faker library that generates fake data. http://rubygems.org/gems/faker
|
8
|
-
|
9
|
-
== Usage
|
10
|
-
|
11
|
-
require 'ffaker'
|
12
|
-
Faker::Name.name => "Christophe Bartell"
|
13
|
-
Faker::Internet.email => "kirsten.greenholt@corkeryfisher.info"
|
14
|
-
|
15
|
-
== Ffaker / Faker
|
16
|
-
|
17
|
-
Faker and Ffaker APIs are mostly the same, although the API on ffaker keeps
|
18
|
-
growing with its users additions. In general, the only difference is that you
|
19
|
-
need to:
|
20
|
-
|
21
|
-
gem install ffaker
|
22
|
-
|
23
|
-
and then
|
24
|
-
|
25
|
-
require 'ffaker'
|
26
|
-
|
27
|
-
instead of "faker" with only one f.
|
28
|
-
|
29
|
-
== Faster? does it really matter ?
|
30
|
-
|
31
|
-
Ffaker was initially written in an effort to speed up a slow spec suite. Bear
|
32
|
-
in mind, if your spec suite is slow, chances are the generation of random data
|
33
|
-
will not account for much of the run time.
|
34
|
-
|
35
|
-
Since then, the original faker gem has become faster (at the moment it did not
|
36
|
-
seem it was maintained). Nevertheless, ffaker is still about 20x faster than
|
37
|
-
faker.
|
38
|
-
|
39
|
-
$ cat scripts/benchmark.rb
|
40
|
-
|
41
|
-
# ...
|
42
|
-
N = 10_000
|
43
|
-
|
44
|
-
Benchmark.bm do |rep|
|
45
|
-
rep.report("generating #{ N } names") do
|
46
|
-
N.times do
|
47
|
-
Faker::Name.name
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
* ruby 1.8.7 (2011-02-18 patchlevel 334) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2011.03
|
53
|
-
|
54
|
-
generating 10000 names (faker 0.9.5) 1.500000 0.000000 1.500000 ( 1.506865)
|
55
|
-
generating 10000 names (ffaker 1.5.0) 0.070000 0.000000 0.070000 ( 0.067526)
|
56
|
-
|
57
|
-
* ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]
|
58
|
-
|
59
|
-
generating 10000 names (faker 0.9.5) 1.030000 0.020000 1.050000 ( 1.046116)
|
60
|
-
generating 10000 names (ffaker 1.7.0) 0.040000 0.000000 0.040000 ( 0.045917)
|
61
|
-
|
62
|
-
== Contributors
|
63
|
-
|
64
|
-
* James Rosen ( http://github.com/jamesarosen/ffaker ).
|
65
|
-
* Rafael Souza ( http://github.com/rafaelss/ffaker ).
|
66
|
-
* Robert Berry ( https://github.com/bdigital ).
|
67
|
-
* qichunren ( http://github.com/qichunren ).
|
68
|
-
* Kristján Pétursson ( https://github.com/kristjan )
|
69
|
-
* Rico Sta. Cruz ( https://github.com/rstacruz )
|
70
|
-
* Vsevolod Romashov ( https://github.com/7even )
|
71
|
-
* David Noelte (https://github.com/marvin)
|
72
|
-
* Port 80 Labs (https://github.com/port80labs)
|
73
|
-
* Shane Weng (https://github.com/swcool)
|
74
|
-
* Chris Bloom (https://github.com/chrisbloom7)
|
75
|
-
* SENE (https://github.com/PapePathe)
|
76
|
-
* kichiro (https://github.com/kichiro)
|
77
|
-
* doctorbh (https://github.com/doctorbh)
|
78
|
-
* Ben Wisleey ( https://github.com/wiseleyb )
|
79
|
-
* Simon Russel ( https://github.com/simonrussell )
|
80
|
-
* Piotr Usewicz ( https://github.com/pusewicz )
|
81
|
-
* And others... see complete list: https://github.com/EmmanuelOga/ffaker/network/members
|
82
|
-
|
83
|
-
== TODO
|
84
|
-
|
85
|
-
* Even though the API is pretty simple, better rdoc documentation would not hurt.
|
86
|
-
* Put all modules under its respective language (E.G. EducationUS instead of just Education)
|
87
|
-
|
88
|
-
== Note on Patches/Pull Requests
|
89
|
-
|
90
|
-
* Fork the project.
|
91
|
-
* Make your feature addition or bug fix.
|
92
|
-
* Add tests for it. This is important so I don't break it in a
|
93
|
-
future version unintentionally.
|
94
|
-
* Commit, do not mess with rakefile, version, or history.
|
95
|
-
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
96
|
-
* Send me a pull request. Bonus points for topic branches.
|
97
|
-
|
98
|
-
== Copyright
|
99
|
-
|
100
|
-
Copyright (c) 2010 Emmanuel Oga. See LICENSE for details.
|
101
|
-
Copyright (c) 2007 Benjamin Curtis
|