Sha256: 770ef6fbaf492262cef06951c4a164ed96c923746c013fc1661e8b1c232b8e3e

Contents?: true

Size: 1.63 KB

Versions: 1

Compression:

Stored size: 1.63 KB

Contents

require_relative "./genkaio/version"

module Genkaio
  class Error < StandardError; end

  def self.version
   return Genkaio::VERSION
  end

  def self.getpath
   return Dir.glob("#{__dir__}/dic/dicdata*").sort[-1]
  end

  def self.interactive
   if RUBY_PLATFORM =~ /linux/
    count=0
    puts <<-'EOS'
    == INTERACTIVE  MODE ==
    == Ctrl+C,exit->quit ==
    EOS
    loop{
     begin
      count+=1
      print("genkaio:#{"%03d"%count}>>")
      i=gets.chomp
      exit(true) if i=="exit"
      puts "=================="
      puts(`[ -n "#{i}" ]&&genkaio #{i}`)
      puts "=================="
     rescue Interrupt
      puts
      exit(true)
     end
     }
    end
   end

  #ヘルプ
  def self.help(boo)
   STDERR.puts <<-'USAGE'
    COMMAND:
               genkaio - Show candidate answers for "genkai-shiritori"
    USAGE:
               genkaio [first hiragana] [length]
                       [-l, --line-number(default:10)]
                       [-e, -f, --end(default:nil)]
               genkaio [--help]
               genkaio [-h]
    EXAMPLE:
               genkaio あ8
               genkaio あ 10 -l5 -e る
    USAGE
    exit(boo)
   end


   #ファイルを開いて検索
   def self.search(dicpath, hiragana, length, line_number=10)

   File.open(dicpath, "r"){|f|

    hitdata=f.read.split("\n")
    if hiragana[1].nil?
     hitdata=hitdata.grep(/ #{hiragana[0]}.{#{length}}[^ン]$/)
    .shuffle![0,line_number].map!{|_|_.tr('ァ-ン','ぁ-ん')}
    else
     hitdata=hitdata.grep(/ #{hiragana[0]}.{#{length}}[#{hiragana[1]}]$/)
    .shuffle![0,line_number].map!{|_|_.tr('ァ-ン','ぁ-ん')}
    end
    return hitdata
   }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
genkaio-0.0.1 lib/genkaio.rb