randomperson 0.0.19 → 1.0.0

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.
Files changed (84) hide show
  1. data/.gitignore +2 -0
  2. data/CHANGELOG +2 -0
  3. data/Manifest +22 -2
  4. data/README.markdown +475 -0
  5. data/lib/randomperson/Loader.rb +62 -0
  6. data/lib/randomperson/Names/AmericanFemaleFirst.rb +10 -8
  7. data/lib/randomperson/Names/AmericanLast.rb +13 -10
  8. data/lib/randomperson/Names/AmericanMaleFirst.rb +11 -8
  9. data/lib/randomperson/Names/AmericanPrefix.rb +16 -18
  10. data/lib/randomperson/Names/AmericanSuffix.rb +26 -16
  11. data/lib/randomperson/Names/AncientGreekFemaleFirst.rb +12 -8
  12. data/lib/randomperson/Names/AncientGreekLast.rb +11 -8
  13. data/lib/randomperson/Names/AncientGreekMaleFirst.rb +11 -8
  14. data/lib/randomperson/Names/AnyLast.rb +11 -9
  15. data/lib/randomperson/Names/BasqueFemaleFirst.rb +10 -9
  16. data/lib/randomperson/Names/BasqueLast.rb +9 -8
  17. data/lib/randomperson/Names/BasqueMaleFirst.rb +10 -9
  18. data/lib/randomperson/Names/BritishPrefix.rb +10 -16
  19. data/lib/randomperson/Names/BritishSuffix.rb +21 -16
  20. data/lib/randomperson/Names/EnglishFemaleFirst.rb +10 -9
  21. data/lib/randomperson/Names/EnglishLast.rb +12 -11
  22. data/lib/randomperson/Names/EnglishMaleFirst.rb +10 -9
  23. data/lib/randomperson/Names/EnglishPrefix.rb +11 -15
  24. data/lib/randomperson/Names/FinnishFemaleFirst.rb +10 -8
  25. data/lib/randomperson/Names/FinnishLast.rb +9 -8
  26. data/lib/randomperson/Names/FinnishMaleFirst.rb +10 -9
  27. data/lib/randomperson/Names/FinnishPrefix.rb +16 -18
  28. data/lib/randomperson/Names/FrenchFemaleFirst.rb +10 -9
  29. data/lib/randomperson/Names/FrenchLast.rb +12 -11
  30. data/lib/randomperson/Names/FrenchMaleFirst.rb +11 -10
  31. data/lib/randomperson/Names/GermanFemaleFirst.rb +10 -9
  32. data/lib/randomperson/Names/GermanLast.rb +9 -8
  33. data/lib/randomperson/Names/GermanMaleFirst.rb +10 -9
  34. data/lib/randomperson/Names/ScottishFemaleFirst.rb +10 -9
  35. data/lib/randomperson/Names/ScottishLast.rb +11 -10
  36. data/lib/randomperson/Names/ScottishMaleFirst.rb +13 -12
  37. data/lib/randomperson/Names/ScottishPrefix.rb +10 -16
  38. data/lib/randomperson/Names/SpanishFemaleFirst.rb +11 -10
  39. data/lib/randomperson/Names/SpanishLast.rb +15 -12
  40. data/lib/randomperson/Names/SpanishMaleFirst.rb +12 -11
  41. data/lib/randomperson/Names/SpanishPrefix.rb +17 -19
  42. data/lib/randomperson/Names/SwedishFemaleFirst.rb +10 -9
  43. data/lib/randomperson/Names/SwedishLast.rb +10 -9
  44. data/lib/randomperson/Names/SwedishMaleFirst.rb +15 -14
  45. data/lib/randomperson/Names/ThaiFemaleFirst.rb +9 -8
  46. data/lib/randomperson/Names/ThaiFirst.rb +9 -8
  47. data/lib/randomperson/Names/ThaiLast.rb +9 -8
  48. data/lib/randomperson/Names/ThaiMaleFirst.rb +9 -8
  49. data/lib/randomperson/Names/ThaiRomanisedFemaleFirst.rb +10 -9
  50. data/lib/randomperson/Names/ThaiRomanisedLast.rb +11 -10
  51. data/lib/randomperson/Names/ThaiRomanisedMaleFirst.rb +10 -9
  52. data/lib/randomperson/Names/WelshFemaleFirst.rb +9 -8
  53. data/lib/randomperson/Names/WelshLast.rb +11 -10
  54. data/lib/randomperson/Names/WelshMaleFirst.rb +9 -8
  55. data/lib/randomperson/Names/WelshPrefix.rb +10 -16
  56. data/lib/randomperson/Outputter.rb +53 -0
  57. data/lib/randomperson/demographic.rb +75 -0
  58. data/lib/randomperson/ext/Array.rb +6 -2
  59. data/lib/randomperson/generator.rb +54 -77
  60. data/lib/randomperson/name.rb +18 -13
  61. data/lib/randomperson/person.rb +2 -0
  62. data/lib/randomperson/version.rb +1 -1
  63. data/lib/randomperson.rb +126 -1
  64. data/spec/AmericanSuffix_spec.rb +37 -0
  65. data/spec/AnyLast_spec.rb +25 -0
  66. data/spec/Last_and_First_Names_spec.rb +113 -0
  67. data/spec/array_spec.rb +49 -0
  68. data/spec/demographic_spec.rb +15 -0
  69. data/spec/generator_spec.rb +1 -4
  70. data/spec/name_spec.rb +3 -2
  71. data/spec/randomperson_spec.rb +321 -0
  72. data/spec/rspec_helper.rb +22 -0
  73. data/spec/support/helpers.rb +13 -0
  74. data/spec/support/matchers/all.rb +14 -0
  75. data/spec/support/matchers/be_in.rb +9 -0
  76. data/spec/support/shared_examples/names.rb +59 -0
  77. data/test/benchmarks/concat_or_add.rb +30 -0
  78. data/test/benchmarks/my_assoc_or_select.rb +60 -0
  79. data.tar.gz.sig +0 -0
  80. metadata +35 -7
  81. metadata.gz.sig +2 -3
  82. data/README +0 -324
  83. data/lib/randomperson/choice.rb +0 -113
  84. data/spec/choice_spec.rb +0 -13
@@ -0,0 +1,321 @@
1
+ # encoding: UTF-8
2
+
3
+ require_relative "./rspec_helper.rb"
4
+ require_relative "../lib/randomperson.rb"
5
+
6
+ shared_examples "a Person" do
7
+ it { subject.first.should_not be_nil }
8
+ it { subject.first.should be_a_kind_of String }
9
+ it { subject.last.should_not be_nil }
10
+ it { subject.last.should be_a_kind_of String }
11
+ it { subject.prefix.should_not be_nil }
12
+ it { subject.prefix.should be_a_kind_of String }
13
+ end
14
+
15
+ shared_examples "there is more than one demographic" do
16
+ context "Given a new demographic" do
17
+ before(:all) { r.demographic("America").add_American }
18
+ context "but not changing to it" do
19
+ let(:last_run) { r.person }
20
+ subject { last_run }
21
+ it { should equal first_run }
22
+ context "changing to the new demographic" do
23
+ let(:new_demo_person) { r.person "America" }
24
+ subject { new_demo_person }
25
+ it { should_not equal last_run }
26
+ end
27
+ end
28
+ end
29
+ end
30
+
31
+ shared_examples "getting the last person" do
32
+ context "on first run" do
33
+ subject{ first_run }
34
+ it_behaves_like "a Person"
35
+ context "on next run" do
36
+ context "Given no demographic" do
37
+ subject { r.person }
38
+ it { should equal first_run }
39
+ end
40
+ context "Given the same demographic" do
41
+ subject{ r.person "Spain" }
42
+ it { should equal first_run }
43
+ it_behaves_like "there is more than one demographic"
44
+ end
45
+ end
46
+ end
47
+ end
48
+
49
+ shared_examples "clear or reset" do
50
+ let(:r) { RandomPerson() }
51
+ before(:all) {
52
+ r.demographic("Spain").add_Spanish
53
+ r.demographic("Finland").add_Finnish
54
+ r.generate "Spain"
55
+ r.generate
56
+ r.generate "Finland"
57
+ r.generate
58
+ r.generate "Spain"
59
+ }
60
+ subject { r.clear }
61
+ it { should be_nil }
62
+ specify { r.should_not be_nil }
63
+ specify { r.should be_a_kind_of RandomPerson::Facade }
64
+ specify { r.generators.should be_empty }
65
+ specify { r.demographics.should be_empty }
66
+ specify { expect { r.person }.to raise_error }
67
+ specify { expect { r.generate }.to raise_error }
68
+ specify { expect { r.gen_new }.to raise_error }
69
+ end
70
+
71
+
72
+ describe RandomPerson do
73
+
74
+ describe :person do
75
+ let(:r) { RandomPerson() }
76
+ context "Given a demographic" do
77
+ context "With a name" do
78
+ context "and one demographic specified" do
79
+ before(:all) {
80
+ r.demographic("Spain").add_Spanish
81
+ }
82
+ let(:first_run) { r.person "Spain" }
83
+ subject{ first_run }
84
+ it_behaves_like "a Person"
85
+ context "on next run" do
86
+ context "Given no demographic" do
87
+ subject { r.person }
88
+ it { should equal first_run }
89
+ context "and then given the same demographic explicitly" do
90
+ subject{ r.person "Spain" }
91
+ it { should equal first_run }
92
+ context "and then given a demo name that doesn't exist" do
93
+ subject{ r.person "Spurious" }
94
+ it { should be_nil }
95
+ context "and then given no demo name" do
96
+ subject{ r.person }
97
+ it { should equal first_run }
98
+ end
99
+ context "and then given the last good demographic explicitly" do
100
+ subject{ r.person "Spain" }
101
+ it { should equal first_run }
102
+ end
103
+ end
104
+ end
105
+ end
106
+ end
107
+ end
108
+
109
+ context "and no demographic specified" do
110
+ before(:all) {
111
+ r.demographic("Spain").add_Spanish
112
+ }
113
+ let(:first_run) { r.person }
114
+ it_behaves_like "getting the last person"
115
+ end
116
+
117
+ end
118
+
119
+ context "Without a name" do
120
+ context "and with a demographic specified" do
121
+ before(:all) {
122
+ r.clear
123
+ r.demographic.add_Spanish
124
+ }
125
+ subject { r.person "Spain" }
126
+ it { should be_nil }
127
+ end
128
+
129
+ context "and no demographic specified" do
130
+ before(:all) {
131
+ r.demographic.add_Spanish
132
+ }
133
+ let(:first_run) { r.person }
134
+ subject { r.person }
135
+ it { should equal first_run }
136
+ context "on repeated runs" do
137
+ before(:all) {
138
+ r.clear
139
+ r.demographic.add_Spanish
140
+ r.generate
141
+ r.generate
142
+ }
143
+ let(:last) { r.person }
144
+ subject { r.person }
145
+ it { should equal last }
146
+ end
147
+
148
+ end
149
+ end
150
+ end
151
+ context "With no demographic" do
152
+ context "Already loaded" do
153
+ subject { r.person }
154
+ specify { expect { subject }.to raise_error }
155
+ context "and given a demo name" do
156
+ subject { r.person "Not loaded" }
157
+ specify { expect { subject }.to raise_error }
158
+ end
159
+ end
160
+ context "Because they've been cleared" do
161
+ subject { r.person }
162
+ specify { expect { subject }.to raise_error }
163
+ context "and given a demo name" do
164
+ subject { r.person "Been cleared" }
165
+ specify { expect { subject }.to raise_error }
166
+ end
167
+ end
168
+ end
169
+ end # :person
170
+
171
+
172
+ describe :generators do
173
+ let(:r) { RandomPerson() }
174
+ before(:all) {
175
+ r.demographic("Spain").add_Spanish
176
+ r.demographic("Finland").add_Finnish
177
+ }
178
+ context "Before first run" do
179
+ subject { r.generators }
180
+ it { should be_empty }
181
+ end
182
+ context "First run" do
183
+ before {
184
+ r.generate "Spain"
185
+ r.generate
186
+ r.generate "Finland"
187
+ r.generate
188
+ r.generate "Spain"
189
+ }
190
+ subject { r.generators }
191
+ it { should_not be_empty }
192
+ specify { subject.keys.should include("Spain", "Finland") }
193
+ end
194
+ end # generators
195
+
196
+ describe :clear do
197
+ it_behaves_like "clear or reset"
198
+ end
199
+
200
+ describe :reset do
201
+ it_behaves_like "clear or reset"
202
+ end
203
+
204
+ describe :generate do
205
+ let(:r) { RandomPerson() }
206
+ context "Before a demographic has been loaded" do
207
+ subject { r.generate }
208
+ specify { expect { subject }.to raise_error }
209
+ end
210
+ context "When there is a demographic loaded" do
211
+ before(:all) {
212
+ r.demographic("Spain").add_Spanish
213
+ }
214
+ let(:people) {
215
+ people = []
216
+ 1000.times{ people << r.generate }
217
+ people
218
+ }
219
+ context "Given a demographic name" do
220
+ context "That has been added to demographics" do
221
+ subject { r.generate "Spain" }
222
+ it { should_not be_nil }
223
+ it { should be_a_kind_of RandomPerson::Person }
224
+ it_behaves_like "a Person"
225
+ it { should_not satisfy {|person| people.include? person } }
226
+ end
227
+ context "That has not been added to demographics" do
228
+ subject { r.generate "Spurious" }
229
+ it { should be_nil }
230
+ end
231
+ end
232
+ context "Given a no demographic name" do
233
+ subject { r.generate }
234
+ it { should_not be_nil }
235
+ it { should be_a_kind_of RandomPerson::Person }
236
+ it_behaves_like "a Person"
237
+ it { should_not satisfy {|person| people.include? person } }
238
+ end
239
+ end
240
+ context "When there is no demographic loaded" do
241
+ context "Given a demographic name" do
242
+ subject { r.generate "Spain" }
243
+ end
244
+ end
245
+ end
246
+
247
+
248
+ describe :demographics do
249
+ let(:r) { RandomPerson() }
250
+ context "With no demographics loaded" do
251
+ subject { r.demographics }
252
+ it { should be_empty }
253
+ it { should be_a_kind_of Hash }
254
+ end
255
+ context "Given a demographic" do
256
+ context "With a name" do
257
+ before(:all) {
258
+ r.demographic("Spain").add_Spanish
259
+ }
260
+ subject { r.demographics }
261
+ it { should_not be_empty }
262
+ it { should be_a_kind_of Hash }
263
+ specify { subject.first.should be_a_kind_of Array }
264
+ specify { subject.first.first.should be_a_kind_of String }
265
+ specify { subject.first.last.should be_a_kind_of RandomPerson::Demographic }
266
+ end
267
+ context "Without a name" do
268
+ before(:all) {
269
+ r.demographic.add_Spanish
270
+ }
271
+ subject { r.demographics }
272
+ it { should_not be_empty }
273
+ it { should be_a_kind_of Hash }
274
+ specify { subject.first.should be_a_kind_of Array }
275
+ specify { subject.first.first.should be_a_kind_of String }
276
+ specify { subject.first.last.should be_a_kind_of RandomPerson::Demographic }
277
+ end
278
+
279
+ context "With options" do
280
+ context "With a named demographic" do
281
+ let(:lower){ rand(99) }
282
+ let(:upper){ rand(100 - lower) + lower }
283
+ let(:females) { rand(10) }
284
+ let(:males) { rand(10) }
285
+ before(:all) {
286
+ r.demographic("Random!", gender_ratio: [females,males] , age_lower: lower, age_upper: upper ).add_Spanish
287
+ }
288
+ subject { r.demographics }
289
+ it { should_not be_empty }
290
+ it { should be_a_kind_of Hash }
291
+ specify { subject.first.should be_a_kind_of Array }
292
+ specify { subject.first.first.should be_a_kind_of String }
293
+ specify { subject.first.last.should be_a_kind_of RandomPerson::Demographic }
294
+ specify { subject.first.last.age_lower.should == lower }
295
+ specify { subject.first.last.age_upper.should == upper }
296
+ specify { subject.first.last.gender_ratio.should == [females,males] }
297
+ end
298
+ context "Without a named demographic" do
299
+ let(:lower){ rand(99) }
300
+ let(:upper){ rand(100 - lower) + lower }
301
+ let(:females) { rand(10) }
302
+ let(:males) { rand(10) }
303
+ before(:all) {
304
+ r.demographic(gender_ratio: [females,males] , age_lower: lower, age_upper: upper ).add_Spanish
305
+ }
306
+ subject { r.demographics }
307
+ it { should_not be_empty }
308
+ it { should be_a_kind_of Hash }
309
+ specify { subject.first.should be_a_kind_of Array }
310
+ specify { subject.first.first.should be_a_kind_of String }
311
+ specify { subject.first.last.should be_a_kind_of RandomPerson::Demographic }
312
+ specify { subject.first.last.age_lower.should == lower }
313
+ specify { subject.first.last.age_upper.should == upper }
314
+ specify { subject.first.last.gender_ratio.should == [females,males] }
315
+ end
316
+ end
317
+ end
318
+ end
319
+
320
+
321
+ end
@@ -0,0 +1,22 @@
1
+ # encoding: UTF-8
2
+
3
+ require "rspec"
4
+ require 'simplecov'
5
+ #require_relative "./support/helpers.rb"
6
+
7
+ SimpleCov.start
8
+
9
+ RSpec.configure do |c|
10
+ # c.include RandomPerson::Spec::Helpers
11
+ # c.treat_symbols_as_metadata_keys_with_true_values = true
12
+ end
13
+
14
+ spec_dir = File.expand_path( File.dirname __FILE__ )
15
+ Dir[ File.join( spec_dir, "/support/**/*.rb")].each {|f| require f}
16
+
17
+ require "logger"
18
+ lg = Logger.new STDOUT
19
+ lg.level = Logger::DEBUG
20
+ Lg = lg
21
+
22
+
@@ -0,0 +1,13 @@
1
+ # encoding: UTF-8
2
+
3
+ module RandomPerson
4
+ module Spec
5
+
6
+ module Helpers
7
+
8
+ def all_kind_of?( collection, kind )
9
+ collection.all? {|c| c.kind_of? kind }
10
+ end
11
+ end # Helpers
12
+ end # Spec
13
+ end # RandomPerson
@@ -0,0 +1,14 @@
1
+ # encoding: UTF-8
2
+
3
+ require "rspec/expectations"
4
+
5
+ RSpec::Matchers.define :all_be_a_kind_of do |kind|
6
+ match do |actual|
7
+ all_kind_of? actual, kind
8
+ end
9
+
10
+ def all_kind_of?( collection, kind )
11
+ collection.all? {|c| c.kind_of? kind }
12
+ end
13
+
14
+ end
@@ -0,0 +1,9 @@
1
+ # encoding: UTF-8
2
+
3
+ require "rspec/expectations"
4
+
5
+ RSpec::Matchers.define :be_in do |collection|
6
+ match do |actual|
7
+ collection.include? actual
8
+ end
9
+ end
@@ -0,0 +1,59 @@
1
+ # encoding: UTF-8
2
+
3
+ dir = File.dirname(__FILE__)
4
+ spec_dir = File.expand_path( File.join dir, "../../" )
5
+
6
+ require_relative File.expand_path( File.join spec_dir, "../lib/randomperson/person.rb" )
7
+
8
+ shared_examples "it cares about gender and/or age" do |opts={}|
9
+ opts.each{|k,v| opts[k] = { gender: "m", times: 5, age: rand(83)+17, }.merge( v ) }
10
+
11
+ opts.each_pair do |k,v|
12
+ context "Given a #{k.to_s.gsub("_", " ")}" do
13
+ it_should_behave_like "a name generator" , opts[k]
14
+ end
15
+ end
16
+ end
17
+
18
+ shared_examples "a name generator" do |opts={}|
19
+ opts = {times: 1000, gender: "f", age: rand(100),}.merge( opts )
20
+ opts[:rgx] = /^\p{Upper}\p{Alpha}+$/x if opts[:in].nil? && opts[:rgx].nil?
21
+ describe :execute do
22
+ subject { instance.execute RandomPerson::Person.new( gender: opts[:gender], age: opts[:age] ) }
23
+ it { should_not be_nil }
24
+
25
+ opts[:times].times do |_|
26
+ opts[:rgx].nil? ? nil : it { should match opts[:rgx] }
27
+ opts[:in].nil? ? nil : it { should be_in opts[:in] }
28
+ end
29
+ end # execute
30
+ end
31
+
32
+
33
+ shared_examples "a Name class", :parent => "Name" do
34
+
35
+ describe "Generally" do
36
+ subject { instance }
37
+ it { should_not be_nil }
38
+ it { should respond_to( :execute ) }
39
+ it { should respond_to(:formats ) }
40
+ it { should respond_to( :formats_ratiod ) }
41
+ it { should respond_to(:names)}
42
+ it { should respond_to(:possibles)}
43
+ specify { subject.qualified_const_get( "Names" ).should_not be_empty }
44
+ end
45
+
46
+
47
+ describe :formats_ratiod do
48
+ subject { instance.formats_ratiod }
49
+ it { should be_a_kind_of Array }
50
+ it { should all_be_a_kind_of Range }
51
+ specify { (0..99).all?{|i| subject.index_in_range( i ).kind_of? Fixnum }.should be_true } # this should make sure that format ratios are specified properly
52
+ end
53
+
54
+ describe :names do
55
+ subject { instance.names }
56
+ it { should be_a_kind_of Array }
57
+ it { should all_be_a_kind_of String }
58
+ end
59
+ end
@@ -0,0 +1,30 @@
1
+ require "benchmark"
2
+ require_relative "../lib/randomperson/Names/SpanishLast.rb"
3
+
4
+ S = RandomPerson::Names::SpanishLast.new
5
+
6
+ Benchmark.bm do |b|
7
+ b.report( "+ " ) do
8
+ a = ""
9
+ 1_000_000.times {
10
+ S.names.rand +
11
+ ' ' +
12
+ S.names.rand
13
+ }
14
+ end
15
+
16
+ b.report( '#{}' ) do
17
+ a = ""
18
+ 1_000_000.times {
19
+ "#{S.names.rand} #{S.names.rand}"
20
+ }
21
+ end
22
+
23
+ # this was just too slow
24
+ # b.report( "concat " ) do
25
+ # a = ""
26
+ # 1_000_000.times {
27
+ # S.names.rand.concat(' ').concat( S.names.rand )
28
+ # }
29
+ # end
30
+ end
@@ -0,0 +1,60 @@
1
+ require "benchmark"
2
+
3
+ class Hash
4
+ def by_index( n )
5
+ self.each_with_index { |item, index| break item if index == n }
6
+ end
7
+ end
8
+
9
+ class Array
10
+ def index_in_range( n )
11
+ self.each_with_index do |x, i|
12
+ return i if x === n
13
+ end
14
+ return nil
15
+ end
16
+ end
17
+
18
+ Times = 1000_000
19
+ Formats_ratiod = [ 0..23, 24..55, 56..74, 75..90, 91..96, 97..99 ]
20
+ Formats = Formats_ratiod.map{|x| x.to_s}
21
+
22
+ Current = Hash[ (1..Formats_ratiod.length).map{|x| x.to_s.to_sym}.zip Formats ]
23
+
24
+ Ranges = Hash[ Formats_ratiod.zip Formats ]
25
+
26
+ r = []
27
+ max = Formats_ratiod.last.end + 1
28
+ Times.times {|_| r << rand( max ) }
29
+
30
+ R = r
31
+ r = nil
32
+
33
+ def current( r )
34
+ i = Formats_ratiod.index_in_range( r )
35
+ f = Current.by_index(i).last
36
+ end
37
+
38
+ def array_contender( r )
39
+ i = Formats_ratiod.index_in_range( r )
40
+ f = Formats[i]
41
+ end
42
+
43
+ def hash_with_ranges_contender( r )
44
+ f = Ranges.each_pair{|k,v| break v if k === r }
45
+ end
46
+
47
+
48
+ Benchmark.bmbm do |b|
49
+ b.report( 'a ' ) do
50
+ Times.times {|i| array_contender R[i] }
51
+ end
52
+
53
+ b.report( 'h ' ) do
54
+ Times.times {|i| array_contender R[i] }
55
+ end
56
+
57
+ b.report( "c " ) do
58
+ Times.times {|i| current R[i] }
59
+ end
60
+ end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: randomperson
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.19
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -50,7 +50,8 @@ cert_chain:
50
50
  -----END CERTIFICATE-----
