gtin2atc 0.1.0

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.
@@ -0,0 +1,147 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+ require "rexml/document"
5
+ include REXML
6
+
7
+ module Kernel
8
+ def buildr_capture(stream)
9
+ begin
10
+ stream = stream.to_s
11
+ eval "$#{stream} = StringIO.new"
12
+ yield
13
+ result = eval("$#{stream}").string
14
+ ensure
15
+ eval "$#{stream} = #{stream.upcase}"
16
+ end
17
+ result
18
+ end
19
+ end
20
+
21
+ describe Gtin2atc::Builder do
22
+ include ServerMockHelper
23
+ CSV_NAME = 'gtin2atc.csv'
24
+ before(:each) do
25
+ @savedDir = Dir.pwd
26
+ FileUtils.makedirs Gtin2atc::WorkDir
27
+ Dir.chdir Gtin2atc::WorkDir
28
+ Gtin2atc::Util.set_archive_dir(Gtin2atc::WorkDir)
29
+ cleanup_directories_before_run
30
+ setup_server_mocks
31
+ { 'XMLPublications' => '.zip',
32
+ 'swissindex_Pharma_DE' => '.xml',
33
+ 'swissmedic_package' => '.xlsx',
34
+ }.each {
35
+ |name, extension|
36
+ use4test = File.expand_path(File.join( __FILE__, '../data/'+name + extension))
37
+ latest, dated = Gtin2atc::Util.get_latest_and_dated_name(name, extension)
38
+ FileUtils.cp(use4test, latest, :verbose => false)
39
+ }
40
+ end
41
+ after(:each) do
42
+ Dir.chdir @savedDir if @savedDir and File.directory?(@savedDir)
43
+ end
44
+ after(:all) do
45
+ Dir.chdir @savedDir if @savedDir and File.directory?(@savedDir)
46
+ end
47
+
48
+ context 'when --log is given' do
49
+ let(:cli) do
50
+ options = Gtin2atc::Options.new
51
+ options.parser.parse!('--log'.split(' '))
52
+ Gtin2atc::Builder.new(options.opts)
53
+ end
54
+
55
+ it 'should produce a correct csv' do
56
+ @res = buildr_capture(:stdout){ cli.run }
57
+ check_csv(CSV_NAME)
58
+ end
59
+
60
+ it 'should produce more log output' do
61
+ @res = buildr_capture(:stdout){ cli.run }
62
+ @res.match(/swissindex_xml_extractor/).should_not == nil
63
+ @res.match(/SwissIndex: Extracted/).should_not == nil
64
+ end
65
+ end
66
+
67
+
68
+
69
+ context 'when 20273 41803 (Pharmacodes) is given' do
70
+ let(:cli) do
71
+ options = Gtin2atc::Options.new
72
+ options.parser.parse!('20273 41803'.split(' '))
73
+ Gtin2atc::Builder.new(options.opts)
74
+ end
75
+
76
+ it 'should produce a csv with a two GTIN' do
77
+ @res = buildr_capture(:stdout){ cli.run(["20273", "41803"]) }
78
+ check_csv(CSV_NAME)
79
+ inhalt = IO.readlines(CSV_NAME)
80
+ inhalt.size.should eq 2+1 # one header lines + two items
81
+ inhalt[1].chomp.should eq '7680147690482,N07BC02,41803,KETALGIN Inj Lös 10 mg/ml'
82
+ inhalt[2].chomp.should eq '7680353660163,B03AE10,20273,KENDURAL Depottabl'
83
+ end
84
+ end
85
+
86
+ context 'when 7680147690482 7680353660163 is given' do
87
+ let(:cli) do
88
+ options = Gtin2atc::Options.new
89
+ options.parser.parse!('7680147690482 7680353660163'.split(' '))
90
+ Gtin2atc::Builder.new(options.opts)
91
+ end
92
+
93
+ it 'should produce a csv with a two GTIN' do
94
+ @res = buildr_capture(:stdout){ cli.run(["7680147690482", "7680353660163"]) }
95
+ check_csv(CSV_NAME)
96
+ inhalt = IO.readlines(CSV_NAME)
97
+ inhalt.size.should eq 2+1 # one header lines + two items
98
+ /7680147690482/.match(inhalt[1]).should_not == nil
99
+ /7680353660163/.match(inhalt[1]).should == nil
100
+ /7680147690482/.match(inhalt[2]).should == nil
101
+ /7680353660163/.match(inhalt[2]).should_not == nil
102
+ /7680353660163,B03AE10,20273,KENDURAL Depottabl/.match(inhalt[2]).should_not == nil
103
+ end
104
+ end
105
+
106
+ def check_csv(filename)
107
+ File.exists?(filename).should eq true
108
+ inhalt = IO.readlines(filename)
109
+ /^gtin,ATC/.match(inhalt.first).should_not == nil
110
+ /^\d{13},\w{4}/.match(inhalt[1]).should_not == nil
111
+ end
112
+
113
+ context 'when --compare is given' do
114
+ let(:cli) do
115
+ options = Gtin2atc::Options.new
116
+ options.parser.parse!('--compare'.split(' '))
117
+ Gtin2atc::Builder.new(options.opts)
118
+ end
119
+
120
+ it 'should produce three correct csv' do
121
+ @res = buildr_capture(:stdout){ cli.run }
122
+ check_csv('gtin2atc_bag.csv')
123
+ check_csv('gtin2atc_swissindex.csv')
124
+ check_csv('gtin2atc_swissmedic.csv')
125
+ end
126
+
127
+ it 'should produce a good logging output' do
128
+ @res = buildr_capture(:stdout){ cli.run }
129
+ [ /Found infos/,
130
+ /Fetched from/,
131
+ /Matching/,
132
+ /not in BAG/,
133
+ /not in SwissMedic/,
134
+ /not in SwissIndex/,
135
+ /ATC-Codes diff/,
136
+ ].each {
137
+ |pattern|
138
+ unless pattern.match(@res)
139
+ puts "Looking for #{pattern} in #{@res}"
140
+ end
141
+ pattern.match(@res).should_not == nil
142
+ }
143
+ end
144
+
145
+ end
146
+
147
+ end
Binary file
@@ -0,0 +1,179 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3
+ <soap:Body>
4
+ <PHARMA xmlns="http://swissindex.e-mediat.net/SwissindexPharma_out_V101" CREATION_DATETIME="2015-01-19T12:10:17.3152785+01:00">
5
+ <ITEM DT="2014-10-17T00:00:00">
6
+ <GTIN>7680202580475</GTIN>
7
+ <PHAR>20209</PHAR>
8
+ <STATUS>A</STATUS>
9
+ <STDATE>2002-05-23T00:00:00</STDATE>
10
+ <LANG>DE</LANG>
11
+ <DSCR>ERYTHROCIN i.v. Trockensub 1000 mg</DSCR>
12
+ <ADDSCR>Ampulle 1 Stk</ADDSCR>
13
+ <ATC>J01FA01</ATC>
14
+ <COMP>
15
+ <NAME>Pro Concepta Zug AG</NAME>
16
+ <GLN>7640111540007</GLN>
17
+ </COMP>
18
+ </ITEM>
19
+ <ITEM DT="2014-10-17T00:00:00">
20
+ <GTIN>7680316440115</GTIN>
21
+ <PHAR>20244</PHAR>
22
+ <STATUS>A</STATUS>
23
+ <STDATE>2002-05-23T00:00:00</STDATE>
24
+ <LANG>DE</LANG>
25
+ <DSCR>FERRO-GRADUMET Depottabl</DSCR>
26
+ <ADDSCR>30 Stk</ADDSCR>
27
+ <ATC>B03AA07</ATC>
28
+ <COMP>
29
+ <NAME>Farmaceutica Teofarma Suisse SA (c/o Bernasconi Peter Gaggin</NAME>
30
+ <GLN>7601001374539</GLN>
31
+ </COMP>
32
+ </ITEM>
33
+ <ITEM DT="2014-10-17T00:00:00">
34
+ <GTIN>7680353660163</GTIN>
35
+ <PHAR>20273</PHAR>
36
+ <STATUS>A</STATUS>
37
+ <STDATE>2002-05-23T00:00:00</STDATE>
38
+ <LANG>DE</LANG>
39
+ <DSCR>KENDURAL Depottabl</DSCR>
40
+ <ADDSCR>30 Stk</ADDSCR>
41
+ <ATC>B03AE10</ATC>
42
+ <COMP>
43
+ <NAME>Farmaceutica Teofarma Suisse SA (c/o Bernasconi Peter Gaggin</NAME>
44
+ <GLN>7601001374539</GLN>
45
+ </COMP>
46
+ </ITEM>
47
+ <ITEM DT="2014-10-17T00:00:00">
48
+ <GTIN>7680172330681</GTIN>
49
+ <PHAR>20652</PHAR>
50
+ <STATUS>A</STATUS>
51
+ <STDATE>2002-05-23T00:00:00</STDATE>
52
+ <LANG>DE</LANG>
53
+ <DSCR>SELSUN Shampoo Susp</DSCR>
54
+ <ADDSCR>120 ml</ADDSCR>
55
+ <ATC>D11AC03</ATC>
56
+ <COMP>
57
+ <NAME>Doetsch Grether AG</NAME>
58
+ <GLN>7614700999989</GLN>
59
+ </COMP>
60
+ </ITEM>
61
+ <ITEM DT="2014-10-17T00:00:00">
62
+ <GTIN>7680324750190</GTIN>
63
+ <PHAR>23722</PHAR>
64
+ <STATUS>A</STATUS>
65
+ <STDATE>2002-06-05T00:00:00</STDATE>
66
+ <LANG>DE</LANG>
67
+ <DSCR>LANSOYL Gel</DSCR>
68
+ <ADDSCR>225 g</ADDSCR>
69
+ <ATC>A06AA01</ATC>
70
+ <COMP>
71
+ <NAME>Actipharm SA</NAME>
72
+ <GLN>7601001002012</GLN>
73
+ </COMP>
74
+ </ITEM>
75
+ <ITEM DT="2014-10-17T00:00:00">
76
+ <GTIN>7680291520390</GTIN>
77
+ <PHAR>31532</PHAR>
78
+ <STATUS>A</STATUS>
79
+ <STDATE>1995-08-05T00:00:00</STDATE>
80
+ <LANG>DE</LANG>
81
+ <DSCR>BEN-U-RON Supp 250 mg Kind</DSCR>
82
+ <ADDSCR>10 Stk</ADDSCR>
83
+ <ATC>N02BE01</ATC>
84
+ <COMP>
85
+ <NAME>Nutrimedis SA</NAME>
86
+ <GLN>7640110770009</GLN>
87
+ </COMP>
88
+ </ITEM>
89
+ <ITEM DT="2014-10-17T00:00:00">
90
+ <GTIN>4009077073203</GTIN>
91
+ <PHAR>41499</PHAR>
92
+ <STATUS>A</STATUS>
93
+ <STDATE>2001-02-05T00:00:00</STDATE>
94
+ <LANG>DE</LANG>
95
+ <DSCR>SOLDAN EM EUKAL Bronchial Bonbons</DSCR>
96
+ <ADDSCR>Beutel 75 g</ADDSCR>
97
+ <ATC>R05X</ATC>
98
+ <COMP>
99
+ <NAME>Vifor SA</NAME>
100
+ <GLN>7601001001862</GLN>
101
+ </COMP>
102
+ </ITEM>
103
+ <ITEM DT="2014-10-17T00:00:00">
104
+ <GTIN>7680147690482</GTIN>
105
+ <PHAR>41803</PHAR>
106
+ <STATUS>A</STATUS>
107
+ <STDATE>1995-08-05T00:00:00</STDATE>
108
+ <LANG>DE</LANG>
109
+ <DSCR>KETALGIN Inj Lös 10 mg/ml</DSCR>
110
+ <ADDSCR>100 Ampullen 1 ml</ADDSCR>
111
+ <ATC>N07BC02</ATC>
112
+ <COMP>
113
+ <NAME>Amino AG</NAME>
114
+ <GLN>7601001392571</GLN>
115
+ </COMP>
116
+ </ITEM>
117
+ <ITEM DT="2014-10-17T00:00:00">
118
+ <GTIN>7680147700112</GTIN>
119
+ <PHAR>41826</PHAR>
120
+ <STATUS>A</STATUS>
121
+ <STDATE>1995-08-05T00:00:00</STDATE>
122
+ <LANG>DE</LANG>
123
+ <DSCR>KETALGIN Tabl 5 mg</DSCR>
124
+ <ADDSCR>20 Stk</ADDSCR>
125
+ <ATC>N07BC02</ATC>
126
+ <COMP>
127
+ <NAME>Amino AG</NAME>
128
+ <GLN>7601001392571</GLN>
129
+ </COMP>
130
+ </ITEM>
131
+ <ITEM DT="2014-10-17T00:00:00">
132
+ <GTIN>7680147700389</GTIN>
133
+ <PHAR>41832</PHAR>
134
+ <STATUS>A</STATUS>
135
+ <STDATE>1995-08-05T00:00:00</STDATE>
136
+ <LANG>DE</LANG>
137
+ <DSCR>KETALGIN Tabl 5 mg</DSCR>
138
+ <ADDSCR>200 Stk</ADDSCR>
139
+ <ATC>N07BC02</ATC>
140
+ <COMP>
141
+ <NAME>Amino AG</NAME>
142
+ <GLN>7601001392571</GLN>
143
+ </COMP>
144
+ </ITEM>
145
+ <ITEM DT="2014-10-17T00:00:00">
146
+ <GTIN>7680199320283</GTIN>
147
+ <PHAR>41855</PHAR>
148
+ <STATUS>A</STATUS>
149
+ <STDATE>1995-08-05T00:00:00</STDATE>
150
+ <LANG>DE</LANG>
151
+ <DSCR>KETALGIN Supp 10 mg</DSCR>
152
+ <ADDSCR>5 Stk</ADDSCR>
153
+ <ATC>N07BC02</ATC>
154
+ <COMP>
155
+ <NAME>Amino AG</NAME>
156
+ <GLN>7601001392571</GLN>
157
+ </COMP>
158
+ </ITEM>
159
+ <ITEM DT="2014-10-17T00:00:00">
160
+ <GTIN>7680331590215</GTIN>
161
+ <PHAR>47852</PHAR>
162
+ <STATUS>A</STATUS>
163
+ <STDATE>2013-07-04T00:00:00</STDATE>
164
+ <LANG>DE</LANG>
165
+ <DSCR>DEAFTOL Tabl m Lidocain</DSCR>
166
+ <ADDSCR>30 Stk</ADDSCR>
167
+ <ATC>A01AD11</ATC>
168
+ <COMP>
169
+ <NAME>Dr. Wild &amp; Co. AG</NAME>
170
+ <GLN>7601001002456</GLN>
171
+ </COMP>
172
+ </ITEM>
173
+ <RESULT>
174
+ <OK_ERROR>OK</OK_ERROR>
175
+ <NBR_RECORD>15775</NBR_RECORD>
176
+ </RESULT>
177
+ </PHARMA>
178
+ </soap:Body>
179
+ </soap:Envelope>
Binary file
@@ -0,0 +1,12 @@
1
+ <!DOCTYPE HTML>
2
+ <html lang="utf-8">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title></title>
6
+ </head>
7
+ <body>
8
+ <div id="sprungmarke0_7">
9
+ <a title="Excel-Version Zugelassene Verpackungen*" href="/download/swissmedic_packages.xls"></a>
10
+ </div>
11
+ </body>
12
+ </html>
@@ -0,0 +1,69 @@
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # Require this file using `require "spec_helper"` to ensure that it is only
4
+ # loaded once.
5
+ #
6
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
7
+ #
8
+ $:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
9
+ $:.unshift File.dirname(__FILE__)
10
+
11
+ require 'bundler/setup'
12
+ Bundler.require
13
+
14
+ require 'rspec'
15
+ require 'webmock/rspec'
16
+ require "gtin2atc/builder"
17
+
18
+
19
+ module Gtin2atc
20
+ # we override here a few directories to make input/output when running specs to
21
+ # be in different places compared when running
22
+ SpecData = File.join(File.dirname(__FILE__), 'data')
23
+ WorkDir = File.join(File.dirname(__FILE__), 'run')
24
+ end
25
+
26
+ require 'gtin2atc'
27
+
28
+ module ServerMockHelper
29
+ def cleanup_directories_before_run
30
+ dirs = [ Gtin2atc::WorkDir]
31
+ dirs.each{ |dir| FileUtils.rm_rf(Dir.glob(File.join(dir, '*')), :verbose => false) }
32
+ dirs.each{ |dir| FileUtils.makedirs(dir, :verbose => false) }
33
+ end
34
+
35
+ def setup_server_mocks
36
+ setup_bag_xml_server_mock
37
+ end
38
+ def setup_bag_xml_server_mock
39
+ # zip
40
+ stub_zip_url = 'http://bag.e-mediat.net/SL2007.Web.External/File.axd?file=XMLPublications.zip'
41
+ stub_response = File.read(File.join(Gtin2atc::SpecData, 'XMLPublications.zip'))
42
+ stub_request(:get, stub_zip_url).
43
+ with(:headers => {
44
+ 'Accept' => '*/*',
45
+ 'Accept-Encoding' => 'gzip,deflate,identity',
46
+ 'Host' => 'bag.e-mediat.net',
47
+ }).
48
+ to_return(
49
+ :status => 200,
50
+ :headers => {'Content-Type' => 'application/zip; charset=utf-8'},
51
+ :body => stub_response)
52
+ end
53
+ end
54
+
55
+ RSpec.configure do |config|
56
+ config.run_all_when_everything_filtered = true
57
+ config.filter_run :focus
58
+ config.filter_run_excluding :slow
59
+ #config.exclusion_filter = {:slow => true}
60
+
61
+ # Run specs in random order to surface order dependencies. If you find an
62
+ # order dependency and want to debug it, you can fix the order by providing
63
+ # the seed, which is printed after each run.
64
+ # --seed 1234
65
+ config.order = 'random'
66
+
67
+ # Helper
68
+ config.include(ServerMockHelper)
69
+ end
metadata ADDED
@@ -0,0 +1,227 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gtin2atc
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Niklaus Giger, Zeno R.R. Davatz
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-01-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rubyzip
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 1.1.3
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 1.1.3
27
+ - !ruby/object:Gem::Dependency
28
+ name: mechanize
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 2.5.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 2.5.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: nokogiri
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.5.10
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 1.5.10
55
+ - !ruby/object:Gem::Dependency
56
+ name: savon
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubyXL
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: sax-machine
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: bundler
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rake
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rspec
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: webmock
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: rdoc
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ description: gtin2atc file with gtin, atc_code, pharmanr from input file with gtin
168
+ email: ngiger@ywesee.com, zdavatz@ywesee.com
169
+ executables:
170
+ - gtin2atc
171
+ extensions: []
172
+ extra_rdoc_files: []
173
+ files:
174
+ - ".gitignore"
175
+ - ".travis.yml"
176
+ - Gemfile
177
+ - Gemfile.lock
178
+ - History.txt
179
+ - LICENSE
180
+ - Rakefile
181
+ - bin/gtin2atc
182
+ - gtin2atc.gemspec
183
+ - lib/gtin2atc.rb
184
+ - lib/gtin2atc/builder.rb
185
+ - lib/gtin2atc/downloader.rb
186
+ - lib/gtin2atc/options.rb
187
+ - lib/gtin2atc/util.rb
188
+ - lib/gtin2atc/version.rb
189
+ - lib/gtin2atc/xml_definitions.rb
190
+ - readme.textile
191
+ - spec/builder_spec.rb
192
+ - spec/data/XMLPublications.zip
193
+ - spec/data/swissindex_Pharma_DE.xml
194
+ - spec/data/swissmedic_package.xlsx
195
+ - spec/data/swissmedic_packages.html
196
+ - spec/spec_helper.rb
197
+ homepage: https://github.com/zdavatz/gtin2atc
198
+ licenses:
199
+ - GPL-v2
200
+ metadata: {}
201
+ post_install_message:
202
+ rdoc_options: []
203
+ require_paths:
204
+ - lib
205
+ required_ruby_version: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ required_rubygems_version: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ requirements: []
216
+ rubyforge_project:
217
+ rubygems_version: 2.1.11
218
+ signing_key:
219
+ specification_version: 4
220
+ summary: gtin2atc creates csv files with GTIN and ATC.
221
+ test_files:
222
+ - spec/builder_spec.rb
223
+ - spec/data/XMLPublications.zip
224
+ - spec/data/swissindex_Pharma_DE.xml
225
+ - spec/data/swissmedic_package.xlsx
226
+ - spec/data/swissmedic_packages.html
227
+ - spec/spec_helper.rb