oddb2tdat 1.0.4 → 1.0.5
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.
- data/History.txt +6 -0
- data/bin/oddb2tdat +5 -2
- data/lib/oddb2tdat.rb +41 -3
- metadata +26 -14
data/History.txt
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
=== 1.0.4 / 13.01.2012
|
2
2
|
|
3
|
+
* Added readable instance variable @updated_prmo
|
4
|
+
* This fix will ad more PRMO prices for doctors if we have the price.
|
5
|
+
* First EAN then Pharmacode are matched.
|
6
|
+
|
7
|
+
=== 1.0.4 / 13.01.2012
|
8
|
+
|
3
9
|
* Update CMUT, if Gültig bis is before today CMUT = 3
|
4
10
|
* Updated RECA, CMUT, PRMO, ITHE format
|
5
11
|
|
data/bin/oddb2tdat
CHANGED
@@ -6,12 +6,15 @@ require 'oddb2tdat'
|
|
6
6
|
def usage
|
7
7
|
puts <<-EOS
|
8
8
|
#$0 ver.#{Oddb2tdat::VERSION}
|
9
|
-
Usage:
|
9
|
+
Usage:
|
10
|
+
#$0 <input file (oddb.csv)> <output file (oddb.dat)>
|
11
|
+
or
|
12
|
+
#$0 <input file (oddb.csv)> <output file (oddb.dat)> <transfer file (trasfer.dat)>
|
10
13
|
|
11
14
|
EOS
|
12
15
|
end
|
13
16
|
|
14
|
-
if ARGV.length < 2 or !File.exist?(ARGV[0])
|
17
|
+
if ARGV.length < 2 or !File.exist?(ARGV[0]) or (ARGV[2] and !File.exist?(ARGV[2]))
|
15
18
|
usage
|
16
19
|
exit
|
17
20
|
end
|
data/lib/oddb2tdat.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
2
|
# encoding: utf-8
|
3
|
-
# Oddb2tdat --
|
3
|
+
# Oddb2tdat -- 20.01.2012 -- mhatakeyama@ywesee.com
|
4
4
|
|
5
5
|
require 'date'
|
6
6
|
=begin
|
@@ -22,7 +22,7 @@ require 'date'
|
|
22
22
|
=end
|
23
23
|
|
24
24
|
class Oddb2tdat
|
25
|
-
VERSION = '1.0.
|
25
|
+
VERSION = '1.0.5'
|
26
26
|
COL = {
|
27
27
|
:CMUT => 30, # AE
|
28
28
|
:PHAR => 6, # G
|
@@ -52,14 +52,25 @@ class Oddb2tdat
|
|
52
52
|
:ITHE => 7,
|
53
53
|
:CEAN => 13,
|
54
54
|
}
|
55
|
+
POS = {
|
56
|
+
:PHAR => 3,
|
57
|
+
:PRMO => 60,
|
58
|
+
:PRPU => 66,
|
59
|
+
:CEAN => 83,
|
60
|
+
}
|
55
61
|
|
56
|
-
def initialize(input, output)
|
62
|
+
def initialize(input, output, import=nil)
|
57
63
|
@input = input
|
58
64
|
@output = output
|
65
|
+
@import = import
|
59
66
|
end
|
60
67
|
def run
|
61
68
|
parse
|
62
69
|
output
|
70
|
+
if @import
|
71
|
+
@input = @output
|
72
|
+
import_prmo
|
73
|
+
end
|
63
74
|
end
|
64
75
|
def format_price(price_str, len=6, int_len=4, frac_len=2)
|
65
76
|
price = price_str.split('.')
|
@@ -130,6 +141,33 @@ class Oddb2tdat
|
|
130
141
|
end
|
131
142
|
end
|
132
143
|
end
|
144
|
+
attr_reader :updated_prmo
|
145
|
+
def import_prmo
|
146
|
+
import_ean = {}
|
147
|
+
import_pha = {}
|
148
|
+
File.readlines(@import).each do |line|
|
149
|
+
import_ean.store(line[POS[:CEAN], LEN[:CEAN]], line.chomp)
|
150
|
+
import_pha.store(line[POS[:PHAR], LEN[:PHAR]], line.chomp)
|
151
|
+
end
|
152
|
+
|
153
|
+
@rows = []
|
154
|
+
@updated_prmo = 0
|
155
|
+
File.readlines(@input).each do |line|
|
156
|
+
row = ''
|
157
|
+
if (ean_code = line[POS[:CEAN], LEN[:CEAN]] and line_imp = import_ean[ean_code]) \
|
158
|
+
or (pharma_code = line[POS[:PHAR], LEN[:PHAR]] and line_imp = import_pha[pharma_code])
|
159
|
+
row << line[0..(POS[:PRMO]-1)]
|
160
|
+
row << line_imp[POS[:PRMO], LEN[:PRMO]]
|
161
|
+
row << line[POS[:PRPU], 1000].chomp
|
162
|
+
@updated_prmo += 1
|
163
|
+
else
|
164
|
+
row << line.chomp
|
165
|
+
end
|
166
|
+
@rows << row
|
167
|
+
end
|
168
|
+
|
169
|
+
output
|
170
|
+
end
|
133
171
|
def output
|
134
172
|
open(@output, "w") do |out|
|
135
173
|
@rows.each do |line|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oddb2tdat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 29
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 5
|
10
|
+
version: 1.0.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Masaomi Hatakeyama, Zeno R.R. Davatz
|
@@ -15,25 +15,38 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-01-
|
19
|
-
default_executable:
|
18
|
+
date: 2012-01-20 00:00:00 Z
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
22
|
-
name:
|
21
|
+
name: rdoc
|
23
22
|
prerelease: false
|
24
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
24
|
none: false
|
26
25
|
requirements:
|
27
|
-
- -
|
26
|
+
- - ~>
|
28
27
|
- !ruby/object:Gem::Version
|
29
|
-
hash:
|
28
|
+
hash: 19
|
30
29
|
segments:
|
31
|
-
-
|
32
|
-
-
|
33
|
-
|
34
|
-
version: 2.9.1
|
30
|
+
- 3
|
31
|
+
- 10
|
32
|
+
version: "3.10"
|
35
33
|
type: :development
|
36
34
|
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: hoe
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 27
|
44
|
+
segments:
|
45
|
+
- 2
|
46
|
+
- 12
|
47
|
+
version: "2.12"
|
48
|
+
type: :development
|
49
|
+
version_requirements: *id002
|
37
50
|
description: |-
|
38
51
|
* oddb2tdat converts oddb.csv to oddb.dat
|
39
52
|
* http://dev.ywesee.com/wiki.php/ODDB/Oddb2tdat
|
@@ -54,7 +67,6 @@ files:
|
|
54
67
|
- Rakefile
|
55
68
|
- bin/oddb2tdat
|
56
69
|
- lib/oddb2tdat.rb
|
57
|
-
has_rdoc: true
|
58
70
|
homepage: http://scm.ywesee.com/?p=oddb2tdat/.git;a=summary
|
59
71
|
licenses: []
|
60
72
|
|
@@ -85,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
85
97
|
requirements: []
|
86
98
|
|
87
99
|
rubyforge_project: oddb2tdat
|
88
|
-
rubygems_version: 1.
|
100
|
+
rubygems_version: 1.8.15
|
89
101
|
signing_key:
|
90
102
|
specification_version: 3
|
91
103
|
summary: "* oddb2tdat converts oddb.csv to oddb.dat * http://dev.ywesee.com/wiki.php/ODDB/Oddb2tdat"
|