51
51
 
52
52
  '
53
- date: 2011-06-21 00:00:00.000000000Z
53
+ date: 2011-11-15 00:00:00.000000000 +00:00
54
+ default_executable:
54
55
  dependencies: []
55
56
  description: ! ' RandomPerson is a port to Ruby of Perl''s Data::RandomPerson.
56
57
  Use it to generate random persons given various parameters, such as country, age
@@ -65,10 +66,11 @@ files:
65
66
  - .gitignore
66
67
  - CHANGELOG
67
68
  - Manifest
68
- - README
69
+ - README.markdown
69
70
  - Rakefile
70
71
  - gem-public_cert.pem
71
72
  - lib/randomperson.rb
73
+ - lib/randomperson/Loader.rb
72
74
  - lib/randomperson/Names/AmericanFemaleFirst.rb
73
75
  - lib/randomperson/Names/AmericanLast.rb
74
76
  - lib/randomperson/Names/AmericanMaleFirst.rb
@@ -119,7 +121,8 @@ files:
119
121
  - lib/randomperson/Names/WelshLast.rb
120
122
  - lib/randomperson/Names/WelshMaleFirst.rb
121
123
  - lib/randomperson/Names/WelshPrefix.rb
122
- - lib/randomperson/choice.rb
124
+ - lib/randomperson/Outputter.rb
125
+ - lib/randomperson/demographic.rb
123
126
  - lib/randomperson/ext/Array.rb
124
127
  - lib/randomperson/ext/Date.rb
125
128
  - lib/randomperson/ext/Enumerable.rb
@@ -132,11 +135,24 @@ files:
132
135
  - lib/randomperson/ratio.rb
133
136
  - lib/randomperson/version.rb
134
137
  - randomperson.gemspec
135
- - spec/choice_spec.rb
138
+ - spec/AmericanSuffix_spec.rb
139
+ - spec/AnyLast_spec.rb
140
+ - spec/Last_and_First_Names_spec.rb
141
+ - spec/array_spec.rb
142
+ - spec/demographic_spec.rb
136
143
  - spec/generator_spec.rb
137
144
  - spec/name_spec.rb
145
+ - spec/randomperson_spec.rb
146
+ - spec/rspec_helper.rb
147
+ - spec/support/helpers.rb
148
+ - spec/support/matchers/all.rb
149
+ - spec/support/matchers/be_in.rb
150
+ - spec/support/shared_examples/names.rb
151
+ - test/benchmarks/concat_or_add.rb
152
+ - test/benchmarks/my_assoc_or_select.rb
138
153
  - test/test_Choice.rb
139
154
  - test/test_Generator.rb
155
+ has_rdoc: true
140
156
  homepage: http://github.com/yb66/RandomPerson
141
157
  licenses: []
142
158
  post_install_message:
@@ -157,13 +173,25 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
173
  version: '0'
158
174
  requirements: []
159
175
  rubyforge_project:
160
- rubygems_version: 1.8.5
176
+ rubygems_version: 1.6.2
161
177
  signing_key:
162
178
  specification_version: 3
163
179
  summary: A gem for generating random persons :)
164
180
  test_files:
165
- - spec/choice_spec.rb
181
+ - spec/AmericanSuffix_spec.rb
182
+ - spec/AnyLast_spec.rb
183
+ - spec/Last_and_First_Names_spec.rb
184
+ - spec/array_spec.rb
185
+ - spec/demographic_spec.rb
166
186
  - spec/generator_spec.rb
167
187
  - spec/name_spec.rb
188
+ - spec/randomperson_spec.rb
189
+ - spec/rspec_helper.rb
190
+ - spec/support/helpers.rb
191
+ - spec/support/matchers/all.rb
192
+ - spec/support/matchers/be_in.rb
193
+ - spec/support/shared_examples/names.rb
194
+ - test/benchmarks/concat_or_add.rb
195
+ - test/benchmarks/my_assoc_or_select.rb
168
196
  - test/test_Choice.rb
169
197
  - test/test_Generator.rb
metadata.gz.sig CHANGED
@@ -1,3 +1,2 @@
1
- Q�?��pd)��ZS�Ĩ|�^r2mF*�%�3���v�q�'#
2
- n��+dJn�/�Y��攟xurS��j�[t̨��O<��,!4C��#�(��}�#��nOٴI��RL/ �_�D{�����a����s��eeT��ȑ���)~�ܘ,Ǥ]��$/�b(�a��mL��|�
3
- 9G$�tm�KxP�8:W��M�9?t~����<�˵��6��qVS'�Q1MH1�Ճ N�=˜BFV �/��
1
+ c�G2e��Ci����w��iX�^X5��EP�q鬿[;G7˻!o�!f�<�cqc��pb�P)�9~����q�E<�Kp�w�:�a���fA$=���|?�
2
+ �m�!9�U��mGz�����:�/NE13B��ɗȊfѲ_F P[������lI0��73�ӫ�_�[z�N�����o�,e��t0���`����8����);��40��5Q+eV%iQ����pu���g1 F�U�L$