Skip to content

o8n/kansai_train_info

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kansai_train_info

CircleCI Gem Version License: GPL v3

関西地方の鉄道運行情報を取得するRuby Gemです。

English

Features

  • 🚃 関西主要路線の運行情報をリアルタイム取得
  • 🔄 自動リトライ機能(指数バックオフ付き)
  • ⚡ 高速なHTTP通信とHTML解析
  • 🛡️ 包括的なエラーハンドリング
  • 📝 完全な型定義(RBS)
  • 🎯 90%以上のテストカバレッジ

Installation

Gemをインストール:

gem install kansai_train_info

または、Gemfileに追加:

gem 'kansai_train_info', '~> 0.2.0'

Usage

Ruby

require 'kansai_train_info'

# 単一路線の情報を取得
KansaiTrainInfo.get(['大阪環状線'])
# => 大阪環状線は平常運転です

# 複数路線の情報を取得
KansaiTrainInfo.get(['大阪環状線', '御堂筋線'])
# => "大阪環状線は列車遅延があります。10分程度の遅れが発生しています。"

# 詳細URLを含める
KansaiTrainInfo.get(['大阪環状線'], url: true)
# => "大阪環状線は列車遅延があります。https://transit.yahoo.co.jp/traininfo/detail/263/0/"

# 利用可能な路線を表示
KansaiTrainInfo.help

CLI

# 単一路線
kansai_train_info get 大阪環状線

# 複数路線
kansai_train_info get 大阪環状線 御堂筋線

# URLを含める
kansai_train_info get 大阪環状線 --url

# ヘルプ
kansai_train_info help

Supported Lines

  • 大阪環状線
  • 近鉄京都線
  • 阪急京都線
  • 御堂筋線
  • 烏丸線
  • 東西線

Configuration

カスタム設定が可能です:

KansaiTrainInfo.configure do |config|
  config.timeout = 30          # タイムアウト時間(秒)
  config.max_retries = 5       # 最大リトライ回数
  config.retry_delay = 2       # リトライ間隔の基準時間(秒)
  config.user_agent = 'MyApp/1.0'
end

詳細はConfiguration Guideを参照してください。

Requirements

  • Ruby >= 3.0.0

Development

Testing

Run tests with coverage report:

# Run all tests
bundle exec rspec

# Run specific test file
bundle exec rspec spec/kansai_train_info/client_spec.rb

# View coverage report
open coverage/index.html

The project maintains a minimum test coverage of 90%.

Type Checking

This gem uses RBS for type definitions and Steep for type checking.

# Run type checking
bundle exec steep check

# Or use rake task
bundle exec rake steep

Linting

Rubocopでコードスタイルをチェック:

bundle exec rubocop

Documentation

Error Handling

このgemは以下のカスタムエラーを提供します:

  • KansaiTrainInfo::NetworkError - ネットワーク関連のエラー
  • KansaiTrainInfo::TimeoutError - タイムアウトエラー
  • KansaiTrainInfo::ParseError - HTML解析エラー
  • KansaiTrainInfo::InvalidRouteError - 無効な路線名エラー
begin
  KansaiTrainInfo.get(['存在しない路線'])
rescue KansaiTrainInfo::InvalidRouteError => e
  puts "エラー: #{e.message}"
end

License

kansai_train_info is licensed under the GPLv3 license for all open source applications.

Please do not use this project for commercial use, it is not intended to be used for commercial use.

See LICENSE.txt for details.

About

obtain train operation status in the Kansai region of Japan

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors