colissimo 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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