takuhai_status 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 60b946007f7aa250ab0eb1ca4224f0ede4ce8363
4
- data.tar.gz: 9f663c34e852007fc97ee6140398f6dd9e9ee85a
3
+ metadata.gz: 96d67dacb52e05760c7973c6b99456f1cf45c7b7
4
+ data.tar.gz: 387af7f70369463218498988511870c0b3786346
5
5
  SHA512:
6
- metadata.gz: 46d52373e77d2762f8b8c736e9cfda45ae65132c7e27326214565e8a999ba34a8e4f1306345f7e2ea43618307b022831e25e6a38735a979478185fd7cae24c56
7
- data.tar.gz: dcd9c2f2f63a712f09768b7789c083b07edea94c981817fc069b6231108515ef729b101925314e691f66754c125af6ef1635ddeae9394d42579884e0778d1230
6
+ metadata.gz: bb3d04f77dd701b0abea40914335f03560c60f0661c1f4fd65e1bcee3f49271ee7ff21e8d70916464c35e1e4a43e66e49c46b290e8c2a4538f5aa7923dc54f3a
7
+ data.tar.gz: 55f75f03530b696bcbe1ba652e1d9a798325126f630ae6edf62f5f27c799f978ff183ad5d6d3b231b6c685bcea08654028f3cc1d6ec3f988c6fae4d76c956ee9
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # TakuhaiStatus
2
2
 
3
- 日本国内の宅配便の配達ステータスを統一的に得る
3
+ 日本国内外の宅配便の配達ステータスを統一的に得る
4
4
 
5
5
  ## Installation
6
6
 
@@ -20,7 +20,18 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
- TODO: Write usage instructions here
23
+ ```ruby
24
+ require 'takuhai_status'
25
+
26
+ code = '123456789012' # code of a devivery service
27
+ s = TakuhaiStatus.scan(code) #=> an instance of services
28
+ s.stat #=> status string of this service as String
29
+ s.time #=> Time instance of status changed
30
+ s.finish? #=> dose the cargo derivering finished?
31
+
32
+ # or make new instance of a service directly
33
+ s = TakuhaiStatus::KuronekoYamato.new(code)
34
+ ```
24
35
 
25
36
  ## Development
26
37
 
@@ -0,0 +1,36 @@
1
+ require 'open-uri'
2
+ require 'nokogiri'
3
+
4
+ module TakuhaiStatus
5
+ class UPS
6
+ attr_reader :key, :time, :state
7
+
8
+ def initialize(key)
9
+ @key = key.gsub(/[^a-zA-Z0-9]/, '')
10
+ @time, @state = check
11
+ end
12
+
13
+ def finish?
14
+ return !!(@state =~ /配達済み/)
15
+ end
16
+
17
+ private
18
+ def check
19
+ uri = "http://www.ups.com/WebTracking/processInputRequest?loc=ja_JP&Requester=NES&tracknum=#{@key}"
20
+ html = open(uri, &:read)
21
+ # HTML中に謎の大量ヌル文字が含まれていてnokogiriのパースが止まる対策
22
+ html.gsub!(/\u0000/,'')
23
+ doc = Nokogiri::HTML.parse(html, uri, "utf-8")
24
+
25
+ begin
26
+ state = doc.css('.newstatus #ttc_tt_spStatus h3')[0].text.strip
27
+ time = "#{doc.css('.secHead ul li')[0].text.match(/\d{4}\/\d{2}\/\d{2} \d{1,2}:\d{2}/)[0]}+5000)"
28
+ return Time.parse(time), state
29
+ rescue NoMethodError
30
+ raise NotMyKey
31
+ rescue ArgumentError
32
+ return Time.now, ''
33
+ end
34
+ end
35
+ end
36
+ end
@@ -1,3 +1,3 @@
1
1
  module TakuhaiStatus
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -3,13 +3,14 @@ require "takuhai_status/japanpost"
3
3
  require "takuhai_status/kuronekoyamato"
4
4
  require "takuhai_status/sagawa"
5
5
  require "takuhai_status/tmg_cargo"
6
+ require "takuhai_status/ups"
6
7
 
7
8
  module TakuhaiStatus
8
9
  class NotFound < StandardError; end
9
10
  class NotMyKey < StandardError; end
10
11
 
11
12
  def self.scan(key)
12
- [JapanPost, KuronekoYamato, Sagawa, TMGCargo].each do |service|
13
+ [JapanPost, KuronekoYamato, Sagawa, TMGCargo, UPS].each do |service|
13
14
  begin
14
15
  return service.new(key)
15
16
  rescue NotMyKey
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: takuhai_status
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - TADA Tadashi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-08-10 00:00:00.000000000 Z
11
+ date: 2015-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -129,6 +129,7 @@ files:
129
129
  - lib/takuhai_status/kuronekoyamato.rb
130
130
  - lib/takuhai_status/sagawa.rb
131
131
  - lib/takuhai_status/tmg_cargo.rb
132
+ - lib/takuhai_status/ups.rb
132
133
  - lib/takuhai_status/version.rb
133
134
  - takuhai_status.gemspec
134
135
  homepage: https://github.com/tdtds/takuhai_status
@@ -151,7 +152,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
152
  version: '0'
152
153
  requirements: []
153
154
  rubyforge_project:
154
- rubygems_version: 2.4.5
155
+ rubygems_version: 2.4.5.1
155
156
  signing_key:
156
157
  specification_version: 4
157
158
  summary: get delivery status of Takuhai-bin in Japan