imasgen 0.1.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.
@@ -0,0 +1,211 @@
1
+ :million_live:
2
+ # AS member
3
+ - :last_name: 天海
4
+ :first_name: 春香
5
+ :last_name_furigana: あまみ
6
+ :first_name_furigana: はるか
7
+ - :last_name: 如月
8
+ :first_name: 千早
9
+ :last_name_furigana: きさらぎ
10
+ :first_name_furigana: ちはや
11
+ - :last_name: 萩原
12
+ :first_name: 雪歩
13
+ :last_name_furigana: はぎわら
14
+ :first_name_furigana: ゆきほ
15
+ - :last_name: 高槻
16
+ :first_name: やよい
17
+ :last_name_furigana: たかつき
18
+ :first_name_furigana: やよい
19
+ - :last_name: 秋月
20
+ :first_name: 律子
21
+ :last_name_furigana: あきづき
22
+ :first_name_furigana: りつこ
23
+ - :last_name: 水瀬
24
+ :first_name: 伊織
25
+ :last_name_furigana: みなせ
26
+ :first_name_furigana: いおり
27
+ - :last_name: 三浦
28
+ :first_name: あずさ
29
+ :last_name_furigana: みうら
30
+ :first_name_furigana: あずさ
31
+ - :last_name: 双海
32
+ :first_name: 亜美
33
+ :last_name_furigana: ふたみ
34
+ :first_name_furigana: あみ
35
+ - :last_name: 双海
36
+ :first_name: 真美
37
+ :last_name_furigana: ふたみ
38
+ :first_name_furigana: まみ
39
+ - :last_name: 菊地
40
+ :first_name: 真
41
+ :last_name_furigana: きくち
42
+ :first_name_furigana: まこと
43
+ - :last_name: 星井
44
+ :first_name: 美希
45
+ :last_name_furigana: ほしい
46
+ :first_name_furigana: みき
47
+ - :last_name: 四条
48
+ :first_name: 貴音
49
+ :last_name_furigana: しじょう
50
+ :first_name_furigana: たかね
51
+ - :last_name: 我那覇
52
+ :first_name: 響
53
+ :last_name_furigana: がなは
54
+ :first_name_furigana: ひびき
55
+ # Theater member
56
+ - :last_name: 春日
57
+ :first_name: 未来
58
+ :last_name_furigana: かすが
59
+ :first_name_furigana: みらい
60
+ - :last_name: 木下
61
+ :first_name: ひなた
62
+ :last_name_furigana: きのした
63
+ :first_name_furigana: ひなた
64
+ - :last_name: ''
65
+ :first_name: ジュリア
66
+ :last_name_furigana: ''
67
+ :first_name_furigana: じゅりあ
68
+ - :last_name: 高山
69
+ :first_name: 紗代子
70
+ :last_name_furigana: たかやま
71
+ :first_name_furigana: さよこ
72
+ - :last_name: 田中
73
+ :first_name: 琴葉
74
+ :last_name_furigana: たなか
75
+ :first_name_furigana: ことは
76
+ - :last_name: 天空橋
77
+ :first_name: 朋花
78
+ :last_name_furigana: てんくうばし
79
+ :first_name_furigana: ともか
80
+ - :last_name: 箱崎
81
+ :first_name: 星梨花
82
+ :last_name_furigana: はこざき
83
+ :first_name_furigana: せりか
84
+ - :last_name: 松田
85
+ :first_name: 亜利沙
86
+ :last_name_furigana: まつだ
87
+ :first_name_furigana: ありさ
88
+ - :last_name: 最上
89
+ :first_name: 静香
90
+ :last_name_furigana: もがみ
91
+ :first_name_furigana: しずか
92
+ - :last_name: 望月
93
+ :first_name: 杏奈
94
+ :last_name_furigana: もちづき
95
+ :first_name_furigana: あんな
96
+ - :last_name: 矢吹
97
+ :first_name: 可奈
98
+ :last_name_furigana: やぶき
99
+ :first_name_furigana: かな
100
+ - :last_name: エミリー
101
+ :first_name: スチュアート
102
+ :last_name_furigana: えみりー
103
+ :first_name_furigana: すちゅあーと
104
+ - :last_name: 大神
105
+ :first_name: 環
106
+ :last_name_furigana: おおがみ
107
+ :first_name_furigana: たまき
108
+ - :last_name: 北上
109
+ :first_name: 麗花
110
+ :last_name_furigana: きたかみ
111
+ :first_name_furigana: れいか
112
+ - :last_name: 高坂
113
+ :first_name: 海美
114
+ :last_name_furigana: こうさか
115
+ :first_name_furigana: うみ
116
+ - :last_name: 佐竹
117
+ :first_name: 美奈子
118
+ :last_name_furigana: さたけ
119
+ :first_name_furigana: みなこ
120
+ - :last_name: 島原
121
+ :first_name: エレナ
122
+ :last_name_furigana: しまばら
123
+ :first_name_furigana: えれな
124
+ - :last_name: 永吉
125
+ :first_name: 昴
126
+ :last_name_furigana: ながよし
127
+ :first_name_furigana: すばる
128
+ - :last_name: 野々原
129
+ :first_name: 茜
130
+ :last_name_furigana: ののはら
131
+ :first_name_furigana: あかね
132
+ - :last_name: 馬場
133
+ :first_name: このみ
134
+ :last_name_furigana: ばば
135
+ :first_name_furigana: このみ
136
+ - :last_name: 福田
137
+ :first_name: のり子
138
+ :last_name_furigana: ふくだ
139
+ :first_name_furigana: のりこ
140
+ - :last_name: 舞浜
141
+ :first_name: 歩
142
+ :last_name_furigana: まいはま
143
+ :first_name_furigana: あゆむ
144
+ - :last_name: 真壁
145
+ :first_name: 瑞希
146
+ :last_name_furigana: まかべ
147
+ :first_name_furigana: みずき
148
+ - :last_name: 百瀬
149
+ :first_name: 莉緒
150
+ :last_name_furigana: ももせ
151
+ :first_name_furigana: りお
152
+ - :last_name: 横山
153
+ :first_name: 奈緒
154
+ :last_name_furigana: よこやま
155
+ :first_name_furigana: なお
156
+ - :last_name: 伊吹
157
+ :first_name: 翼
158
+ :last_name_furigana: いぶき
159
+ :first_name_furigana: つばさ
160
+ - :last_name: 北沢
161
+ :first_name: 志保
162
+ :last_name_furigana: きたざわ
163
+ :first_name_furigana: しほ
164
+ - :last_name: 篠宮
165
+ :first_name: 可憐
166
+ :last_name_furigana: しのみや
167
+ :first_name_furigana: かれん
168
+ - :last_name: 周防
169
+ :first_name: 桃子
170
+ :last_name_furigana: すおう
171
+ :first_name_furigana: ももこ
172
+ - :last_name: 徳川
173
+ :first_name: まつり
174
+ :last_name_furigana: とくがわ
175
+ :first_name_furigana: まつり
176
+ - :last_name: 所
177
+ :first_name: 恵美
178
+ :last_name_furigana: ところ
179
+ :first_name_furigana: めぐみ
180
+ - :last_name: 豊川
181
+ :first_name: 風花
182
+ :last_name_furigana: とよかわ
183
+ :first_name_furigana: ふうか
184
+ - :last_name: 中谷
185
+ :first_name: 育
186
+ :last_name_furigana: なかたに
187
+ :first_name_furigana: いく
188
+ - :last_name: 七尾
189
+ :first_name: 百合子
190
+ :last_name_furigana: ななお
191
+ :first_name_furigana: ゆりこ
192
+ - :last_name: 二階堂
193
+ :first_name: 千鶴
194
+ :last_name_furigana: にかいどう
195
+ :first_name_furigana: ちづる
196
+ - :last_name: 宮尾
197
+ :first_name: 美也
198
+ :last_name_furigana: みやお
199
+ :first_name_furigana: みや
200
+ - :last_name: 伴田
201
+ :first_name: 路子
202
+ :last_name_furigana: はんだ
203
+ :first_name_furigana: ろこ
204
+ - :last_name: 桜守
205
+ :first_name: 歌織
206
+ :last_name_furigana: さくらもり
207
+ :first_name_furigana: かおり
208
+ - :last_name: 白石
209
+ :first_name: 紬
210
+ :last_name_furigana: しらいし
211
+ :first_name_furigana: つむぎ
@@ -0,0 +1,185 @@
1
+ :sidem:
2
+ - :last_name: 葛之葉
3
+ :first_name: 雨彦
4
+ :last_name_furigana: くずのは
5
+ :first_name_furigana: あめひこ
6
+ - :last_name: 古論
7
+ :first_name: クリス
8
+ :last_name_furigana: ころん
9
+ :first_name_furigana: クリス
10
+ - :last_name: 北村
11
+ :first_name: 想楽
12
+ :last_name_furigana: きたむら
13
+ :first_name_furigana: そら
14
+ - :last_name: 木村
15
+ :first_name: 龍
16
+ :last_name_furigana: きむら
17
+ :first_name_furigana: りゅう
18
+ - :last_name: 握野
19
+ :first_name: 英雄
20
+ :last_name_furigana: あくの
21
+ :first_name_furigana: ひでお
22
+ - :last_name: 信玄
23
+ :first_name: 誠司
24
+ :last_name_furigana: しんげん
25
+ :first_name_furigana: せいじ
26
+ - :last_name: 兜
27
+ :first_name: 大吾
28
+ :last_name_furigana: かぶと
29
+ :first_name_furigana: だいご
30
+ - :last_name: 九十九
31
+ :first_name: 一希
32
+ :last_name_furigana: つくも
33
+ :first_name_furigana: かずき
34
+ - :last_name: 秋月
35
+ :first_name: 涼
36
+ :last_name_furigana: あきづき
37
+ :first_name_furigana: りょう
38
+ - :last_name: 渡辺
39
+ :first_name: みのり
40
+ :last_name_furigana: わたなべ
41
+ :first_name_furigana: みのり
42
+ - :last_name: 鷹城
43
+ :first_name: 恭二
44
+ :last_name_furigana: たかじょう
45
+ :first_name_furigana: きょうじ
46
+ - :last_name: ''
47
+ :first_name: ピエール
48
+ :last_name_furigana: ''
49
+ :first_name_furigana: ぴえーる
50
+ - :last_name: 秋山
51
+ :first_name: 隼人
52
+ :last_name_furigana: あきやま
53
+ :first_name_furigana: はやと
54
+ - :last_name: 伊瀬谷
55
+ :first_name: 四季
56
+ :last_name_furigana: いせや
57
+ :first_name_furigana: しき
58
+ - :last_name: 冬美
59
+ :first_name: 旬
60
+ :last_name_furigana: ふゆみ
61
+ :first_name_furigana: じゅん
62
+ - :last_name: 榊
63
+ :first_name: 夏来
64
+ :last_name_furigana: さかき
65
+ :first_name_furigana: なつき
66
+ - :last_name: 若里
67
+ :first_name: 春名
68
+ :last_name_furigana: わかざと
69
+ :first_name_furigana: はるな
70
+ - :last_name: 天道
71
+ :first_name: 輝
72
+ :last_name_furigana: てんどう
73
+ :first_name_furigana: てる
74
+ - :last_name: 桜庭
75
+ :first_name: 薫
76
+ :last_name_furigana: さくらば
77
+ :first_name_furigana: かおる
78
+ - :last_name: 柏木
79
+ :first_name: 翼
80
+ :last_name_furigana: かしわぎ
81
+ :first_name_furigana: つばさ
82
+ - :last_name: 蒼井
83
+ :first_name: 享介
84
+ :last_name_furigana: あおい
85
+ :first_name_furigana: きょうすけ
86
+ - :last_name: 蒼井
87
+ :first_name: 悠介
88
+ :last_name_furigana: あおい
89
+ :first_name_furigana: ゆうすけ
90
+ - :last_name: 硲
91
+ :first_name: 道夫
92
+ :last_name_furigana: はざま
93
+ :first_name_furigana: みちお
94
+ - :last_name: 山下
95
+ :first_name: 次郎
96
+ :last_name_furigana: やました
97
+ :first_name_furigana: じろう
98
+ - :last_name: 舞田
99
+ :first_name: 類
100
+ :last_name_furigana: まいた
101
+ :first_name_furigana: るい
102
+ - :last_name: 天ヶ瀬
103
+ :first_name: 冬馬
104
+ :last_name_furigana: あまがせ
105
+ :first_name_furigana: とうま
106
+ - :last_name: 伊集院
107
+ :first_name: 北斗
108
+ :last_name_furigana: いじゅういん
109
+ :first_name_furigana: ほくと
110
+ - :last_name: 御手洗
111
+ :first_name: 翔太
112
+ :last_name_furigana: みたらい
113
+ :first_name_furigana: しょうた
114
+ - :last_name: 大河
115
+ :first_name: タケル
116
+ :last_name_furigana: たいが
117
+ :first_name_furigana: タケル
118
+ - :last_name: 円城寺
119
+ :first_name: 道流
120
+ :last_name_furigana: えんじょうじ
121
+ :first_name_furigana: みちる
122
+ - :last_name: 牙崎
123
+ :first_name: 漣
124
+ :last_name_furigana: きざき
125
+ :first_name_furigana: れん
126
+ - :last_name: ''
127
+ :first_name: アスラン=BB Ⅱ世
128
+ :last_name_furigana: ''
129
+ :first_name_furigana: アスラン・ベルゼビュート・にせい
130
+ - :last_name: 水嶋
131
+ :first_name: 咲
132
+ :last_name_furigana: みずしま
133
+ :first_name_furigana: さき
134
+ - :last_name: 東雲
135
+ :first_name: 荘一郎
136
+ :last_name_furigana: しののめ
137
+ :first_name_furigana: そういちろう
138
+ - :last_name: 神谷
139
+ :first_name: 幸広
140
+ :last_name_furigana: かみや
141
+ :first_name_furigana: ゆきひろ
142
+ - :last_name: 卯月
143
+ :first_name: 巻緒
144
+ :last_name_furigana: うづき
145
+ :first_name_furigana: まきお
146
+ - :last_name: 神楽
147
+ :first_name: 麗
148
+ :last_name_furigana: かぐら
149
+ :first_name_furigana: れい
150
+ - :last_name: 都築
151
+ :first_name: 圭
152
+ :last_name_furigana: つづき
153
+ :first_name_furigana: けい
154
+ - :last_name: 橘
155
+ :first_name: 志狼
156
+ :last_name_furigana: たちばな
157
+ :first_name_furigana: しろう
158
+ - :last_name: 岡村
159
+ :first_name: 直央
160
+ :last_name_furigana: おかむら
161
+ :first_name_furigana: なお
162
+ - :last_name: 姫野
163
+ :first_name: かのん
164
+ :last_name_furigana: ひめの
165
+ :first_name_furigana: かのん
166
+ - :last_name: 紅井
167
+ :first_name: 朱雀
168
+ :last_name_furigana: あかい
169
+ :first_name_furigana: すざく
170
+ - :last_name: 黒野
171
+ :first_name: 玄武
172
+ :last_name_furigana: くろの
173
+ :first_name_furigana: げんぶ
174
+ - :last_name: 猫柳
175
+ :first_name: キリオ
176
+ :last_name_furigana: ねこやなぎ
177
+ :first_name_furigana: キリオ
178
+ - :last_name: 華村
179
+ :first_name: 翔真
180
+ :last_name_furigana: はなむら
181
+ :first_name_furigana: しょうま
182
+ - :last_name: 清澄
183
+ :first_name: 九郎
184
+ :last_name_furigana: きよすみ
185
+ :first_name_furigana: くろう
@@ -0,0 +1,76 @@
1
+ require 'imasgen/name'
2
+
3
+ module Imasgen
4
+ class GeneratorBase
5
+ attr_accessor :auto_reset
6
+ attr_reader :be_strict
7
+
8
+ def initialize
9
+ @namedic = []
10
+ @used_pair = []
11
+ @auto_reset = false
12
+ @be_strict = true
13
+ end
14
+
15
+ def unique
16
+ @unique_i ||= self.class.new
17
+ end
18
+
19
+ def reset
20
+ # reset dictonary cache
21
+ @basedic = nil
22
+ @first_names = nil
23
+ @last_names = nil
24
+ @comb = nil
25
+ end
26
+
27
+ def be_strict=(val)
28
+ @be_strict = val
29
+ reset
30
+ end
31
+
32
+ def name
33
+ # return random item.(no shuffle in first name and last name)
34
+ item = lambda {
35
+ @basedic ||= @be_strict ? @namedic.select {|i| i[:last_name] != '' && i[:first_name] != ''} : @namedic
36
+ retval = @basedic.reject {|i| i[:used]}.sample
37
+ raise StandardError.new('Already used all name pairs.') if retval.nil? && !@auto_reset
38
+ if retval.nil? && @auto_reset
39
+ # delete used flag
40
+ @basedic.each {|i| i.delete(:used)}
41
+ retval = @namedic.sample
42
+ end
43
+ retval
44
+ }.call
45
+ item[:used] = true
46
+ Imasgen::Name.new(item)
47
+ end
48
+
49
+ def hotchpotch
50
+ # hotchpotch mode
51
+ item = lambda {
52
+ @basedic ||= @be_strict ? @namedic.select {|i| i[:last_name] != '' && i[:first_name] != ''} : @namedic
53
+ # make shuffle dictionary
54
+ @first_names ||= @basedic.map {|i| {first_name: i[:first_name], first_name_furigana: i[:first_name_furigana]}}
55
+ @last_names ||= @basedic.map {|i| {last_name: i[:last_name], last_name_furigana: i[:last_name_furigana]}}
56
+ # shuffle!!
57
+ @comb ||= @first_names.product(@last_names).map {|i| i[0].merge(i[1])}
58
+ # get non duplicate item
59
+ ret = @comb.reject {|i| i[:used]}.sample
60
+ return ret unless ret.nil?
61
+ if @auto_reset
62
+ @comb.each {|i| i.delete(:used)}
63
+ ret
64
+ else
65
+ raise StandardError.new('Already used all name pairs.')
66
+ end
67
+ }.call
68
+ item[:used] = true
69
+ Imasgen::Name.new(item)
70
+ end
71
+
72
+ def self.getyaml
73
+ throw NotImplementedError
74
+ end
75
+ end
76
+ end