oddb2xml 1.2.2 → 1.2.3
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 +9 -0
- data/README.md +82 -26
- data/lib/oddb2xml/builder.rb +33 -9
- data/lib/oddb2xml/cli.rb +28 -22
- data/lib/oddb2xml/extractor.rb +5 -1
- data/lib/oddb2xml/version.rb +1 -1
- metadata +123 -182
data/History.txt
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
=== 1.2.3 / 25.01.2013
|
2
|
+
|
3
|
+
* Change CBGG value as 3
|
4
|
+
* Add CLAG value from @fridges
|
5
|
+
* Change dat as only a file with `-a nonpharma`
|
6
|
+
* Update CKZL value with sl_entry or not
|
7
|
+
* Update to use also BM_update from ywesee
|
8
|
+
* Update to use also category from Packungen.xls
|
9
|
+
|
1
10
|
=== 1.2.2 / 24.01.2013
|
2
11
|
|
3
12
|
* Improve compressor for dat
|
data/README.md
CHANGED
@@ -1,17 +1,40 @@
|
|
1
1
|
# oddb2xml
|
2
2
|
|
3
|
-
oddb2xml
|
3
|
+
* oddb2xml -a nonpharma -o fi
|
4
|
+
|
5
|
+
creates the following xml files:
|
6
|
+
|
7
|
+
* oddb_substance.xml
|
8
|
+
* oddb_limitation.xml
|
9
|
+
* oddb_interaction.xml
|
10
|
+
* oddb_code.xml
|
11
|
+
* oddb_product.xml
|
12
|
+
* oddb_article.xml
|
13
|
+
* oddb_fi.xml
|
14
|
+
* oddb_fi_product.xml
|
15
|
+
|
16
|
+
and
|
17
|
+
|
18
|
+
* oddb2xml -f dat
|
19
|
+
* oddb2xml -f dat -a nonpharma
|
20
|
+
|
21
|
+
creates .dat files according to ([IGM-11](http://dev.ywesee.com/uploads/att/IGM.pdf))
|
22
|
+
|
23
|
+
* oddb.dat
|
24
|
+
* oddb_with_migel.dat
|
25
|
+
|
26
|
+
the files are using [swissINDEX](http://www.refdata.ch/downloads/company/download/swissindex_TechnischeBeschreibung.pdf), [BAG-XML](http://bag.e-mediat.net/SL2007.Web.External/Default.aspx?webgrab=ignore) and [Swissmedic](http://www.swissmedic.ch/daten/00080/00251/index.html?lang=de) as sources.
|
4
27
|
|
5
28
|
The following additional data is in the files:
|
6
29
|
|
7
|
-
* Wirkstoffe
|
8
|
-
* Kühlkette (
|
9
|
-
* Orphan Drugs (
|
10
|
-
* FI
|
11
|
-
* Limitation-Texte (
|
12
|
-
* Interaktionen
|
13
|
-
* Betäubungsmittel und psychotrope Stoffe (
|
14
|
-
* Non-Pharma from Refdata and Suppliers
|
30
|
+
* [Wirkstoffe](http://bag.e-mediat.net/SL2007.Web.External/File.axd?file=XMLPublications.zip) (BAG XML)
|
31
|
+
* [Kühlkette](http://www.swissmedic.ch/daten/00080/00254/index.html?lang=de&download=NHzLpZeg7t,lnp6I0NTU042l2Z6ln1acy4Zn4Z2qZpnO2Yuq2Z6gpJCDdH57e2ym162epYbg2c_JjKbNoKOn6A--) (Swissmedic)
|
32
|
+
* [Orphan Drugs](http://www.swissmedic.ch/daten/00081/index.html?lang=de&download=NHzLpZeg7t,lnp6I0NTU042l2Z6ln1acy4Zn4Z2qZpnO2Yuq2Z6gpJCDdH55f2ym162epYbg2c_JjKbNoKSn6A--&.xls) (Swissmedic)
|
33
|
+
* [FI: de, fr](http://download.swissmedicinfo.ch) (Swissmedic)
|
34
|
+
* Limitation-Texte (BAG XML)
|
35
|
+
* Interaktionen [EPha.ch](http://epha.ch)
|
36
|
+
* [Betäubungsmittel](http://www.swissmedic.ch/produktbereiche/00447/00536/index.html?lang=de&download=NHzLpZeg7t,lnp6I0NTU042l2Z6ln1acy4Zn4Z2qZpnO2Yuq2Z6gpJCDdH1,fWym162epYbg2c_JjKbNoKSn6A--&.pdf) und psychotrope Stoffe (Swissmedic)
|
37
|
+
* Non-Pharma from Refdata and Suppliers (swissINDEX)
|
15
38
|
|
16
39
|
## usage
|
17
40
|
|
@@ -19,25 +42,26 @@ see `--help`.
|
|
19
42
|
|
20
43
|
```
|
21
44
|
$ oddb2xml --help
|
22
|
-
oddb2xml ver.1.
|
45
|
+
oddb2xml ver.1.2.2
|
23
46
|
Usage:
|
24
47
|
oddb2xml [option]
|
25
|
-
-c F, --compress=F Compress format F. {tar.gz|zip}
|
26
48
|
-a T, --append=T Additional target. T, only 'nonpharma' is available.
|
49
|
+
-c F, --compress=F Compress format F. {tar.gz|zip}
|
50
|
+
-f dat, create dat files according to IGM-11 standard.
|
51
|
+
-h, --help Show this help message.
|
52
|
+
-o fi, create fi xml files.
|
27
53
|
-t S, --tag-suffix=S XML tag suffix S. Default is none. [A-z0-9_]
|
28
54
|
If S is given, it is also used as prefix of filename.
|
29
|
-
-h, --help Show this help message.
|
30
55
|
```
|
31
56
|
|
32
57
|
|
33
|
-
##
|
34
|
-
|
35
|
-
option examples.
|
58
|
+
## Option examples
|
36
59
|
|
37
60
|
```
|
38
|
-
$ oddb2xml # => oddb_article.xml, oddb_product.xml, oddb_substance.xml
|
39
61
|
$ oddb2xml -t md # => md_article.xml, md_product.xml, md_substance.xml
|
40
62
|
$ oddb2xml -a nonpharma -t md -c tar.gz # => md_xml_dd.mm.yyyy_hh.mm.tar.gz
|
63
|
+
$ oddb2xml -f dat # => oddb.dat
|
64
|
+
$ oddb2xml -f dat -a nonpharma # => oddb_with_migel.dat
|
41
65
|
```
|
42
66
|
|
43
67
|
output.
|
@@ -50,6 +74,26 @@ FR
|
|
50
74
|
Pharma products: 14801
|
51
75
|
```
|
52
76
|
|
77
|
+
## XSD files
|
78
|
+
If you need the XSD files, generate them yourself using the javabeans tool:
|
79
|
+
|
80
|
+
* http://xmlbeans.apache.org/docs/2.0.0/guide/tools.html#inst2xsd
|
81
|
+
|
82
|
+
this will generate you a valid XSD file that can be used to validate against the XML file.
|
83
|
+
|
84
|
+
## XML files
|
85
|
+
|
86
|
+
xml files generated are:
|
87
|
+
|
88
|
+
* oddb_substance.xml
|
89
|
+
* oddb_limitation.xml
|
90
|
+
* oddb_interaction.xml
|
91
|
+
* oddb_code.xml
|
92
|
+
* oddb_product.xml
|
93
|
+
* oddb_article.xml
|
94
|
+
* oddb_fi.xml
|
95
|
+
* oddb_fi_product.xml
|
96
|
+
|
53
97
|
### article.xml
|
54
98
|
|
55
99
|
oddb2xml creates article.xml as oddb_article.xml by default.
|
@@ -161,20 +205,32 @@ product.xml has relation to substance as `<SUBNO>`.
|
|
161
205
|
</SUBSTANCE>
|
162
206
|
```
|
163
207
|
|
164
|
-
##
|
208
|
+
## SSLv3 cert for Windows Users
|
165
209
|
|
166
|
-
Some websites need SSLv3 connection.
|
210
|
+
Some websites need SSLv3 connection.
|
167
211
|
If you don't have these root CA files (x509), Please install these Certificates before running.
|
168
|
-
Please confirm wit `ruby -ropenssl -e 'p OpenSSL::X509::DEFAULT_CERT_FILE'`.
|
169
|
-
|
170
212
|
see [cURL Website](http://curl.haxx.se/ca/)
|
171
213
|
|
214
|
+
You can confirm wit `ruby -ropenssl -e 'p OpenSSL::X509::DEFAULT_CERT_FILE'`.
|
172
215
|
|
173
|
-
### Windows User
|
216
|
+
### Windows User: Making your SSL Certificate permanent via your PATH
|
174
217
|
|
175
218
|
1. Download this [cacert.pem](http://curl.haxx.se/ca/cacert.pem) (cURL) into your HOME directory.
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
219
|
+
* or directly select cacert.pem from your oddb2xml-x.x.x gems directory.
|
220
|
+
* tools/cacert.pem is bundled with the oddb2xml gem.
|
221
|
+
2. Then Choose Menu "Control Panel" > "System" > "Advanced system settings"
|
222
|
+
* This opens the "System Properties" Window.
|
223
|
+
3. Click "Advanced" Tab.
|
224
|
+
4. Click "Environment Variables" button.
|
225
|
+
5. Add set variable entry "SSL\_CERT\_FILE=%HOMEPATH%\cacert.pem"
|
226
|
+
* Variable name: SSL\_CCERT\_FILE
|
227
|
+
* Variable value: %HOMEPATH%\cacert.pem
|
228
|
+
* with "New..." button into upper are "User variables for xxx"
|
229
|
+
6. Do not remove this cacert.pem. All SSLv3 connections use this file.
|
230
|
+
|
231
|
+
### win_fetch_cacerts.rb
|
232
|
+
You can also run
|
233
|
+
|
234
|
+
* tools/win_fetch_cacerts.rb
|
235
|
+
|
236
|
+
for your currently open Terminal to download and set the Certificate.
|
data/lib/oddb2xml/builder.rb
CHANGED
@@ -52,7 +52,8 @@ module Oddb2xml
|
|
52
52
|
end
|
53
53
|
end
|
54
54
|
private
|
55
|
-
def prepare_articles
|
55
|
+
def prepare_articles(reset=false)
|
56
|
+
@articles = nil if reset
|
56
57
|
unless @articles
|
57
58
|
@articles = [] # base is 'DE'
|
58
59
|
@index['DE'].each_pair do |pharmacode, index|
|
@@ -735,10 +736,16 @@ module Oddb2xml
|
|
735
736
|
de_pac = obj[:de]
|
736
737
|
# Oddb2tdat.parse
|
737
738
|
if obj[:de][:status] =~ /A|I/
|
738
|
-
pac = nil
|
739
|
+
pac,num = nil, nil
|
739
740
|
if obj[:seq]
|
740
741
|
pac = obj[:seq][:packages][de_pac[:pharmacode]]
|
741
742
|
end
|
743
|
+
# :swissmedic_number
|
744
|
+
if de_pac[:ean].length == 13
|
745
|
+
num = de_pac[:ean][4,8].intern
|
746
|
+
elsif pac
|
747
|
+
num = pac[:swissmedic_number].intern
|
748
|
+
end
|
742
749
|
row << "%#{DAT_LEN[:RECA]}s" % '11'
|
743
750
|
row << "%#{DAT_LEN[:CMUT]}s" % if (phar = de_pac[:pharmacode] and phar.size > 3) # does not check expiration_date
|
744
751
|
obj[:de][:status] == "I" ? '3' : '1'
|
@@ -753,15 +760,31 @@ module Oddb2xml
|
|
753
760
|
).to_s[0, DAT_LEN[:ABEZ]].gsub(/"/, '')
|
754
761
|
row << "%#{DAT_LEN[:PRMO]}s" % (pac ? format_price(pac[:prices][:exf_price][:price].to_s) : ('0' * DAT_LEN[:PRMO]))
|
755
762
|
row << "%#{DAT_LEN[:PRPU]}s" % (pac ? format_price(pac[:prices][:pub_price][:price].to_s) : ('0' * DAT_LEN[:PRPU]))
|
756
|
-
row << "%#{DAT_LEN[:CKZL]}s" % '3' # sl_entry
|
757
|
-
row << "%#{DAT_LEN[:CLAG]}s" %
|
758
|
-
|
759
|
-
|
760
|
-
|
763
|
+
row << "%#{DAT_LEN[:CKZL]}s" % (pac ? '1' : '3') # sl_entry or not
|
764
|
+
row << "%#{DAT_LEN[:CLAG]}s" % if ((num && num.to_s =~ /(\d{5})(\d{3})/) and
|
765
|
+
@fridges.include?($1.to_s))
|
766
|
+
'1'
|
767
|
+
else
|
768
|
+
'0'
|
769
|
+
end
|
770
|
+
row << "%#{DAT_LEN[:CBGG]}s" % if ((pac && pac[:narcosis_flag] == 'Y') or # BAGXml
|
771
|
+
(@flags[de_pac[:ean]])) # ywesee BM_update
|
772
|
+
'3'
|
761
773
|
else
|
762
774
|
'0'
|
763
775
|
end
|
764
|
-
row << "
|
776
|
+
row << "%#{DAT_LEN[:CIKS]}s" % if (pac && pac[:swissmedic_category] =~ /^[ABCDE]$/) # BAGXml
|
777
|
+
pac[:swissmedic_category]
|
778
|
+
elsif (@packs[num]) # Packungen.xls
|
779
|
+
@packs[num][:swissmedic_category]
|
780
|
+
else
|
781
|
+
'0'
|
782
|
+
end.gsub(/(\+|\s)/, '')
|
783
|
+
row << "%0#{DAT_LEN[:ITHE]}d" % if (pac && @packs[num])
|
784
|
+
format_date(@packs[num][:ith_swissmedic])
|
785
|
+
else
|
786
|
+
('0' * DAT_LEN[:ITHE])
|
787
|
+
end.to_i
|
765
788
|
row << "%0#{DAT_LEN[:CEAN]}d" % de_pac[:ean].to_i
|
766
789
|
row << "%#{DAT_LEN[:CMWS]}s" % '2' # pharma
|
767
790
|
rows << row
|
@@ -770,7 +793,8 @@ module Oddb2xml
|
|
770
793
|
rows.join("\n")
|
771
794
|
end
|
772
795
|
def build_with_migel_dat
|
773
|
-
|
796
|
+
reset = true
|
797
|
+
prepare_articles(reset)
|
774
798
|
rows = []
|
775
799
|
@articles.each do |obj|
|
776
800
|
row = ''
|
data/lib/oddb2xml/cli.rb
CHANGED
@@ -57,14 +57,6 @@ module Oddb2xml
|
|
57
57
|
@actions = EphaExtractor.new(str).to_arry
|
58
58
|
end
|
59
59
|
end
|
60
|
-
# ywesee
|
61
|
-
threads << Thread.new do
|
62
|
-
downloader = YweseeBMDownloader.new
|
63
|
-
str = downloader.download
|
64
|
-
@mutex.synchronize do
|
65
|
-
@flags = YweseeBMExtractor.new(str).to_hash
|
66
|
-
end
|
67
|
-
end
|
68
60
|
else # dat
|
69
61
|
# swissmedic - package
|
70
62
|
threads << Thread.new do
|
@@ -75,6 +67,14 @@ module Oddb2xml
|
|
75
67
|
end
|
76
68
|
end
|
77
69
|
end
|
70
|
+
# ywesee
|
71
|
+
threads << Thread.new do
|
72
|
+
downloader = YweseeBMDownloader.new
|
73
|
+
str = downloader.download
|
74
|
+
@mutex.synchronize do
|
75
|
+
@flags = YweseeBMExtractor.new(str).to_hash
|
76
|
+
end
|
77
|
+
end
|
78
78
|
# bag
|
79
79
|
threads << Thread.new do
|
80
80
|
downloader = BagXmlDownloader.new(@options)
|
@@ -129,22 +129,18 @@ module Oddb2xml
|
|
129
129
|
begin
|
130
130
|
files.each_pair do |sbj, file|
|
131
131
|
builder = Builder.new do |builder|
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
# to fix @index structure
|
137
|
-
if @options[:format] == :dat
|
138
|
-
type = (sbj == :dat ? :pharma : :nonpharma)
|
139
|
-
index[lang] = @index[lang][type]
|
140
|
-
else
|
132
|
+
if @options[:format] != :dat
|
133
|
+
index = {}
|
134
|
+
LANGUAGES.each do |lang|
|
135
|
+
index[lang] = {} unless index[lang]
|
141
136
|
types.each do |type|
|
142
137
|
index[lang].merge!(@index[lang][type]) if @index[lang][type]
|
143
138
|
end
|
144
139
|
end
|
140
|
+
builder.index = index
|
141
|
+
builder.subject = sbj
|
145
142
|
end
|
146
|
-
|
147
|
-
builder.index = index
|
143
|
+
# common sources
|
148
144
|
builder.items = @items
|
149
145
|
builder.flags = @flags
|
150
146
|
# additions
|
@@ -158,7 +154,17 @@ module Oddb2xml
|
|
158
154
|
end
|
159
155
|
output = ''
|
160
156
|
if @options[:format] == :dat
|
161
|
-
|
157
|
+
types.each do |type|
|
158
|
+
index = {}
|
159
|
+
LANGUAGES.each do |lang|
|
160
|
+
index[lang] = @index[lang][type]
|
161
|
+
end
|
162
|
+
builder.index = index
|
163
|
+
_sbj = (type == :pharma ? :dat : :with_migel_dat)
|
164
|
+
builder.subject = _sbj
|
165
|
+
output << "\n" if _sbj == :nonpharma
|
166
|
+
output << builder.to_dat
|
167
|
+
end
|
162
168
|
else
|
163
169
|
output = builder.to_xml
|
164
170
|
end
|
@@ -187,8 +193,8 @@ module Oddb2xml
|
|
187
193
|
@_files = {}
|
188
194
|
if @options[:format] == :dat
|
189
195
|
@_files[:dat] = "#{prefix}.dat"
|
190
|
-
if @options[:nonpharma]
|
191
|
-
@_files[:
|
196
|
+
if @options[:nonpharma] # into one file
|
197
|
+
@_files[:dat] = "#{prefix}_with_migel.dat"
|
192
198
|
end
|
193
199
|
else # xml
|
194
200
|
##
|
data/lib/oddb2xml/extractor.rb
CHANGED
@@ -166,11 +166,15 @@ module Oddb2xml
|
|
166
166
|
case @type
|
167
167
|
when :packages
|
168
168
|
i_5,i_3 = 0,10 # :swissmedic_number
|
169
|
+
cat = 13 # :swissmedic_category
|
169
170
|
ith = 4 # :ith_swissmedic (swissmedic-diff)
|
170
171
|
@sheet.each do |row|
|
171
172
|
no8 = extract_number(row, i_5).to_s + extract_number(row, i_3, /^\d{3}$/).to_s
|
172
173
|
unless no8.empty?
|
173
|
-
data[no8.intern] =
|
174
|
+
data[no8.intern] = {
|
175
|
+
:ith_swissmedic => row[ith].to_s,
|
176
|
+
:swissmedic_category => row[cat].to_s,
|
177
|
+
}
|
174
178
|
end
|
175
179
|
end
|
176
180
|
end
|
data/lib/oddb2xml/version.rb
CHANGED
metadata
CHANGED
@@ -1,218 +1,168 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: oddb2xml
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.2.3
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 2
|
9
|
-
- 2
|
10
|
-
version: 1.2.2
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Yasuhiro Asaka, Zeno R.R. Davatz
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2013-01-25 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: rubyzip
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &12392380 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
version: "0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
32
22
|
type: :runtime
|
33
|
-
version_requirements: *id001
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: archive-tar-minitar
|
36
23
|
prerelease: false
|
37
|
-
|
24
|
+
version_requirements: *12392380
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: archive-tar-minitar
|
27
|
+
requirement: &12391500 !ruby/object:Gem::Requirement
|
38
28
|
none: false
|
39
|
-
requirements:
|
40
|
-
- -
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
segments:
|
44
|
-
- 0
|
45
|
-
version: "0"
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
46
33
|
type: :runtime
|
47
|
-
version_requirements: *id002
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: mechanize
|
50
34
|
prerelease: false
|
51
|
-
|
35
|
+
version_requirements: *12391500
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: mechanize
|
38
|
+
requirement: &12390520 !ruby/object:Gem::Requirement
|
52
39
|
none: false
|
53
|
-
requirements:
|
54
|
-
- -
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
|
57
|
-
segments:
|
58
|
-
- 0
|
59
|
-
version: "0"
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
60
44
|
type: :runtime
|
61
|
-
version_requirements: *id003
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: nokogiri
|
64
45
|
prerelease: false
|
65
|
-
|
46
|
+
version_requirements: *12390520
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: nokogiri
|
49
|
+
requirement: &12389260 !ruby/object:Gem::Requirement
|
66
50
|
none: false
|
67
|
-
requirements:
|
68
|
-
- -
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
|
71
|
-
segments:
|
72
|
-
- 0
|
73
|
-
version: "0"
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
74
55
|
type: :runtime
|
75
|
-
version_requirements: *id004
|
76
|
-
- !ruby/object:Gem::Dependency
|
77
|
-
name: savon
|
78
56
|
prerelease: false
|
79
|
-
|
57
|
+
version_requirements: *12389260
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: savon
|
60
|
+
requirement: &12387620 !ruby/object:Gem::Requirement
|
80
61
|
none: false
|
81
|
-
requirements:
|
82
|
-
- -
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
|
85
|
-
segments:
|
86
|
-
- 2
|
87
|
-
- 0
|
88
|
-
version: "2.0"
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '2.0'
|
89
66
|
type: :runtime
|
90
|
-
version_requirements: *id005
|
91
|
-
- !ruby/object:Gem::Dependency
|
92
|
-
name: spreadsheet
|
93
67
|
prerelease: false
|
94
|
-
|
68
|
+
version_requirements: *12387620
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: spreadsheet
|
71
|
+
requirement: &12386440 !ruby/object:Gem::Requirement
|
95
72
|
none: false
|
96
|
-
requirements:
|
97
|
-
- -
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
|
100
|
-
segments:
|
101
|
-
- 0
|
102
|
-
version: "0"
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
103
77
|
type: :runtime
|
104
|
-
version_requirements: *id006
|
105
|
-
- !ruby/object:Gem::Dependency
|
106
|
-
name: rspec
|
107
78
|
prerelease: false
|
108
|
-
|
79
|
+
version_requirements: *12386440
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: rspec
|
82
|
+
requirement: &12385520 !ruby/object:Gem::Requirement
|
109
83
|
none: false
|
110
|
-
requirements:
|
111
|
-
- -
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
|
114
|
-
segments:
|
115
|
-
- 0
|
116
|
-
version: "0"
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
117
88
|
type: :development
|
118
|
-
version_requirements: *id007
|
119
|
-
- !ruby/object:Gem::Dependency
|
120
|
-
name: webmock
|
121
89
|
prerelease: false
|
122
|
-
|
90
|
+
version_requirements: *12385520
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: webmock
|
93
|
+
requirement: &12384700 !ruby/object:Gem::Requirement
|
123
94
|
none: false
|
124
|
-
requirements:
|
125
|
-
- -
|
126
|
-
- !ruby/object:Gem::Version
|
127
|
-
|
128
|
-
segments:
|
129
|
-
- 0
|
130
|
-
version: "0"
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
131
99
|
type: :development
|
132
|
-
version_requirements: *id008
|
133
|
-
- !ruby/object:Gem::Dependency
|
134
|
-
name: ZenTest
|
135
100
|
prerelease: false
|
136
|
-
|
101
|
+
version_requirements: *12384700
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: ZenTest
|
104
|
+
requirement: &12383480 !ruby/object:Gem::Requirement
|
137
105
|
none: false
|
138
|
-
requirements:
|
139
|
-
- -
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
|
142
|
-
segments:
|
143
|
-
- 0
|
144
|
-
version: "0"
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
145
110
|
type: :development
|
146
|
-
version_requirements: *id009
|
147
|
-
- !ruby/object:Gem::Dependency
|
148
|
-
name: hoe
|
149
111
|
prerelease: false
|
150
|
-
|
112
|
+
version_requirements: *12383480
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: hoe
|
115
|
+
requirement: &12382600 !ruby/object:Gem::Requirement
|
151
116
|
none: false
|
152
|
-
requirements:
|
153
|
-
- -
|
154
|
-
- !ruby/object:Gem::Version
|
155
|
-
|
156
|
-
segments:
|
157
|
-
- 3
|
158
|
-
- 4
|
159
|
-
version: "3.4"
|
117
|
+
requirements:
|
118
|
+
- - ! '>='
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '3.4'
|
160
121
|
type: :development
|
161
|
-
version_requirements: *id010
|
162
|
-
- !ruby/object:Gem::Dependency
|
163
|
-
name: rdoc
|
164
122
|
prerelease: false
|
165
|
-
|
123
|
+
version_requirements: *12382600
|
124
|
+
- !ruby/object:Gem::Dependency
|
125
|
+
name: rdoc
|
126
|
+
requirement: &12381680 !ruby/object:Gem::Requirement
|
166
127
|
none: false
|
167
|
-
requirements:
|
168
|
-
- -
|
169
|
-
- !ruby/object:Gem::Version
|
170
|
-
|
171
|
-
segments:
|
172
|
-
- 0
|
173
|
-
version: "0"
|
128
|
+
requirements:
|
129
|
+
- - ! '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
174
132
|
type: :development
|
175
|
-
version_requirements: *id011
|
176
|
-
- !ruby/object:Gem::Dependency
|
177
|
-
name: rdoc
|
178
133
|
prerelease: false
|
179
|
-
|
134
|
+
version_requirements: *12381680
|
135
|
+
- !ruby/object:Gem::Dependency
|
136
|
+
name: rdoc
|
137
|
+
requirement: &12380280 !ruby/object:Gem::Requirement
|
180
138
|
none: false
|
181
|
-
requirements:
|
139
|
+
requirements:
|
182
140
|
- - ~>
|
183
|
-
- !ruby/object:Gem::Version
|
184
|
-
|
185
|
-
segments:
|
186
|
-
- 3
|
187
|
-
- 10
|
188
|
-
version: "3.10"
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '3.10'
|
189
143
|
type: :development
|
190
|
-
version_requirements: *id012
|
191
|
-
- !ruby/object:Gem::Dependency
|
192
|
-
name: hoe
|
193
144
|
prerelease: false
|
194
|
-
|
145
|
+
version_requirements: *12380280
|
146
|
+
- !ruby/object:Gem::Dependency
|
147
|
+
name: hoe
|
148
|
+
requirement: &12379200 !ruby/object:Gem::Requirement
|
195
149
|
none: false
|
196
|
-
requirements:
|
150
|
+
requirements:
|
197
151
|
- - ~>
|
198
|
-
- !ruby/object:Gem::Version
|
199
|
-
|
200
|
-
segments:
|
201
|
-
- 2
|
202
|
-
- 13
|
203
|
-
version: "2.13"
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '2.13'
|
204
154
|
type: :development
|
205
|
-
|
155
|
+
prerelease: false
|
156
|
+
version_requirements: *12379200
|
206
157
|
description: oddb2xml creates xml files using swissINDEX, BAG-XML and Swissmedic.
|
207
158
|
email: yasaka@ywesee.com, zdavatz@ywesee.com
|
208
|
-
executables:
|
159
|
+
executables:
|
209
160
|
- oddb2xml
|
210
161
|
extensions: []
|
211
|
-
|
212
|
-
extra_rdoc_files:
|
162
|
+
extra_rdoc_files:
|
213
163
|
- History.txt
|
214
164
|
- Manifest.txt
|
215
|
-
files:
|
165
|
+
files:
|
216
166
|
- .gitignore
|
217
167
|
- .rspec
|
218
168
|
- Gemfile
|
@@ -263,37 +213,28 @@ files:
|
|
263
213
|
- .gemtest
|
264
214
|
homepage:
|
265
215
|
licenses: []
|
266
|
-
|
267
216
|
post_install_message:
|
268
|
-
rdoc_options:
|
217
|
+
rdoc_options:
|
269
218
|
- --main
|
270
219
|
- README.txt
|
271
|
-
require_paths:
|
220
|
+
require_paths:
|
272
221
|
- lib
|
273
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
222
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
274
223
|
none: false
|
275
|
-
requirements:
|
276
|
-
- -
|
277
|
-
- !ruby/object:Gem::Version
|
278
|
-
|
279
|
-
|
280
|
-
- 0
|
281
|
-
version: "0"
|
282
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
224
|
+
requirements:
|
225
|
+
- - ! '>='
|
226
|
+
- !ruby/object:Gem::Version
|
227
|
+
version: '0'
|
228
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
283
229
|
none: false
|
284
|
-
requirements:
|
285
|
-
- -
|
286
|
-
- !ruby/object:Gem::Version
|
287
|
-
|
288
|
-
segments:
|
289
|
-
- 0
|
290
|
-
version: "0"
|
230
|
+
requirements:
|
231
|
+
- - ! '>='
|
232
|
+
- !ruby/object:Gem::Version
|
233
|
+
version: '0'
|
291
234
|
requirements: []
|
292
|
-
|
293
235
|
rubyforge_project: oddb2xml
|
294
236
|
rubygems_version: 1.8.15
|
295
237
|
signing_key:
|
296
238
|
specification_version: 3
|
297
239
|
summary: oddb2xml creates xml files.
|
298
240
|
test_files: []
|
299
|
-
|