Module: Randwordjp
- Defined in:
- lib/randwordjp.rb,
lib/randwordjp/version.rb
Overview
Randwordjp ランダムで日本語文字列などを生成するライブラリとなります。 can get random words(sentence).
Constant Summary collapse
- VERSION =
'0.1.5'
Class Method Summary collapse
-
.address(opts = {hyphen: false}) ⇒ Hash
日本の住所(都道府県、市区町村、字町名)を取得します.
-
.alphabet(length = 10, opts = { char_case: :all }) ⇒ String
ローマ字の文字列を取得する。.
-
.alphanumeric(length = 10, opts = { char_case: :all }) ⇒ String
数字+ローマ字の文字列を取得する。.
-
.alphanumeric_plus(length = 10, opts = { char_case: :all }) ⇒ String
数字+ローマ字+記号(-_)の文字列を取得する。.
-
.date(opts = { before: 100, after: 100 ,date: Date.today}) ⇒ Date
Date型の日付を取得する。.
-
.mail_address(opts = {domain: 'rand', local_length: 10, domain_length: 10}) ⇒ String
メールアドレス風の文字列を取得する。.
-
.mynumber ⇒ Object
マイナンバーの文字列を取得する(チェックデジットはまだ仮設定).
-
.myoji ⇒ Hash
Hash型の苗字データを取得する.
-
.namae(opts = {only: false }) ⇒ Hash
Hash型の名前データを取得する genderは男性はMで女性はFになります。.
-
.numeric(length = 10) ⇒ Object
半角数字の文字列を取得する.
-
.todofuken ⇒ String
String型の都道府県名を取得する.
-
.zenkaku_all(length = 10) ⇒ String
全角日本語の文字列を取得する。 漢字は第一水準となる。.
-
.zenkaku_hirakana(length = 10, opts = { old: false }) ⇒ String
全角ひらがなの文字列を取得する。.
-
.zenkaku_katakana(length = 10, opts = { old: false }) ⇒ String
全角カタカナの文字列を取得する。.
-
.zip(opts = {hyphen: false }) ⇒ String
日本の郵便番号を取得します.
Class Method Details
.address(opts = {hyphen: false}) ⇒ Hash
日本の住所(都道府県、市区町村、字町名)を取得します
264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 |
# File 'lib/randwordjp.rb', line 264 def self.address(opts = {hyphen: false} ) table = 'addresslist' Sequel.connect(@db_connect) do |db| data = db.from(table).where(type: 1) no = Random.rand(data.count) data = data.select(:zip, :kanji_t,:kanji,:kana_t, :kana) @address_data = data.limit(1).offset(no).first end if opts[:hyphen] @address_data[:zip]= @address_data[:zip][0,3] + "-" + @address_data[:zip][3,4] end todofuken_list = YAML.load_file(@yamlfile)['worddata']['todofuken_list'] todofuken_list.each_index do |i| if todofuken_list[i] == @address_data[:kanji_t] @address_data[:todofuken_code] = format('%02d', (i + 1)) end end return @address_data end |
.alphabet(length = 10, opts = { char_case: :all }) ⇒ String
ローマ字の文字列を取得する。
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/randwordjp.rb', line 98 def self.alphabet(length = 10, opts = { char_case: :all }) words = [] base = [] case opts[:char_case] when :upper base += ('A'..'Z').to_a when :lower base += ('a'..'z').to_a when :all base += ('A'..'Z').to_a + ('a'..'z').to_a else puts "char_case can set :lower or :upper, :all." return false end length.times do words << base.sample end words.join end |
.alphanumeric(length = 10, opts = { char_case: :all }) ⇒ String
数字+ローマ字の文字列を取得する。
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/randwordjp.rb', line 124 def self.alphanumeric(length = 10, opts = { char_case: :all }) words = [] base = [] case opts[:char_case] when :upper base += ('A'..'Z').to_a when :lower base += ('a'..'z').to_a when :all base += ('A'..'Z').to_a + ('a'..'z').to_a else puts "char_case can set :lower or :upper, :all." return false end base += ('0'..'9').to_a length.times do words << base.sample end words.join end |
.alphanumeric_plus(length = 10, opts = { char_case: :all }) ⇒ String
数字+ローマ字+記号(-_)の文字列を取得する。
150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 |
# File 'lib/randwordjp.rb', line 150 def self.alphanumeric_plus(length = 10, opts = { char_case: :all }) words = [] base = [] case opts[:char_case] when :upper base += ('A'..'Z').to_a when :lower base += ('a'..'z').to_a when :all base += ('A'..'Z').to_a + ('a'..'z').to_a else puts "char_case can set :lower or :upper, :all." return false end base += ('0'..'9').to_a + ['-', '_'] words << alphabet(1) (length - 1).times do words << base.sample end words.join end |
.date(opts = { before: 100, after: 100 ,date: Date.today}) ⇒ Date
Date型の日付を取得する。
190 191 192 193 |
# File 'lib/randwordjp.rb', line 190 def self.date(opts ={ before: 100, after: 100 ,date: Date.today} ) opts[:date] ||= Date.today return opts[:date] + (rand(opts[:after].to_i + opts[:before].to_i) - opts[:before].to_i ) end |
.mail_address(opts = {domain: 'rand', local_length: 10, domain_length: 10}) ⇒ String
メールアドレス風の文字列を取得する。
178 179 180 181 182 |
# File 'lib/randwordjp.rb', line 178 def self.mail_address(opts ={domain: 'rand', local_length: 10, domain_length: 10}) local_part = alphanumeric_plus(rand(opts[:local_length]) + 1, char_case: :lower) domain_part = alphanumeric(rand(opts[:domain_length]) + 1, char_case: :lower) + '.' + opts[:domain] local_part + '@' + domain_part end |
.mynumber ⇒ Object
マイナンバーの文字列を取得する(チェックデジットはまだ仮設定)
34 35 36 37 38 39 40 41 42 |
# File 'lib/randwordjp.rb', line 34 def self.mynumber() words = "" 12.times do words += ('0'..'9').to_a.sample end array_words = words.split("") array_words[(array_words.length - 1)] = generate_mynumber_digit(words.to_s) return array_words.join end |
.myoji ⇒ Hash
Hash型の苗字データを取得する
204 205 206 207 208 209 210 211 212 213 214 215 |
# File 'lib/randwordjp.rb', line 204 def self.myoji table = 'myojilist' Sequel.connect(@db_connect) do |db| data = db.from(table) id = Random.rand(data.count + 1) while id == 0 id = Random.rand(data.count + 1) end @myoji_datum = data.select(:kanji, :kana).where(id: id).first end { kanji: @myoji_datum[:kanji], kana: @myoji_datum[:kana] } end |
.namae(opts = {only: false }) ⇒ Hash
Hash型の名前データを取得する genderは男性はMで女性はFになります。
222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 |
# File 'lib/randwordjp.rb', line 222 def self.namae(opts = {only: false } ) table = 'namaelist' Sequel.connect(@db_connect) do |db| data = db.from(table) if opts[:only] == :male data = data.where(gender: 1) elsif opts[:only] == :female data = data.where(gender: 2) end no = Random.rand(data.count) data = data.select(:kanji, :kana, :gender) @namae_datum = data.limit(1).offset(no).first end gender = 'M' if @namae_datum[:gender] == 2 gender = 'F' end { kanji: @namae_datum[:kanji], kana: @namae_datum[:kana], gender: gender } end |
.numeric(length = 10) ⇒ Object
半角数字の文字列を取得する
25 26 27 28 29 30 31 |
# File 'lib/randwordjp.rb', line 25 def self.numeric(length = 10) words = [] length.times do words << ('0'..'9').to_a.sample end words.join end |
.todofuken ⇒ String
String型の都道府県名を取得する
197 198 199 200 |
# File 'lib/randwordjp.rb', line 197 def self.todofuken todofuken_list = YAML.load_file(@yamlfile)['worddata']['todofuken_list'] todofuken_list.sample end |
.zenkaku_all(length = 10) ⇒ String
全角日本語の文字列を取得する。 漢字は第一水準となる。
48 49 50 51 52 53 54 55 |
# File 'lib/randwordjp.rb', line 48 def self.zenkaku_all(length = 10) words = [] base = YAML.load_file(@yamlfile)['worddata']['daiichi'] length.times do words << base.split(//).sample end words.join end |
.zenkaku_hirakana(length = 10, opts = { old: false }) ⇒ String
全角ひらがなの文字列を取得する。
80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/randwordjp.rb', line 80 def self.zenkaku_hirakana(length = 10, opts = { old: false }) words = [] if opts[:old] base = ('あ'..'ん').to_a else base = ('あ'..'ん').to_a.join.gsub(/ゐゑ/, '').split(//) end length.times do words << base.sample end words.join end |
.zenkaku_katakana(length = 10, opts = { old: false }) ⇒ String
全角カタカナの文字列を取得する。
62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/randwordjp.rb', line 62 def self.zenkaku_katakana(length = 10, opts = { old: false }) words = [] if opts[:old] base = ('ア'..'ン').to_a else base = ('ア'..'ン').to_a.join.gsub(/ヰヱ/, '').split(//) end length.times do words << base.sample end words.join end |
.zip(opts = {hyphen: false }) ⇒ String
日本の郵便番号を取得します
246 247 248 249 250 251 252 253 254 255 256 257 258 |
# File 'lib/randwordjp.rb', line 246 def self.zip(opts = {hyphen: false } ) table = 'addresslist' Sequel.connect(@db_connect) do |db| data = db.from(table) no = Random.rand(data.count) data = data.select(:zip) @zip_data = (data.limit(1).offset(no).first)[:zip] end if opts[:hyphen] return @zip_data[0,3] + "-" + @zip_data[3,4] end return @zip_data end |