oddb2xml 2.4.8 → 2.4.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 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