oddb2xml 2.4.8 → 2.4.9

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 10a1e0b3a5e0a14049a5831a11dcb9ea4e8f8624
4
- data.tar.gz: ba585a9dad0d6543a0f223ee69884633cf48824f
3
+ metadata.gz: 2432c6a39cae058c3d84941d2a581fcaec5dd1f4
4
+ data.tar.gz: 05a3d47ffc5776e4e49e76447f292e44f17b46d6
5
5
  SHA512:
6
- metadata.gz: 899bf1aa3cb7ea067e2b4aad688845219eacc57cf27b5bdec85a3bbb791ab71a31dee96f092441af0ee1ed45d8e8b5e15e0d5ebb32991c706c696e5a3841fdbf
7
- data.tar.gz: 317682251587c2003d2effc9c9a77fbe7a2485ae4d1884360b55123f4011c61b99c940d61e12ef4642953d90ff6031962059d6eda09645b62bacc25af2e95805
6
+ metadata.gz: 9e6d97f8a5a36c043ad05996e6a5e262b05831696683f6694de016c97e1355b619cc2bee954a178d4b50dc3b487110312369f7e15bea6cbd2121747f3d539851
7
+ data.tar.gz: 37f965f52b2cebb6bd8407923c823d2bc22cc793587f12ce36abbb8a74255756b898bed92ff1ffbc62c2e79b0a332941e59aaacb7a4f8fcc91e667d85ef04ebd
data/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ === 2.4.9 / 15.01.2018
2
+
3
+ * Adapt to new link of epha atc.csv
4
+ * Ensure that transfer.dat lines have always the correct line length of 97
5
+
1
6
  === 2.4.8 / 20.11.2017
2
7
 
3
8
  * Adapt to new links of swissmedic download files
@@ -1182,20 +1182,10 @@ module Oddb2xml
1182
1182
  end
1183
1183
  date[0,len]
1184
1184
  end
1185
- def format_name(name)
1186
- if RUBY_VERSION.to_f < 1.9 # for multibyte chars length support
1187
- chars = name.scan(/./mu).to_a
1188
- diff = DAT_LEN[:ABEZ] - chars.length
1189
- if diff > 0
1190
- chars += Array.new(diff, ' ')
1191
- elsif diff < 0
1192
- chars = chars[0,DAT_LEN[:ABEZ]]
1193
- end
1194
- chars.to_s
1195
- else
1196
- name = name[0,DAT_LEN[:ABEZ]] if name.length > DAT_LEN[:ABEZ]
1197
- "%-#{DAT_LEN[:ABEZ]}s" % name
1198
- end
1185
+
1186
+ # The migel name must be always 50 chars wide and in ISO 8859-1 format
1187
+ def format_name(name, length)
1188
+ ("%-#{length}s" % name)[0..length-1]
1199
1189
  end
1200
1190
  def build_dat
1201
1191
  prepare_articles
@@ -1248,7 +1238,12 @@ module Oddb2xml
1248
1238
  price_exf = sprintf('%06i', (pac[:prices][:exf_price][:price].to_f*100).to_i) if pac[:prices][:exf_price] and pac[:prices][:exf_price][:price]
1249
1239
  price_public = sprintf('%06i', (pac[:prices][:pub_price][:price].to_f*100).to_i) if pac[:prices][:pub_price] and pac[:prices][:pub_price][:price]
1250
1240
  end
1251
- row << format_name(abez)
1241
+ row << format_name(Oddb2xml.patch_some_utf8(abez), DAT_LEN[:ABEZ])
1242
+ if price_exf.to_s.length > DAT_LEN[:PRMO] ||
1243
+ price_public.to_s.length > DAT_LEN[:PRPU]
1244
+ puts "Price exfactory #{price_exf} or public #{price_public} is too high to be added into transfer.dat"
1245
+ break
1246
+ end
1252
1247
  row << "%#{DAT_LEN[:PRMO]}s" % (price_exf ? price_exf.to_s : ('0' * DAT_LEN[:PRMO]))
1253
1248
  row << "%#{DAT_LEN[:PRPU]}s" % (price_public ? price_public.to_s : ('0' * DAT_LEN[:PRPU]))
1254
1249
  row << "%#{DAT_LEN[:CKZL]}s" % if (@lppvs[ean])
