chronopost_fuel_adjustment_coefficients 0.2.1 → 0.3.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
  SHA256:
3
- metadata.gz: e63ff2881d070db0c4320205b17fcb803c5e36996622c25500fd495f327fb7a7
4
- data.tar.gz: 2f16f0f38ac807d6b9e64bf095e3ae46bc83ab037af97ca8cf78adb1986c0b1e
3
+ metadata.gz: af263a1e2c77dcbb83f0620f19ec996774b6738ec010171a3ba30bc85fa0b8bf
4
+ data.tar.gz: 0d80c679e23e88d20287891e3ff097161bb2cd9d5585814e64d454d28a9d77e3
5
5
  SHA512:
6
- metadata.gz: 3d8a576bcf361ab3d03bcc49db1e7f0b7ba03a2dc9a3498e897c3c170e144f8975080d331dcf129908bb77fcc69a35e5c96e59121daa362eee6bbfde223ae569
7
- data.tar.gz: 97285431befdfa43ec86408f33149b22f11c655b70226cc0911ab8bfc831aea3e8aaa65147a998b2dc946d2ed1078387c7ba7e103fa5a057777fe7f5b3e4a4d1
6
+ metadata.gz: ff27cc4b0a8753a0c4c8e9b023418d989b334fb1f55a22677624c5d133760d77f41ccc8073a4cb1dc06d48e24dc04b81d054f2c462cd7400079ec77cc94a144e
7
+ data.tar.gz: f1eeba4c765f5b1452e5301201f01919014a8799c5f085d481357a7dad348f547e786bd2d7e60904e06809999ded9e16bb00ebf6ee67ecdab63791b5551a1217
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -7,7 +7,7 @@ Style/StringLiterals:
7
7
  Style/GuardClause:
8
8
  Exclude:
9
9
  - './*.gemspec'
10
-
10
+
11
11
  Metrics/BlockLength:
12
12
  Exclude:
13
13
  - './*.gemspec'
@@ -16,3 +16,14 @@ Metrics/LineLength:
16
16
  Exclude:
17
17
  - './*.gemspec'
18
18
 
19
+ Lint/AssignmentInCondition:
20
+ Enabled: false
21
+
22
+ Metrics/MethodLength:
23
+ Exclude:
24
+ - 'lib/chronopost_fuel_adjustment_coefficients.rb'
25
+
26
+ Metrics/AbcSize:
27
+ Exclude:
28
+ - 'lib/chronopost_fuel_adjustment_coefficients.rb'
29
+ - 'test/chronopost_fuel_adjustment_coefficients_test.rb'
@@ -1,5 +1,25 @@
1
1
  # Change Log
2
2
 
3
+ ## [v0.3.0](https://github.com/levups/chronopost_fuel_adjustment_coefficients/tree/v0.3.0) (2018-11-27)
4
+ [Full Changelog](https://github.com/levups/chronopost_fuel_adjustment_coefficients/compare/v0.2.1...v0.3.0)
5
+
6
+ **Closed issues:**
7
+
8
+ - Replace Oga usage with plain standard REXML parsing? [\#18](https://github.com/levups/chronopost_fuel_adjustment_coefficients/issues/18)
9
+
10
+ **Merged pull requests:**
11
+
12
+ - Replace oga with plain string parsing [\#19](https://github.com/levups/chronopost_fuel_adjustment_coefficients/pull/19) ([bobmaerten](https://github.com/bobmaerten))
13
+ - Prepare for official gem release [\#17](https://github.com/levups/chronopost_fuel_adjustment_coefficients/pull/17) ([bobmaerten](https://github.com/bobmaerten))
14
+
15
+ ## [v0.2.1](https://github.com/levups/chronopost_fuel_adjustment_coefficients/tree/v0.2.1) (2018-11-16)
16
+ [Full Changelog](https://github.com/levups/chronopost_fuel_adjustment_coefficients/compare/v0.2.0...v0.2.1)
17
+
18
+ **Closed issues:**
19
+
20
+ - Sign gem before publishing it [\#16](https://github.com/levups/chronopost_fuel_adjustment_coefficients/issues/16)
21
+ - Comply to `bundle gem` defaults [\#15](https://github.com/levups/chronopost_fuel_adjustment_coefficients/issues/15)
22
+
3
23
  ## [v0.2.0](https://github.com/levups/chronopost_fuel_adjustment_coefficients/tree/v0.2.0) (2018-11-14)
4
24
  [Full Changelog](https://github.com/levups/chronopost_fuel_adjustment_coefficients/compare/v0.1.1...v0.2.0)
5
25
 
@@ -1,17 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- chronopost_fuel_adjustment_coefficients (0.2.1)
4
+ chronopost_fuel_adjustment_coefficients (0.3.0)
5
5
  http (~> 4.0)
6
- oga (~> 2.10)
7
6
 
8
7
  GEM
9
8
  remote: https://rubygems.org/
10
9
  specs:
11
10
  addressable (2.5.2)
12
11
  public_suffix (>= 2.0.2, < 4.0)
13
- ansi (1.5.0)
14
- ast (2.4.0)
15
12
  domain_name (0.5.20180417)
16
13
  unf (>= 0.0.5, < 1.0.0)
17
14
  http (4.0.0)
@@ -25,14 +22,8 @@ GEM
25
22
  http_parser.rb (0.6.0)
26
23
  minitest (5.11.3)
27
24
  minitest-stub_any_instance (1.0.2)
28
- oga (2.15)
29
- ast
30
- ruby-ll (~> 2.1)
31
25
  public_suffix (3.0.3)
32
26
  rake (12.3.1)
33
- ruby-ll (2.1.2)
34
- ansi
35
- ast
36
27
  unf (0.1.4)
37
28
  unf_ext
38
29
  unf_ext (0.0.7.5)
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "chronopost_fuel_adjustment_coefficients"
3
- s.version = "0.2.1"
3
+ s.version = "0.3.0"
4
4
  s.authors = ["Bob Maerten", "Clément Joubert"]
5
5
  s.email = ["bob@levups.com", "clement@levups.com"]
6
6
 
@@ -10,17 +10,12 @@ Gem::Specification.new do |s|
10
10
  s.homepage = "https://rubygems.org/gems/chronopost_fuel_adjustment_coefficients"
11
11
  s.license = "MIT"
12
12
 
13
- # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
14
- # to allow pushing to a single host or delete this section to allow pushing to any host.
15
- if s.respond_to?(:metadata)
16
- s.metadata["allowed_push_host"] = "https://rubygems.org"
17
-
18
- s.metadata["homepage_uri"] = s.homepage
19
- s.metadata["source_code_uri"] = "https://github.com/levups/chronopost_fuel_adjustment_coefficients"
20
- s.metadata["changelog_uri"] = "https://github.com/levups/chronopost_fuel_adjustment_coefficients/blob/master/CHANGELOG.md"
21
- else
22
- raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
23
- end
13
+ s.metadata = {
14
+ "bug_tracker_uri" => "https://github.com/levups/chronopost_fuel_adjustment_coefficients/issues",
15
+ "changelog_uri" => "https://github.com/levups/chronopost_fuel_adjustment_coefficients/blob/master/CHANGELOG.md",
16
+ "homepage_uri" => "https://rubygems.org/gems/chronopost_fuel_adjustment_coefficients",
17
+ "source_code_uri" => "https://github.com/levups/chronopost_fuel_adjustment_coefficients"
18
+ }
24
19
 
25
20
  s.bindir = "exe"
26
21
  s.executables = "chronopost_fuel_adjustment_coefficients"
@@ -36,7 +31,6 @@ Gem::Specification.new do |s|
36
31
  s.signing_key = File.expand_path("~/.ssh/bob_levups-gem-private_key.pem") if $PROGRAM_NAME.end_with?("gem")
37
32
 
38
33
  s.add_dependency "http", "~> 4.0"
39
- s.add_dependency "oga", "~> 2.10"
40
34
 
41
35
  s.add_development_dependency "bundler", "~> 1.17"
42
36
  s.add_development_dependency "minitest", "~> 5.1"
@@ -2,32 +2,20 @@
2
2
 
3
3
  require 'bigdecimal'
4
4
  require 'http'
5
- require 'oga'
6
5
 
7
6
  class ChronopostFuelAdjustmentCoefficients
8
- def initialize
9
- @document = ::Oga.parse_html response.to_s
10
- end
11
-
12
- def time_period
13
- el = @document.at_css('table.ch-table thead tr th:last-child')
14
- return unless el
7
+ attr_reader :time_period
15
8
 
16
- el.text.strip.gsub(/\s+/, ' ')
9
+ def initialize
10
+ @time_period, @routier, @aerien = extracted_content
17
11
  end
18
12
 
19
13
  def air_multiplier
20
- el = @document.at_css('table.ch-table tbody tr:last-child td:last-child')
21
- return unless el
22
-
23
- format_multiplier el.text
14
+ format_multiplier @aerien
24
15
  end
25
16
 
26
17
  def road_multiplier
27
- el = @document.at_css('table.ch-table tbody tr td:last-child')
28
- return unless el
29
-
30
- format_multiplier el.text
18
+ format_multiplier @routier
31
19
  end
32
20
 
33
21
  def url
@@ -42,7 +30,26 @@ class ChronopostFuelAdjustmentCoefficients
42
30
  ''
43
31
  end
44
32
 
33
+ def extracted_content
34
+ html = response.to_s.delete("\n").gsub(/\s+/, " ")
35
+
36
+ return [] unless tables = html.split("<table ")[1]
37
+ return [] unless table = tables.split("<h2>Principe</h2>").first
38
+ return [] unless head = table.scan(%r{<thead>.*</thead>}).first
39
+ return [] unless period = head.match(%r{<p>(?<content>.*)</p>})
40
+ return [] unless body = table.scan(%r{<tbody><tr>.*</tr></tbody>}).first
41
+
42
+ time_period = period[:content].sub("<br />", "")
43
+ adjustements = body.split("</tr><tr>").map do |line|
44
+ line.to_s.rpartition("</td>").first.rpartition(">").last
45
+ end
46
+
47
+ [time_period, adjustements[0], adjustements[1]]
48
+ end
49
+
45
50
  def format_multiplier(string)
51
+ return unless string
52
+
46
53
  number = (string.to_f / 100 + 1).round(4)
47
54
  BigDecimal(number.to_s)
48
55
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chronopost_fuel_adjustment_coefficients
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bob Maerten
@@ -51,20 +51,6 @@ dependencies:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
53
  version: '4.0'
54
- - !ruby/object:Gem::Dependency
55
- name: oga
56
- requirement: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: '2.10'
61
- type: :runtime
62
- prerelease: false
63
- version_requirements: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '2.10'
68
54
  - !ruby/object:Gem::Dependency
69
55
  name: bundler
70
56
  requirement: !ruby/object:Gem::Requirement
@@ -148,10 +134,10 @@ homepage: https://rubygems.org/gems/chronopost_fuel_adjustment_coefficients
148
134
  licenses:
149
135
  - MIT
150
136
  metadata:
151
- allowed_push_host: https://rubygems.org
137
+ bug_tracker_uri: https://github.com/levups/chronopost_fuel_adjustment_coefficients/issues
138
+ changelog_uri: https://github.com/levups/chronopost_fuel_adjustment_coefficients/blob/master/CHANGELOG.md
152
139
  homepage_uri: https://rubygems.org/gems/chronopost_fuel_adjustment_coefficients
153
140
  source_code_uri: https://github.com/levups/chronopost_fuel_adjustment_coefficients
154
- changelog_uri: https://github.com/levups/chronopost_fuel_adjustment_coefficients/blob/master/CHANGELOG.md
155
141
  post_install_message:
156
142
  rdoc_options: []
157
143
  require_paths:
metadata.gz.sig CHANGED
Binary file