Class: Kuroneko

Inherits:
Object
  • Object
show all
Defined in:
lib/kuroneko.rb,
lib/kuroneko/en.rb,
lib/kuroneko/parser.rb,
lib/kuroneko/status.rb,
lib/kuroneko/history.rb,
lib/kuroneko/version.rb

Overview

クロネコヤマトの荷物を追跡する

Direct Known Subclasses

En

Defined Under Namespace

Modules: Parser Classes: En, History, Status

Constant Summary collapse

URL =

Returns 問い合わせフォームの URL.

Returns:

  • (String)

    問い合わせフォームの URL

'http://toi.kuronekoyamato.co.jp/cgi-bin/tneko'.freeze
VERSION =

Returns バージョン.

Returns:

  • (String)

    バージョン

'0.1.4'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Kuroneko

インスタンスを初期化する

Parameters:

  • options (Hash) (defaults to: {})

Options Hash (options):

  • :agent (Mechanize)

    使用する Mechanize インスタンス

  • :parser (#parse)

    ページを解析するパーサ

  • :url (String)

    問い合わせフォームの URL



29
30
31
32
33
# File 'lib/kuroneko.rb', line 29

def initialize(options={})
  @agent = options[:agent] || Mechanize.new
  @parser = options[:parser] || Parser
  @url = options[:url] || URL.dup
end

Instance Attribute Details

#agentMechanize

Returns 使用する Mechanize インスタンス.

Returns:

  • (Mechanize)

    使用する Mechanize インスタンス



15
16
17
# File 'lib/kuroneko.rb', line 15

def agent
  @agent
end

#parser#parse

Returns ページを解析するパーサ.

Returns:

  • (#parse)

    ページを解析するパーサ



18
19
20
# File 'lib/kuroneko.rb', line 18

def parser
  @parser
end

#urlString

Returns 問い合わせフォームの URL.

Returns:

  • (String)

    問い合わせフォームの URL



21
22
23
# File 'lib/kuroneko.rb', line 21

def url
  @url
end

Instance Method Details

#histories(*numbers) ⇒ Array<Kuroneko::History<Kuroneko::Status>>

複数の荷物の状態履歴を照会する

Parameters:

  • numbers (Array<String, #to_s>)

    伝票番号

Returns:



47
48
49
# File 'lib/kuroneko.rb', line 47

def histories(*numbers)
  numbers.flatten.each_slice(10).map { |n| query(n) }.flatten(1)
end

#history(number) ⇒ Kuroneko::History<Kuroneko::Status>

1 つの荷物の状態履歴を照会する

Parameters:

  • number (String, #to_s)

    伝票番号

Returns:



39
40
41
# File 'lib/kuroneko.rb', line 39

def history(number)
  histories(number).first
end

#status(number) ⇒ Kuroneko::Status

1 つの荷物の最新状態を照会する

Parameters:

  • number (String, #to_s)

    伝票番号

Returns:



55
56
57
# File 'lib/kuroneko.rb', line 55

def status(number)
  history(number).latest
end

#statuses(*numbers) ⇒ Array<Kuroneko::Status>

複数の荷物の最新状態を取得する

Parameters:

  • numbers (Array<String, #to_s>)

    伝票番号

Returns:



63
64
65
# File 'lib/kuroneko.rb', line 63

def statuses(*numbers)
  histories(*numbers).map(&:latest)
end