@@ -1303,9 +1298,9 @@ module Oddb2xml
1303
1298
  obj[:desc_de].to_s + " " +
1304
1299
  (obj[:quantity] ? obj[:quantity] : '')
1305
1300
  ).gsub(/"/, '')
1306
- row << format_name(abez)
1307
- row << "%#{DAT_LEN[:PRMO]}s" % ('0' * DAT_LEN[:PRMO])
1308
- row << "%#{DAT_LEN[:PRPU]}s" % ('0' * DAT_LEN[:PRPU])
1301
+ row << format_name(Oddb2xml.patch_some_utf8(abez), DAT_LEN[:ABEZ])
1302
+ row << '0' * DAT_LEN[:PRMO]
1303
+ row << '0' * DAT_LEN[:PRPU]
1309
1304
  row << "%#{DAT_LEN[:CKZL]}s" % '3' # sl_entry and lppv
1310
1305
  row << "%#{DAT_LEN[:CLAG]}s" % '0'
1311
1306
  row << "%#{DAT_LEN[:CBGG]}s" % '0'
@@ -470,7 +470,7 @@ module Oddb2xml
470
470
  def to_hash
471
471
  data = {}
472
472
  while line = @io.gets
473
- line = line.encode('utf-8').gsub("\u0089", "‰").gsub("\u0092", '’').gsub("\u0096", '-').chomp
473
+ line = Oddb2xml.patch_some_utf8(line)
474
474
  next if line =~ /(ad us\.* vet)|(\(vet\))/i
475
475
  if @@extended
476
476
  next unless line =~ /(\d{13})(\d{1})$/
data/lib/oddb2xml/util.rb CHANGED
@@ -17,28 +17,27 @@ module Oddb2xml
17
17
  Downloads = "#{Dir.pwd}/downloads"
18
18
  end
19
19
  @options = {}
20
- @atc_csv_origin = 'https://raw.githubusercontent.com/epha/robot/master/data/manual/swissmedic/atc.csv'
20
+ @atc_csv_origin = 'http://download.epha.ch/data/atc/atc.csv'
21
21
  @atc_csv_content = {}
22
22
 
23
+ def Oddb2xml.patch_some_utf8(line)
24
+ begin
25
+ line.gsub("\u0089", "‰").gsub("\u0092", '’').gsub("\u0096", '-').gsub("\u2013",'-').gsub("\u201D", '"').chomp
26
+ rescue => error
27
+ puts "#{error}: in #{line}"
28
+ line
29
+ end
30
+ end
31
+
23
32
  def Oddb2xml.convert_to_8859_1(line)
24
33
  begin
25
34
  # We want to ignore lines which are not really UTF-8 encoded
26
- return line.encode('ISO-8859-1')
35
+ ausgabe = Oddb2xml.patch_some_utf8(line).encode('ISO-8859-1')
36
+ ausgabe.encode('ISO-8859-1')
27
37
  rescue => error
28
- ausgabe = ''
29
- 0.upto(line.size-1).each do |idx|
30
- begin
31
- if line[idx].ord == 8211
32
- ausgabe += '-'
33
- else
34
- ausgabe += line[idx].encode('ISO-8859-1')
35
- end
36
- rescue => error
37
- puts "#{error}: in #{line} at #{idx}"
38
- end
39
- end
38
+ puts "#{error}: in #{line}"
39
+ require 'pry'; binding.pry
40
40
  end
41
- ausgabe.encode('ISO-8859-1')
42
41
  end
43
42
 
44
43
  def Oddb2xml.add_epha_changes_for_ATC(iksnr, atc_code)
@@ -1,3 +1,3 @@
1
1
  module Oddb2xml
2
- VERSION = "2.4.8"
2
+ VERSION = "2.4.9"
3
3
  end
@@ -1025,7 +1025,7 @@
1025
1025
  ]
1026
1026
  },
1027
1027
  "method": "get",
1028
- "uri": "https://raw.githubusercontent.com/epha/robot/master/data/manual/swissmedic/atc.csv"
1028
+ "uri": "http://download.epha.ch/data/atc/atc.csv"
1029
1029
  },
1030
1030
  "response": {
1031
1031
  "body": {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oddb2xml
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.8
4
+ version: 2.4.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yasuhiro Asaka, Zeno R.R. Davatz, Niklaus Giger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-20 00:00:00.000000000 Z
11
+ date: 2018-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip