colissimo 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8c3f72c2cb947aca0eccd8afa6137c9405933e5e
4
+ data.tar.gz: 4475b0556191e8783f95e3fee1b1013bdac0bbfe
5
+ SHA512:
6
+ metadata.gz: a4242854bb12f4446605783f9fc03fe43a8eaa184c63d7b9aaf9aafcd896268f7e9620a3645b2a7ba80f466bda8c87a7a3c86e438b254cd7d407feee13732b3d
7
+ data.tar.gz: cfe734cbdcffc8406d3a6ed59cb9ab3256989429d6be8f89b35547024e85c36b2426297ce510bba147ae56962c29de649041d1891f5bd872d9fb2fda3b023250
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.1.0
4
+ - 2.0.0
5
+ - 1.9.3
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in colissimo.gemspec
4
+ gemspec
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Sebastien Saunier
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,39 @@
1
+ [![Build Status](https://travis-ci.org/ssaunier/colissimo.png)](https://travis-ci.org/ssaunier/colissimo)
2
+
3
+ # Colissimo
4
+
5
+ This gem allows you to retrieve tracking information from French Colissimo
6
+ parcel delivery company. Unfortunatelly you won't get this information in
7
+ a text format, but in an image format. That's fine for display though.
8
+
9
+ ## Usage
10
+
11
+ Add the `colissimo` gem to your `Gemfile`, run the `bundle` command.
12
+
13
+ ```ruby
14
+ require "colissimo"
15
+
16
+ tracking_code = "6C07437595437"
17
+
18
+ rows = Colissimo::Tracker.new(tracking_code).tracking_rows
19
+
20
+ output == "<table>"
21
+ rows.each do |row|
22
+ output += " <tr>"
23
+ output += " <td><img src='#{row.date_base64_png}' /></td>"
24
+ output += " <td><img src='#{row.label_base64_png}' /></td>"
25
+ output += " <td><img src='#{row.localization_base64_png}' /></td>"
26
+ output += " </tr>"
27
+ end
28
+ output += "</table>"
29
+
30
+ ```
31
+
32
+ If you are interested in just the latest status, you can save some bandwidth
33
+ witht this option:
34
+
35
+
36
+ ```ruby
37
+ Colissimo::Tracker.new(tracking_code).tracking_rows(:latest_only => true)
38
+
39
+ ```
@@ -0,0 +1,8 @@
1
+ require 'rake/testtask'
2
+
3
+ Rake::TestTask.new do |t|
4
+ t.libs << "spec"
5
+ t.test_files = FileList['spec/**/*_spec.rb']
6
+ end
7
+
8
+ task :default => :test
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'colissimo/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "colissimo"
8
+ spec.version = Colissimo::VERSION
9
+ spec.authors = ["Sebastien Saunier"]
10
+ spec.email = ["seb@saunier.me"]
11
+ spec.summary = %q{Retrieve tracking information from french Colissimo parcel delivery}
12
+ spec.description = spec.summary
13
+ spec.homepage = "https://github.com/ssaunier/colissimo"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "httpclient", "~> 2.2"
22
+ spec.add_dependency "nokogiri", "~> 1.5"
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.5"
25
+ spec.add_development_dependency "rake", "~> 10.1"
26
+ spec.add_development_dependency "minitest", "~> 5.2"
27
+ spec.add_development_dependency "sinatra", "~> 1.4"
28
+ end
@@ -0,0 +1,27 @@
1
+ # From the gem root repository, run:
2
+ # $ ruby example/sinatra_tracker.rb
3
+
4
+ require 'sinatra'
5
+ $: << "lib"
6
+ require "colissimo"
7
+
8
+ get '/' do
9
+ tracking_code = params[:tracking_code]
10
+ output = "<form method='get'><input name='tracking_code' placeholder='Colissimo Tracking Code' value='#{tracking_code}' /></form>"
11
+
12
+ if tracking_code
13
+ tracking_rows = Colissimo::Tracker.new(tracking_code).tracking_rows
14
+
15
+ output += "<table>"
16
+ tracking_rows.each do |row|
17
+ output += " <tr>"
18
+ output += " <td><img src='#{row.date_base64_png}' /></td>"
19
+ output += " <td><img src='#{row.label_base64_png}' /></td>"
20
+ output += " <td><img src='#{row.localization_base64_png}' /></td>"
21
+ output += " </tr>"
22
+ end
23
+ output += "</table>"
24
+ end
25
+
26
+ output
27
+ end
@@ -0,0 +1,2 @@
1
+ require "colissimo/version"
2
+ require "tracker"
@@ -0,0 +1,3 @@
1
+ module Colissimo
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,73 @@
1
+ require "httpclient"
2
+ require "nokogiri"
3
+ require "base64"
4
+
5
+ module Colissimo
6
+ ROOT_PATH = "http://www.colissimo.fr/portail_colissimo/"
7
+ TRACKING_ENDPOINT = "suivre.do?colispart="
8
+
9
+ class Tracker
10
+ def initialize(shipping_code, http_client = nil)
11
+ @shipping_code = shipping_code
12
+ @http_client = http_client || HTTPClient.new
13
+ end
14
+
15
+ # Options:
16
+ # - latest_only: Retrieve only the latest tracking status (first row)
17
+ def tracking_rows(options = {})
18
+ body = @http_client.get_content tracking_url
19
+ doc = Nokogiri::HTML(body)
20
+ tracking_images(doc, options)
21
+ end
22
+
23
+ private
24
+
25
+ def tracking_url
26
+ "#{ROOT_PATH}#{TRACKING_ENDPOINT}#{@shipping_code}"
27
+ end
28
+
29
+ def tracking_images(doc, options)
30
+ options[:latest_only] ||= false
31
+
32
+ rows = doc.css("#resultatSuivreDiv .dataArray > tbody > tr")
33
+ rows = [ rows.first ] if options[:latest_only]
34
+
35
+ rows.collect do |row|
36
+ images = row.css("td img").collect do |img|
37
+ "#{ROOT_PATH}#{img.attr("src").strip}"
38
+ end
39
+ Row.new images, @http_client
40
+ end
41
+ end
42
+
43
+ class Row
44
+ def initialize(images, http_client)
45
+ @date_src = images[0]
46
+ @label_src = images[1]
47
+ @localization_src = images[2]
48
+ @http_client = http_client
49
+ end
50
+
51
+ %w(date label localization).each do |property|
52
+ define_method(property) do
53
+ unless instance_variable_defined? "@#{property}"
54
+ image = instance_variable_get "@#{property}_src"
55
+ instance_variable_set "@#{property}", @http_client.get_content(image)
56
+ end
57
+ instance_variable_get "@#{property}"
58
+ end
59
+
60
+ define_method("#{property}_base64_png") do
61
+ base64_png(self.send property.to_sym)
62
+ end
63
+ end
64
+
65
+ private
66
+
67
+ def base64_png(image)
68
+ "data:image/png;base64,#{Base64.encode64(image).strip}" unless image.nil?
69
+ end
70
+ end
71
+
72
+ end
73
+ end
@@ -0,0 +1,61 @@
1
+ require "spec_helper"
2
+ require "tracker"
3
+
4
+ module Colissimo
5
+ describe Tracker do
6
+
7
+ before(:each) do
8
+ @client = MiniTest::Mock.new
9
+ end
10
+
11
+ describe "#tracking_rows" do
12
+ it "should not raise if no tracking_code given" do
13
+ @client.expect :get_content, "", [String]
14
+
15
+ tracker = Colissimo::Tracker.new nil, @client
16
+ tracker.tracking_rows.must_be_empty
17
+ end
18
+
19
+ it "should parse Colissimo HTML and find 8 rows" do
20
+ parse_6C07437595437
21
+
22
+ tracker = Colissimo::Tracker.new "6C07437595437", @client
23
+ rows = tracker.tracking_rows
24
+ rows.size.must_equal 8
25
+ end
26
+
27
+ it "should parse Colissimo HTML and keep only the first row" do
28
+ parse_6C07437595437
29
+
30
+ tracker = Colissimo::Tracker.new "6C07437595437", @client
31
+ rows = tracker.tracking_rows :latest_only => true
32
+ rows.size.must_equal 1
33
+ end
34
+
35
+ it "should read date, label and localization from tracked row" do
36
+ parse_6C07437595437
37
+ tracker = Colissimo::Tracker.new "6C07437595437", @client
38
+ row = tracker.tracking_rows(:latest_only => true).first
39
+
40
+ @client.expect :get_content, "000000", [String]
41
+ row.date.must_equal "000000"
42
+ row.date_base64_png.must_equal "data:image/png;base64,MDAwMDAw"
43
+
44
+ @client.expect :get_content, "111111", [String]
45
+ row.label.must_equal "111111"
46
+ row.label_base64_png.must_equal "data:image/png;base64,MTExMTEx"
47
+
48
+ @client.expect :get_content, "222222", [String]
49
+ row.localization.must_equal "222222"
50
+ row.localization_base64_png.must_equal "data:image/png;base64,MjIyMjIy"
51
+ end
52
+
53
+ private
54
+
55
+ def parse_6C07437595437
56
+ body = File.read("spec/support/6C07437595437.html", :encoding => 'iso-8859-1')
57
+ @client.expect :get_content, body, [String]
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,2 @@
1
+ require "minitest/autorun"
2
+ require "minitest/pride"
@@ -0,0 +1,743 @@
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
19
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"><head>
20
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
21
+ <title>Colissimo.fr</title>
22
+ <link rel="stylesheet" type="text/css" href="/css/default.css" media="All"><script type="text/javascript" src="/js/cufon-yui.js"></script><script type="text/javascript" src="/js/typoCufon.js"></script><script type="text/javascript" src="/js/default.js"></script><script type="text/javascript" src="/js/swfobject.js"></script><script type="text/javascript">
23
+ var flashvars = {
24
+ };
25
+ var params = {
26
+ //wmode:"transparent",
27
+ allowScriptAccess: "always",
28
+ allowDomain: "sameDomain"
29
+ };
30
+
31
+ var attributes = {
32
+ };
33
+ swfobject.embedSWF("/swf/inter.swf", "inter", "500", "300", "9.0", null, flashvars, params, attributes);</script></head>
34
+ <body>
35
+ <div id="page" class="particuliers">
36
+
37
+ <link rel="stylesheet" type="text/css" href="/portail_colissimo/css/extra_tlt.css" media="All" />
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+ <h1 class="hidden">Coliposte</h1>
52
+ <div id="header" class="">
53
+ <p id="logo"><a title="Colissimo.fr" href="/particuliers/"><img src="/img/misc/logo_dark.png" alt="Colissimo.fr , La Poste la confiance donne de l'avance"></a></p>
54
+ <div id="header_partRight">
55
+ <div id="formResearchLang">
56
+ <div class="researchCustom">
57
+ <div>
58
+ <form id="cse-search-box" action="/particuliers/Resultat_De_Recherche.jsp"><input type="hidden" name="cx" value="007359575624531106776:bxmvxij85xc"><input type="hidden" name="cof" value="FORID:10"><input type="hidden" name="ie" value="UTF-8"><input type="text" name="q" size="31" class="textField"><input type="submit" name="sa" value="Rechercher" class="submitButton" id="okRecherche"></form>
59
+ </div>
60
+ </div>
61
+ </div>
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+ <ul id="navT">
70
+ <li>
71
+
72
+
73
+
74
+ <a class="btn" id="utilisateurAuthent" href="#" title="Mon espace personnel" onclick="$layer.open({contentFrom:'popin_login',mask:true});return false;"><span>Mon espace personnel</span></a>
75
+
76
+
77
+
78
+
79
+ </li>
80
+ <li><a xmlns="http://www.w3.org/1999/xhtml" href="https://www.coliposte.fr/pro/services/accueil_pro.jsp" onclick="xt_med('C','1','Espace entreprise','S')" class="btn" id="entreprise" alt="Espace entreprise" title="Espace entreprise"><span xmlns="">Espace entreprise</span></a></li>
81
+ <li><a xmlns="http://www.w3.org/1999/xhtml" href="/corporate/index.jsp" onclick="xt_med('C','1','Qui sommes-nous _','N')" class="btn" id="quisommesnous" alt="Qui sommes-nous ?" title="Qui sommes-nous ?"><span xmlns="">Qui sommes nous ?</span></a></li>
82
+ </ul>
83
+ <ul id="navH">
84
+ <li><a href="/particuliers/envoyer_un_colis">Envoyer un colis</a><div>
85
+ <ul>
86
+ <li><a href="/particuliers/envoyer_un_colis/decouvrir_loffre_colissimo" title="Découvrir l'offre Colissimo">Découvrir l'offre Colissimo</a></li>
87
+ <li><a href="/particuliers/envoyer_un_colis/preparer_un_colis" title="Préparer un colis">Préparer un colis</a></li>
88
+ <li><a href="/particuliers/envoyer_un_colis/affranchir_vos_colis_en_ligne" title="Affranchir des colis en ligne">Affranchir des colis en ligne</a></li>
89
+ <li><a href="/particuliers/envoyer_un_colis/Expedier_un_colis_en_bal" title="Expédier un colis depuis sa boîte à lettres">Expédier un colis depuis sa boîte à lettres</a></li>
90
+ <li><a href="/particuliers/envoyer_un_colis/Deposer_un_colis_retour" title="Déposer un colis retour">Déposer un colis retour</a></li>
91
+ </ul>
92
+ </div>
93
+ </li>
94
+ <li><a href="/particuliers/suivre_un_colis">Suivre un colis</a><div>
95
+ <ul>
96
+ <li><a href="/particuliers/suivre_un_colis/espace_personnel" title="Accéder à mon espace personnel">Accéder à mon espace personnel</a></li>
97
+ </ul>
98
+ </div>
99
+ </li>
100
+ <li><a href="/particuliers/recevoir_un_colis">Recevoir un colis</a><div>
101
+ <ul>
102
+ <li><a href="/particuliers/recevoir_un_colis/avec_So_Colissimo" title="Avec So Colissimo">Avec So Colissimo</a></li>
103
+ <li><a href="/particuliers/recevoir_un_colis/Qui_me_livre_en_So_Colissimo" title="Qui me livre en So Colissimo ?">Qui me livre en So Colissimo ?</a></li>
104
+ <li><a href="/particuliers/recevoir_un_colis/En_cityssimo" title="En espace Cityssimo">En espace Cityssimo</a></li>
105
+ <li><a href="/particuliers/recevoir_un_colis/Tout_savoir_sur_la_livraison" title="Tout savoir sur la livraison">Tout savoir sur la livraison</a></li>
106
+ <li><a href="/particuliers/recevoir_un_colis/Retirer_un_colis_So_Colissimo" title="Retirer un colis So Colissimo">Retirer un colis So Colissimo</a></li>
107
+ </ul>
108
+ </div>
109
+ </li>
110
+ <li><a href="/particuliers/Aide" class="last">Aide</a><div>
111
+ <ul>
112
+ <li><a href="/particuliers/Aide/Questions_Reponses" title="Questions - Réponses">Questions - Réponses</a></li>
113
+ <li><a href="/particuliers/Aide/Formulaire_contact" title="Contact">Contact</a></li>
114
+ </ul>
115
+ </div>
116
+ </li>
117
+ </ul>
118
+ </div>
119
+ </div>
120
+ <div id="popin_login" class="hidden">
121
+ <div class="Hpadding"><img src="/img/picto/cadenas.png" style="float: left; padding-top: 10px; margin-right: 10px;"><h2 style="color: rgb(128, 128, 120);">Mon compte</h2><table border="0"><tbody><tr><td><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom>
122
+ <w:HyphenationZone>21</w:HyphenationZone> <w:Compatibility> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/>
123
+ <w:UseAsianBreakRules/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument>
124
+ </xml><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tableau Normal";
125
+ mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm
126
+ 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times
127
+ New Roman";} </style> <![endif]--> <p class="MsoNormal"><strong><span style="font-size: 13pt; font-family: Verdana; color:
128
+ #ed7d00">Bienvenue sur votre espace personnel ! </span></strong></p>&nbsp; <br /></td><td>&nbsp;<br /></td></tr></tbody></table><div
129
+ class="listAccountAbilities"></div><div class="listAccountAbilities">En ouvrant un compte sur colissimo.fr vous pourrez :
130
+ <br /><br /></div><div class="listAccountAbilities"></div><div class="listAccountAbilities"><table border="0" width="342"
131
+ height="82"><tbody><tr><td><img src="https://www.colissimo.fr/media/picto_ewp/att00006964/picto_ability1.png" alt="" width="21"
132
+ height="22" /></td><td>&nbsp;<span>Enregistrer des colis dans votre espace personnel</span></td></tr><tr><td><img src="https://www.colissimo.fr/media/picto_ewp/att00006965/picto_ability2.png"
133
+ alt="" width="21" height="23" /></td><td>&nbsp;<span>Consulter le suivi et l'historique de vos colis</span></td></tr><tr><td><img
134
+ src="https://www.colissimo.fr/media/picto_ewp/att00006966/picto_ability3.png" alt="" width="21" height="23" /></td><td>&nbsp;<span>&Ecirc;tre
135
+ alert&eacute; de la livraison de vos colis</span></td></tr></tbody></table></div><div class="listAccountAbilities"></div><iframe frameborder="0" src="/mon_compte/popin_login.htm?xtatc=INT-9" width="480" height="325"></iframe></div>
136
+ </div>
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+ <div class="main"><img src="/particuliers/suivre_un_colis/att00003367/avatar_suivre.png" alt="Si vous n'arrivez pas à visualiser le suivi de votre colis, merci de contacter notre service consommateur au 36 31" class="imgOutn1 pngFix"><ul class="breadcrumb">
146
+ <li class="first"><a title="" href="/particuliers">
147
+ Accueil
148
+ </a></li>
149
+ <li class="last">Suivre un colis</li>
150
+ </ul>
151
+ <h1 class="pictoBig" style="background-image: url(/particuliers/suivre_un_colis/att00003367/suivre_108.png);_background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/particuliers/suivre_un_colis/att00003367/suivre_108.png',sizingMethod='crop');&#34;">Suivre un colis</h1>
152
+ <div class="mainInside">
153
+ <div id="mainInsideContent" class="twoCols">
154
+ <div id="leftColumn" class="">
155
+
156
+ <p class="intro Tpadding"><p><span style="font-family: Verdana; font-size: 10pt">Avec le suivi, votre colis est unique. A l'aide du num&eacute;ro inscrit
157
+ sur la preuve de d&eacute;p&ocirc;t (sous le&nbsp;code &agrave; barres), vous &ecirc;tes inform&eacute; de&nbsp;l'&eacute;tat
158
+ de votre envoi dans le r&eacute;seau postal.<br /></span><span style="font-family: Verdana; font-size: 10pt">Vous pouvez consulter
159
+ le suivi de votre colis pendant 30 jours apr&egrave;s son envoi. Sur &quot;Mon espace personnel&quot;, vous pouvez acc&eacute;der
160
+ &agrave; un suivi durant 90 jours apr&egrave;s l&rsquo;envoi.<br /><br /></span></p>
161
+ </p>
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+ <!-- DEBUT SERVICE -->
170
+ <script type="text/javascript" src="/portail_colissimo/js/jquery-1.3.2.min.js"></script>
171
+ <script type="text/javascript" src="/portail_colissimo/js/jquery.scrollTo-min.js"></script>
172
+ <script type="text/javascript" src="/portail_colissimo/js/main.js"></script>
173
+ <script type="text/javascript" src="/portail_colissimo/js/FW.core.js"></script>
174
+ <script type="text/javascript" src="/portail_colissimo/js/FW.decorations.js"></script>
175
+ <script type="text/javascript" src="/portail_colissimo/js/FW.modules.js"></script>
176
+ <script type="text/javascript" src="/portail_colissimo/js/swfobject.js"></script>
177
+ <script type="text/javascript" src="/portail_colissimo/js/default.js"></script>
178
+ <script type="text/javascript" src="/portail_colissimo/js/xtcore.js"></script>
179
+
180
+ <div id="suivreDiv">
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+ <script type="text/javascript" src="/portail_colissimo/js/suivre/suivre.js"></script>
191
+
192
+ <form name="suivreForm" method="post" action="/portail_colissimo/suivreResultat.do" class="suivreForm" onsubmit="javascript:submitSuivre();return false;">
193
+ <input type="hidden" name="language" value="fr_FR" id="language">
194
+
195
+ <div class="transverseBlue">
196
+ <div class="block blockFilled TmarginLg ">
197
+ <div class="blockInside">
198
+ <div class="body TpaddingLg">
199
+ <div class="partLeftSC">
200
+ <label for="number" class="labelSC">Mon n° de colis<br/>(13 caract&egrave;res)<br/>ou n° d'avis de passage<br/>(11 caract&egrave;res)</label>
201
+ </div>
202
+ <input type="text" name="parcelnumber" maxlength="20" value="6C07437595437" id="number" class="bigInputSC">
203
+ <input type="submit" value="ok" id="okNumber" class="bigSubmitSC">
204
+ </div>
205
+ <div id="resultatSuivreDiv">
206
+
207
+
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+ <h4 class="head">
242
+ Colis n&deg; : &nbsp;6C07437595437
243
+
244
+ &nbsp;&agrave; destination de :&nbsp;LES LOGES
245
+
246
+ </h4>
247
+ <table class="dataArray" summary="Suivi de votre colis" width="100%">
248
+ <colgroup>
249
+ <col width="10%" />
250
+ <col width="45%" />
251
+ <col width="45%" />
252
+ </colgroup>
253
+ <thead>
254
+ <tr>
255
+ <td id="Date">Date</td>
256
+ <td id="Libelle">Libell&eacute;</td>
257
+ <td id="site" class="last">Localisation</td>
258
+ </tr>
259
+ </thead>
260
+ <tbody>
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+ <tr >
269
+ <td headers="Date"><img src='imageio?styleBold=true&width=75&id=fr_743759543_date_1'></td>
270
+
271
+
272
+
273
+ <td headers="Libelle"><img src='imageio?styleBold=true&width=260&id=fr_743759543_libe_1'></td>
274
+
275
+
276
+ <td headers="site" class="last">
277
+
278
+ <img src='imageio?width=160&id=fr_743759543_site_1' >
279
+
280
+
281
+ </td>
282
+ </tr>
283
+
284
+
285
+
286
+ <tr >
287
+ <td headers="Date"><img src='imageio?styleBold=true&width=75&id=fr_743759543_date_2'></td>
288
+
289
+
290
+
291
+ <td headers="Libelle"><img src='imageio?styleBold=true&width=260&id=fr_743759543_libe_2'></td>
292
+
293
+
294
+ <td headers="site" class="last">
295
+
296
+
297
+
298
+ <img style="cursor:pointer" src='imageio?width=160&id=fr_743759543_site_2' onclick="openPopup();$layer.open({contentFrom:'popin_login',mask:true,url:'/portail_colissimo/pointLivraison.do?rcc=1810204264&rcr=763900'});return false;">
299
+ <br/>
300
+
301
+ <a href="#" class="lienPetit" onclick="openPopup();$layer.open({contentFrom:'popin_login',mask:true,url:'/portail_colissimo/pointLivraison.do?rcc=1810204264&rcr=763900'});return false;">Adresse et horaires</a>
302
+
303
+
304
+
305
+
306
+
307
+ <div id="horaires2" class="insidePopup" style="display:block; visibility: hidden; position: absolute; width: 500px; left: 10px; top: 10px;z-index: 1999999;">
308
+ <div class="top">&nbsp;
309
+ <div>
310
+ <div class="insidePopupContent"><a id="close" class="close popupCloseButton" href="javascript:void(0);" onclick="closePopup(2);"></a>
311
+ <div>
312
+
313
+ <div class="ptitle" ><div class="logoPoste">&nbsp;&nbsp;</div><img src='imageio?width=160&id=743759543_site_2&bgColor=white'></div>
314
+ <br/>
315
+ <img src='imageio?width=400&id=fr_743759543_popup_adr2&bgColor=white' />
316
+ <br/>
317
+ <br/>
318
+
319
+ <div class="ptitle" >Horaires</div>
320
+
321
+ <table class="tablePopup">
322
+ <tr>
323
+ <td>Lundi : </td>
324
+ <td><img src='imageio?width=200&id=fr_743759543_popup_lundi2&bgColor=white'/></td>
325
+ </tr>
326
+ <tr>
327
+ <td>Mardi : </td>
328
+ <td><img src='imageio?width=200&id=fr_743759543_popup_mardi2&bgColor=white'/></td>
329
+ </tr>
330
+ <tr>
331
+ <td>Mercredi : </td>
332
+ <td><img src='imageio?width=200&id=fr_743759543_popup_mercredi2&bgColor=white'/></td>
333
+ </tr>
334
+ <tr>
335
+ <td>Jeudi : </td>
336
+ <td><img src='imageio?width=200&id=fr_743759543_popup_jeudi2&bgColor=white'/></td>
337
+ </tr>
338
+ <tr>
339
+ <td>Vendredi : </td>
340
+ <td><img src='imageio?width=200&id=fr_743759543_popup_vendredi2&bgColor=white'/></td>
341
+ </tr>
342
+ <tr>
343
+ <td>Samedi : </td>
344
+ <td><img src='imageio?width=200&id=fr_743759543_popup_samedi2&bgColor=white'/></td>
345
+ </tr>
346
+ <tr>
347
+ <td>Dimanche : </td>
348
+ <td><img src='imageio?width=200&id=fr_743759543_popup_dimanche2&bgColor=white'/></td>
349
+ </tr>
350
+ </table>
351
+
352
+ </div>
353
+ </div>
354
+ <div class="bottom">&nbsp;
355
+ <div>
356
+ </div>
357
+ </div>
358
+ </div>
359
+ </div>
360
+ </div>
361
+
362
+
363
+
364
+
365
+ </td>
366
+ </tr>
367
+
368
+
369
+
370
+ <tr >
371
+ <td headers="Date"><img src='imageio?styleBold=true&width=75&id=fr_743759543_date_3'></td>
372
+
373
+
374
+
375
+ <td headers="Libelle"><img src='imageio?styleBold=true&width=260&id=fr_743759543_libe_3'></td>
376
+
377
+
378
+ <td headers="site" class="last">
379
+
380
+ <img src='imageio?width=160&id=fr_743759543_site_3' >
381
+
382
+
383
+ </td>
384
+ </tr>
385
+
386
+
387
+
388
+ <tr >
389
+ <td headers="Date"><img src='imageio?styleBold=true&width=75&id=fr_743759543_date_4'></td>
390
+
391
+
392
+
393
+ <td headers="Libelle"><img src='imageio?styleBold=true&width=260&id=fr_743759543_libe_4'></td>
394
+
395
+
396
+ <td headers="site" class="last">
397
+
398
+ <img src='imageio?width=160&id=fr_743759543_site_4' >
399
+
400
+
401
+ </td>
402
+ </tr>
403
+
404
+
405
+
406
+ <tr >
407
+ <td headers="Date"><img src='imageio?styleBold=true&width=75&id=fr_743759543_date_5'></td>
408
+
409
+
410
+
411
+ <td headers="Libelle"><img src='imageio?styleBold=true&width=260&id=fr_743759543_libe_5'></td>
412
+
413
+
414
+ <td headers="site" class="last">
415
+
416
+ <img src='imageio?width=160&id=fr_743759543_site_5' >
417
+
418
+
419
+ </td>
420
+ </tr>
421
+
422
+
423
+
424
+ <tr >
425
+ <td headers="Date"><img src='imageio?styleBold=true&width=75&id=fr_743759543_date_6'></td>
426
+
427
+
428
+
429
+ <td headers="Libelle"><img src='imageio?styleBold=true&width=260&id=fr_743759543_libe_6'></td>
430
+
431
+
432
+ <td headers="site" class="last">
433
+
434
+ <img src='imageio?width=160&id=fr_743759543_site_6' >
435
+
436
+
437
+ </td>
438
+ </tr>
439
+
440
+
441
+
442
+ <tr >
443
+ <td headers="Date"><img src='imageio?styleBold=true&width=75&id=fr_743759543_date_7'></td>
444
+
445
+
446
+
447
+ <td headers="Libelle"><img src='imageio?styleBold=true&width=260&id=fr_743759543_libe_7'></td>
448
+
449
+
450
+ <td headers="site" class="last">
451
+
452
+ <img src='imageio?width=160&id=fr_743759543_site_7' >
453
+
454
+
455
+ </td>
456
+ </tr>
457
+
458
+
459
+
460
+ <tr class='last' >
461
+ <td headers="Date"><img src='imageio?styleBold=true&width=75&id=fr_743759543_date_8'></td>
462
+
463
+
464
+
465
+ <td headers="Libelle"><img src='imageio?styleBold=true&width=260&id=fr_743759543_libe_8'></td>
466
+
467
+
468
+ <td headers="site" class="last">
469
+
470
+ <img src='imageio?width=160&id=fr_743759543_site_8' >
471
+
472
+
473
+ </td>
474
+ </tr>
475
+
476
+
477
+
478
+
479
+ </tbody>
480
+ </table>
481
+
482
+ <script type="text/javascript">
483
+ function openPopup()
484
+ {
485
+ xtn2 = "Suivi"; // level 2 site
486
+ xtpage = "Détail point de retrait"; //page name (with the use of :: to create chapters)
487
+ return false;
488
+ }
489
+ </script>
490
+
491
+
492
+
493
+
494
+
495
+
496
+ <div id="popin_login" class="hidden">
497
+ <div class="Hpadding">
498
+ <iframe id="pointLivraison" frameborder="no" width="480" height="325"></iframe>
499
+ </div>
500
+ </div>
501
+
502
+
503
+
504
+ </div>
505
+ </div>
506
+ </div>
507
+ <br/>
508
+ <!--
509
+ <div class="suivre_banniere" align="center">
510
+ <div class="suivre_banniere" id="suivre_banniere">&nbsp;</div>
511
+ <script type="text/javascript">
512
+ swfobject.embedSWF("/portail_colissimo/swf/banniere_468x60.swf", "suivre_banniere", "468", "60", "9.0", null, flashvars, params, attributes);
513
+ </script>
514
+ </div>
515
+ <br>
516
+ -->
517
+ </div>
518
+ <div class="block Vmargin" align="center">
519
+ <a href="/mon_compte/loginMail.htm?numcolis=6C07437595437"><img src="/portail_colissimo/img/ewp.gif" alt="Espace web personnalisé"/></a>
520
+ </div>
521
+ </form>
522
+ </div>
523
+
524
+
525
+
526
+
527
+
528
+ <!--tag xiti-->
529
+ <!--DEBUT TAG XITI-->
530
+ <script type="text/javascript"><!--
531
+ xtnv = document; //parent.document or top.document or document
532
+ xtsd = "http://logi7";
533
+ xtsite = "423023";
534
+ xtn2 = "4"; // level 2 site
535
+ xtpage = "particuliers::Suivi_de_colis"; //page name (with the use of :: to create chapters)
536
+ xtdi = ""; //implication degree
537
+ //-->
538
+ </script>
539
+ <script type="text/javascript" src="/js/xtcore.js"></script>
540
+
541
+ <noscript><img width="1" height="1" alt="" src="http://logi7.xiti.com/hit.xiti?s=423023&s2=4&p=particuliers::particuliers::Suivi_de_colis&di=" alt="XiTi" /></noscript>
542
+ <!--FIN TAG XITI-->
543
+ <!--fin tag xiti-->
544
+
545
+ <!-- FIN SERVICE -->
546
+
547
+
548
+
549
+
550
+
551
+
552
+
553
+
554
+
555
+
556
+
557
+
558
+
559
+
560
+
561
+
562
+ <p>&nbsp;</p><p>&nbsp;</p><div class="block Bspace">
563
+ <div class="blockInside">
564
+ <div class="body">
565
+ <div class="mediaFullSize"></div>
566
+ </div>
567
+ </div>
568
+ </div>
569
+ <p><a xmlns="http://www.w3.org/1999/xhtml" href="" onclick="xt_med('C','1','','S')" class="link" alt="" title="..."></a></p></div>
570
+
571
+
572
+
573
+
574
+
575
+
576
+
577
+
578
+ <div id="rightColumn">
579
+ <div class="BmarginLg">
580
+
581
+
582
+
583
+
584
+
585
+
586
+
587
+ <div id="rightColumn">
588
+ <div class="BmarginLg">
589
+ <div class="block Bspace">
590
+ <div class="blockInside">
591
+ <div class="body">
592
+ <div class="mediaFullSize"></div>
593
+ </div>
594
+ </div>
595
+ </div>
596
+ </div>
597
+ <div class="BmarginLg">
598
+ <div class="block Bspace">
599
+ <div class="blockInside">
600
+ <div class="body">
601
+ <div class="mediaFullSize">
602
+ <div class="Bmargin txtC"><script type="text/javascript">
603
+ var params = {
604
+ wmode:"transparent"
605
+
606
+
607
+ };
608
+ var flashvars = {
609
+ //wmode:"transparent",
610
+
611
+
612
+ };
613
+ var attributes = {};
614
+ swfobject.embedSWF("/divers/blocs/standalone/att00003542/ban_ewp_suivi3.swf", "flashqvqktkc6ne0cpwps", "250", "220", "9.0", null, flashvars, params, attributes);
615
+ </script><div id="flashqvqktkc6ne0cpwps">
616
+ <div class="blockrte"><p>Pour acc&eacute;der &agrave; l'espace web particuliers : <a href="http://colissimo.fr/mon_compte/loginMail.htm">http://colissimo.fr/mon_compte/loginMail.htm
617
+ </a></p><p>Si vous ne visualisez pas l'animation, t&eacute;l&eacute;chargez le plug-in Flash <a href="http://get.adobe.com/fr/flashplayer/">http://get.adobe.com/fr/flashplayer/</a></p>
618
+ </div>
619
+ </div>
620
+ </div>
621
+ </div>
622
+ </div>
623
+ </div>
624
+ </div>
625
+ </div>
626
+ <div class="BmarginLg">
627
+ <div class="block blockFilled Bspace">
628
+ <div class="blockInside">
629
+ <div class="body bbf">
630
+ <div class="mea"><img alt="Alerte Fraude" src="/divers/blocs/standalone/att00003542/alerte_fraude.jpg" class="media"><p class="text"><span style="font-family: Verdana; font-size: 10pt"><br />&nbsp;<u><a href="/particuliers/Alerte_fraude/index.jsp"><font color="#ed7d00">Alerte
631
+ Fraude sur Internet</font></a></u></span>
632
+ </p>
633
+ </div>
634
+ </div>
635
+ </div>
636
+ </div>
637
+ </div>
638
+ <div class="BmarginLg">
639
+ <div class="block blockFilled Bspace">
640
+ <div class="blockInside">
641
+ <div class="body bbf">
642
+ <div class="mea meaRight"><img alt="Nous contacter en ligne" src="/divers/blocs/standalone/att00003542/formulaire_contact.gif" class="media"><p class="text"><span style="font-family: Verdana; font-size: 10pt"><br />&nbsp; <a href="/particuliers/Aide/Formulaire_contact/index.jsp"></a><u><a
643
+ href="/particuliers/Aide/Formulaire_contact/index.jsp"><font color="#ed7d00">Nous contacter en ligne</font></a></u></span>
644
+ </p>
645
+ </div>
646
+ </div>
647
+ </div>
648
+ </div>
649
+ </div>
650
+ <div class="BmarginLg">
651
+ <div class="block blockSimple Bspace">
652
+ <div class="blockInside">
653
+ <div class="body padding bbsc2">
654
+ <p><a xmlns="http://www.w3.org/1999/xhtml" href="/particuliers/Aide/Questions_Reponses/Suivre_un_colis/suivre.jsp" onclick="xt_med('C','1','Questions - Reponses sur le suivi','N')" class="link" alt="Questions - Réponses sur le suivi" title="Questions - Réponses sur le suivi">Questions - Réponses sur le suivi</a></p>
655
+ <div class="mea"><img alt="" src="/divers/blocs/standalone/att00003542/trait2.gif" class="media"><p class="text"></p>
656
+ </div>
657
+ <p><a xmlns="http://www.w3.org/1999/xhtml" href="/particuliers/Aide/Questions_Reponses/Recevoir_un_colis/index.jsp" onclick="xt_med('C','1','Questions - Reponses sur la livraison','N')" class="link" alt="Questions - Réponses sur la livraison" title="Questions - Réponses sur la livraison">Questions - Réponses sur la livraison</a></p>
658
+ </div>
659
+ </div>
660
+ </div>
661
+ </div>
662
+ <div class="BmarginLg">
663
+ <div class="block Bspace">
664
+ <div class="blockInside">
665
+ <div class="body">
666
+ <div class="mediaFullSize"><a href=""><img src="/divers/blocs/standalone/att00003542/service_consommateur.jpg" alt="Si vous n'arrivez pas à visualiser le suivi de votre colis, merci de contacter notre service consommateur au 36 31"></a></div>
667
+ </div>
668
+ </div>
669
+ </div>
670
+ </div>
671
+ <div class="BmarginLg">
672
+ <div class="transverse">
673
+ <div class="block blockFilled BmarginLg">
674
+ <div class="blockInside">
675
+ <h2 class="headPratique">Infos pratiques</h2>
676
+ <div class="body padding">
677
+ <div class="pratique"><a href="http://www.laposte.fr/Particulier/Utilisez-nos-outils-pratiques/Services-de-localisation/Un-bureau-de-poste " title="Trouver le bureau de poste le plus proche">Trouver le bureau de poste le plus proche</a></div>
678
+ <ul class="arrowListLink">
679
+ <li class="last"><a xmlns:xs="http://www.w3.org/2001/XMLSchema" href="/particuliers/envoyer_un_colis/decouvrir_loffre_colissimo/CGV_CSV/Engagements_de_La_Poste.jsp">Conditions générales de vente et d'utilisation</a></li>
680
+ </ul>
681
+ </div>
682
+ </div>
683
+ </div>
684
+ </div>
685
+ </div>
686
+ <div class="BmarginLg">
687
+ <div class="">
688
+ <div class="blockInside">
689
+ <div class="body b"><!-- Start of DoubleClick Floodlight Tag: Please do not remove Activity name of this tag: Conf -Vente - Colissimo - E-commercant
690
+ URL of the webpage where the tag is expected to be placed: https://confirmation_ecommercant_collissimo.fr This tag must be
691
+ placed between the and tags, as close as possible to the opening tag. Creation Date: 10/04/2013 --><img src="https://ad.doubleclick.net/activity;src=1009773;type=colis548;cat=ventcoli;qty=1;cost=[Revenue];ord=[OrderID]?"
692
+ alt="" width="1" height="1" /> <!-- End of DoubleClick Floodlight Tag: Please do not remove -->
693
+ </div>
694
+ </div>
695
+ </div>
696
+ </div>
697
+ </div></div>
698
+ </div>
699
+
700
+
701
+
702
+
703
+
704
+
705
+
706
+
707
+
708
+ </div>
709
+ </div>
710
+ </div>
711
+
712
+
713
+
714
+
715
+
716
+
717
+
718
+
719
+
720
+ <!DOCTYPE html
721
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
722
+ <div xmlns="http://www.w3.org/1999/xhtml" id="footer">
723
+ <ul>
724
+ <li><a title="Contact" href="http://www.colissimo.fr/particuliers/Aide/Formulaire_contact">Contact</a></li>
725
+ <li><a title="Espace Particulier" href="/particuliers/home.jsp">Espace Particulier</a></li>
726
+ <li><a title="Espace Entreprise" href="https://www.coliposte.fr/pro/services/accueil_pro.jsp">Espace Entreprise</a></li>
727
+ <li><a title="Qui sommes-nous ?" href="/corporate/home.jsp">Qui sommes-nous ?</a></li>
728
+ <li><a title="Mentions légales" href="/particuliers/CGU.jsp">Mentions légales</a></li>
729
+ <li><a title="Alerte fraude" href="/particuliers/Alerte_fraude/index.jsp">Alerte fraude</a></li>
730
+ <li><a title="Eco-comparateur" href="http://www.colissimo.fr/ecocomparateur">Eco-comparateur</a></li>
731
+ <li id="en"><a lang="en" title="Track a parcel" href="/portail_colissimo/suivre.do?language=en_EN">Track a parcel</a><a class="flag" title="Track a parcel" href="/portail_colissimo/suivre.do?language=en_EN"><img alt="" src="/img/misc/flagUK.png"></img></a></li>
732
+ <li class="last" id="fr"><a lang="fr" title="Suivre un colis" href="/portail_colissimo/suivre.do?language=fr_FR">Suivre un colis</a><a class="flag" title="Suivre un colis" href="/portail_colissimo/suivre.do?language=fr_FR"><img alt="" src="/img/misc/flagFR.png"></img></a></li>
733
+ </ul>
734
+ </div>
735
+ </div>
736
+ </body>
737
+ </html>
738
+
739
+
740
+
741
+
742
+
743
+
metadata ADDED
@@ -0,0 +1,145 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: colissimo
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Sebastien Saunier
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-02-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: httpclient
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: nokogiri
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.5'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.5'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.5'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.5'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.1'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.1'
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '5.2'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '5.2'
83
+ - !ruby/object:Gem::Dependency
84
+ name: sinatra
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.4'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.4'
97
+ description: Retrieve tracking information from french Colissimo parcel delivery
98
+ email:
99
+ - seb@saunier.me
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - ".gitignore"
105
+ - ".travis.yml"
106
+ - Gemfile
107
+ - LICENSE.txt
108
+ - README.md
109
+ - Rakefile
110
+ - colissimo.gemspec
111
+ - example/sinatra_tracker.rb
112
+ - lib/colissimo.rb
113
+ - lib/colissimo/version.rb
114
+ - lib/tracker.rb
115
+ - spec/lib/tracker_spec.rb
116
+ - spec/spec_helper.rb
117
+ - spec/support/6C07437595437.html
118
+ homepage: https://github.com/ssaunier/colissimo
119
+ licenses:
120
+ - MIT
121
+ metadata: {}
122
+ post_install_message:
123
+ rdoc_options: []
124
+ require_paths:
125
+ - lib
126
+ required_ruby_version: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ required_rubygems_version: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: '0'
136
+ requirements: []
137
+ rubyforge_project:
138
+ rubygems_version: 2.2.0
139
+ signing_key:
140
+ specification_version: 4
141
+ summary: Retrieve tracking information from french Colissimo parcel delivery
142
+ test_files:
143
+ - spec/lib/tracker_spec.rb
144
+ - spec/spec_helper.rb
145
+ - spec/support/6C07437595437.html