go_import 3.0.0 → 3.0.1
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/bin/go-import +6 -2
- data/lib/go_import/model/deal_class_settings.rb +2 -0
- data/lib/go_import/model/rootmodel.rb +1 -1
- data/lib/go_import.rb +0 -1
- data/sources/VISMA/.gitignore +14 -0
- data/sources/VISMA/.go_import/runner.rb +77 -0
- data/sources/VISMA/Database/KONTAKT.DBF +0 -0
- data/sources/VISMA/Database/KUND.DBF +0 -0
- data/sources/VISMA/Gemfile +5 -0
- data/sources/VISMA/converter.rb +104 -0
- data/sources/VISMA/tomodel.rb +202 -0
- data/sources/csv/Gemfile +1 -1
- data/sources/custom/.gitignore +14 -0
- data/sources/custom/.go_import/runner.rb +30 -0
- data/sources/custom/Gemfile +4 -0
- data/sources/custom/converter.rb +29 -0
- data/sources/easy/.go_import/runner.rb +74 -86
- data/sources/easy/Gemfile +1 -1
- data/sources/easy/converter.rb +21 -147
- data/sources/excel/Gemfile +1 -1
- data/sources/excel/converter.rb +1 -1
- metadata +14 -18
- data/sources/csv/Rakefile.rb +0 -7
- data/sources/csv/spec/exporter_spec.rb +0 -17
- data/sources/csv/spec/sample_data/coworkers.csv +0 -2
- data/sources/csv/spec/sample_data/deals.csv +0 -2
- data/sources/csv/spec/sample_data/organizations.csv +0 -2
- data/sources/csv/spec/sample_data/persons.csv +0 -2
- data/sources/csv/spec/spec_helper.rb +0 -30
- data/sources/easy/Rakefile.rb +0 -7
- data/sources/easy/spec/exporter_spec.rb +0 -10
- data/sources/easy/spec/sample_data/Company.txt +0 -649
- data/sources/easy/spec/spec_helper.rb +0 -30
- data/sources/excel/Rakefile.rb +0 -7
- data/sources/excel/spec/sample_data/sample.xlsx +0 -0
- data/sources/excel/spec/spec_helper.rb +0 -26
- data/sources/excel/spec/tomodel_spec.rb +0 -18
- /data/sources/excel/{template.xlsx → sample-data.xlsx} +0 -0
data/bin/go-import
CHANGED
@@ -43,7 +43,11 @@ class GoImportCommandLine < Thor
|
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
|
-
desc "run", "Executes the current project and create a go
|
46
|
+
desc "run", "Executes the current project and create a go.xml file. Existing go.xml will be overwritten, use --output to specify a different filename"
|
47
|
+
option(:output,
|
48
|
+
:desc => "Name of the file where the converted source will be saved. This file should be sent to LIME Go. If the file already exist it will be replaced.",
|
49
|
+
:type => :string,
|
50
|
+
:required => false)
|
47
51
|
def run_import()
|
48
52
|
# run is a Thor reserved word and cant be used as a method name
|
49
53
|
|
@@ -66,7 +70,7 @@ class GoImportCommandLine < Thor
|
|
66
70
|
# returns an instance of GoImport::RootModel
|
67
71
|
model = convert_source()
|
68
72
|
|
69
|
-
go_data_filename = "go.xml"
|
73
|
+
go_data_filename = options.output.nil? == true ? "go.xml" : options.output
|
70
74
|
|
71
75
|
error = model.sanity_check
|
72
76
|
if error.empty?
|
@@ -114,7 +114,7 @@ module GoImport
|
|
114
114
|
organization = Organization.new(organization) if !organization.is_a?(Organization)
|
115
115
|
|
116
116
|
if find_organization_by_integration_id(organization.integration_id) != nil
|
117
|
-
raise AlreadyAddedError, "Already added an organization with integration_id #
|
117
|
+
raise AlreadyAddedError, "Already added an organization with integration_id #{organization.integration_id}"
|
118
118
|
end
|
119
119
|
|
120
120
|
@organizations.push(organization)
|
data/lib/go_import.rb
CHANGED
@@ -7,7 +7,6 @@ module GoImport
|
|
7
7
|
require 'go_import/errors'
|
8
8
|
require 'go_import/serialize_helper'
|
9
9
|
require 'go_import/model_helpers'
|
10
|
-
#FruitToLime::require_all_in 'go_import/model/*.rb'
|
11
10
|
GoImport::require_all_in 'go_import/model/*.rb'
|
12
11
|
require 'go_import/csv_helper'
|
13
12
|
require 'go_import/roo_helper'
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# See http://help.github.com/ignore-files/ for more about ignoring files.
|
2
|
+
#
|
3
|
+
# If you find yourself ignoring temporary files generated by your text editor
|
4
|
+
# or operating system, you probably want to add a global ignore instead:
|
5
|
+
# git config --global core.excludesfile ~/.gitignore_global
|
6
|
+
|
7
|
+
# Ignore bundler config
|
8
|
+
/.bundle
|
9
|
+
# Ignore built gems
|
10
|
+
/*.gem
|
11
|
+
# Ignore all logfiles and tempfiles.
|
12
|
+
/tmp
|
13
|
+
/spec/tmp
|
14
|
+
pkg
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'go_import'
|
4
|
+
#require 'roo'
|
5
|
+
require 'dbf'
|
6
|
+
require_relative("../converter")
|
7
|
+
|
8
|
+
KUND_FILE = './database/KUND.DBF'
|
9
|
+
KONTAKT_FILE = './database/KONTAKT.DBF'
|
10
|
+
|
11
|
+
def convert_source
|
12
|
+
puts "Trying to convert VISMA source to LIME Go..."
|
13
|
+
|
14
|
+
# Verify that required files exists.
|
15
|
+
if !File.exists?(KUND_FILE)
|
16
|
+
puts "You MUST put KUND.DBF in the database folder."
|
17
|
+
raise
|
18
|
+
end
|
19
|
+
|
20
|
+
if !File.exists?(KONTAKT_FILE)
|
21
|
+
puts "You MUST put KONTAKT.DBF in the database folder."
|
22
|
+
raise
|
23
|
+
end
|
24
|
+
|
25
|
+
puts "Trying to read data from VISMA files..."
|
26
|
+
organization_rows = DBF::Table.new(KUND_FILE)
|
27
|
+
person_rows = DBF::Table.new(KONTAKT_FILE)
|
28
|
+
|
29
|
+
rootmodel = GoImport::RootModel.new
|
30
|
+
converter = Converter.new
|
31
|
+
|
32
|
+
converter.configure rootmodel
|
33
|
+
|
34
|
+
# Then create organizations, they are only referenced by
|
35
|
+
# coworkers.
|
36
|
+
puts "Trying to process Organization..."
|
37
|
+
organization_rows.each do |row|
|
38
|
+
if not row.nil?
|
39
|
+
if not row["NAMN"] == ""
|
40
|
+
rootmodel.add_organization(converter.to_organization(row, rootmodel))
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
puts "Processed #{rootmodel.organizations.length} Organizations."
|
45
|
+
|
46
|
+
# Add people and link them to their organizations
|
47
|
+
puts "Trying to process Persons..."
|
48
|
+
imported_person_count = 0
|
49
|
+
person_rows.each do |row|
|
50
|
+
# People are special since they are not added directly to
|
51
|
+
# the root model
|
52
|
+
if not row.nil?
|
53
|
+
if not row["KUNDNR"] == "" and not row["NAMN"] == ""
|
54
|
+
converter.import_person_to_organization(row, rootmodel)
|
55
|
+
imported_person_count = imported_person_count + 1
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
puts "Processed #{imported_person_count} Persons."
|
60
|
+
|
61
|
+
# Notes must be owned by a coworker and the be added to
|
62
|
+
# organizations and notes and might refernce a person
|
63
|
+
puts "Trying to process Notes..."
|
64
|
+
imported_note_count = 0
|
65
|
+
organization_rows.each do |row|
|
66
|
+
if not row.nil?
|
67
|
+
if row['ANTECK_1'].length > 0
|
68
|
+
rootmodel.add_note(converter.to_note(row))
|
69
|
+
imported_note_count = imported_note_count + 1
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
puts "Processed #{imported_note_count} Notes."
|
74
|
+
|
75
|
+
return rootmodel
|
76
|
+
end
|
77
|
+
|
Binary file
|
Binary file
|
@@ -0,0 +1,104 @@
|
|
1
|
+
require 'go_import'
|
2
|
+
require 'dbf'
|
3
|
+
|
4
|
+
# Customize this file to suit your input for a VISMA database.
|
5
|
+
#
|
6
|
+
# You must put KUND.DBS and KONTAKTER.DBS in the database folder.
|
7
|
+
#
|
8
|
+
# Documentation go_import can be found at
|
9
|
+
# http://rubygems.org/gems/go_import
|
10
|
+
#
|
11
|
+
# go_import contains all objects in LIME Go such as organizations,
|
12
|
+
# people, deals, etc. What properties each object has is described in
|
13
|
+
# the documentation.
|
14
|
+
#
|
15
|
+
# Generate the xml-file that should be sent to LIME Go with the command:
|
16
|
+
# go-import run
|
17
|
+
|
18
|
+
class Converter
|
19
|
+
def configure(rootmodel)
|
20
|
+
# Add custom field to your model here. Custom fields can be
|
21
|
+
# added to organization, deal and person. Valid types are
|
22
|
+
# :String and :Link. If no type is specified :String is used
|
23
|
+
# as default.
|
24
|
+
|
25
|
+
#Creates a custom field to add invoicing data
|
26
|
+
rootmodel.settings.with_organization do |org|
|
27
|
+
org.set_custom_field( { :integrationid => 'ackoms', :title => 'Fakturerat', :type => :String } )
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def import_person_to_organization(row, rootmodel)
|
32
|
+
organization = rootmodel.find_organization_by_integration_id(row['KUNDNR'])
|
33
|
+
|
34
|
+
if !organization.nil?
|
35
|
+
organization.add_employee(to_person(row, rootmodel))
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def to_organization(row, rootmodel)
|
40
|
+
organization = GoImport::Organization.new()
|
41
|
+
|
42
|
+
#Add tags:
|
43
|
+
organization.set_tag "Importerad"
|
44
|
+
organization.set_tag "Kund"
|
45
|
+
|
46
|
+
organization.name = row['NAMN']
|
47
|
+
# Integrationid must be set to be able to import the same file
|
48
|
+
# more than once without creating duplicates
|
49
|
+
organization.integration_id = row['KUNDNR']
|
50
|
+
|
51
|
+
#address
|
52
|
+
organization.with_postal_address do |address|
|
53
|
+
address.street = row['POSTADR']
|
54
|
+
address.zip_code = row['POSTNR']
|
55
|
+
address.city = row['ORT']
|
56
|
+
end
|
57
|
+
|
58
|
+
organization.email = row['EPOST']
|
59
|
+
organization.organization_number = row['ORGNR']
|
60
|
+
organization.central_phone_number = row['TEL']
|
61
|
+
|
62
|
+
# Sets the organization's relation. Relation must be a value
|
63
|
+
# from GoImport::Relation.
|
64
|
+
organization.relation = GoImport::Relation::IsACustomer
|
65
|
+
|
66
|
+
#Fill data to custom fields
|
67
|
+
organization.set_custom_field({:integration_id => "ackoms", :value => row["ACKOMS"]})
|
68
|
+
|
69
|
+
return organization
|
70
|
+
end
|
71
|
+
|
72
|
+
def to_note(row, rootmodel)
|
73
|
+
note = GoImport::Note.new()
|
74
|
+
|
75
|
+
# *** TODO:
|
76
|
+
#
|
77
|
+
# Set note properties from the row.
|
78
|
+
organization = rootmodel.find_organization_by_integration_id(row['KUNDNR'])
|
79
|
+
unless organization.nil?
|
80
|
+
note.organization = organization
|
81
|
+
end
|
82
|
+
note.created_by = rootmodel.import_coworker
|
83
|
+
note.text = row['ANTECK_1']
|
84
|
+
|
85
|
+
return note
|
86
|
+
end
|
87
|
+
|
88
|
+
def to_person(row, rootmodel)
|
89
|
+
person = GoImport::Person.new()
|
90
|
+
|
91
|
+
# *** TODO:
|
92
|
+
#
|
93
|
+
# Set person properties from the row.
|
94
|
+
|
95
|
+
person.parse_name_to_firstname_lastname_se(row['NAMN'])
|
96
|
+
if GoImport::EmailHelper.is_valid?(row['EPOST'])
|
97
|
+
person.email = row['EPOST']
|
98
|
+
end
|
99
|
+
person.mobile_phone_number = GoImport::PhoneHelper.parse_numbers(row['MBTEL'], [",", "/", "\\"])
|
100
|
+
person.direct_phone_number = GoImport::PhoneHelper.parse_numbers(row['TEL'], [",", "/", "\\"])
|
101
|
+
|
102
|
+
return person
|
103
|
+
end
|
104
|
+
end
|
@@ -0,0 +1,202 @@
|
|
1
|
+
require 'go_import'
|
2
|
+
require 'roo'
|
3
|
+
require 'dbf'
|
4
|
+
|
5
|
+
# Customize this file to suit your input for a VISMA database.
|
6
|
+
# You'll need KUND.DBS and KONTAKTER.DBS
|
7
|
+
#
|
8
|
+
# Documentation go_import can be found at
|
9
|
+
# http://rubygems.org/gems/go_import
|
10
|
+
#
|
11
|
+
# go_import contains all objects in LIME Go such as organization,
|
12
|
+
# people, deals, etc. What properties each object has is described in
|
13
|
+
# the documentation.
|
14
|
+
|
15
|
+
# *** TODO:
|
16
|
+
#
|
17
|
+
# This template will convert the files KUNDER.dbs and KONTAKTER.DBS to LIME Go. You
|
18
|
+
# should modify the Converted class suit your input file.
|
19
|
+
#
|
20
|
+
# Try this template with the template.xlsx file to generate a go.xml
|
21
|
+
#file:
|
22
|
+
# ruby convert.rb to_go lime-go.xml
|
23
|
+
|
24
|
+
class Converter
|
25
|
+
def configure(model)
|
26
|
+
# Add custom field to your model here. Custom fields can be
|
27
|
+
# added to organization, deal and person. Valid types are
|
28
|
+
# :String and :Link. If no type is specified :String is used
|
29
|
+
# as default.
|
30
|
+
|
31
|
+
#Creates a custom field to add invoicing data
|
32
|
+
model.settings.with_organization do |org|
|
33
|
+
org.set_custom_field( { :integrationid => 'ackoms', :title => 'Fakturerat', :type => :String } )
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def import_person_to_organization(row)
|
38
|
+
person = to_person(row)
|
39
|
+
organization = @rootmodel.find_organization_by_integration_id(row['KUNDNR'])
|
40
|
+
|
41
|
+
if !organization.nil?
|
42
|
+
organization.add_employee(person)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def to_organization(row)
|
47
|
+
organization = GoImport::Organization.new()
|
48
|
+
|
49
|
+
#Add tags:
|
50
|
+
organization.set_tag "Importerad"
|
51
|
+
organization.set_tag "Kund"
|
52
|
+
|
53
|
+
organization.name = row['NAMN']
|
54
|
+
# Integrationid is typically the id in the system that we are
|
55
|
+
# getting the csv from. Must be set to be able to import the
|
56
|
+
# same file more than once without creating duplicates
|
57
|
+
organization.integration_id = row['KUNDNR']
|
58
|
+
|
59
|
+
#address
|
60
|
+
organization.with_postal_address do |address|
|
61
|
+
address.street = row['POSTADR']
|
62
|
+
address.zip_code = row['POSTNR']
|
63
|
+
address.city = row['ORT']
|
64
|
+
end
|
65
|
+
|
66
|
+
organization.email = row['EPOST']
|
67
|
+
organization.organization_number = row['ORGNR']
|
68
|
+
organization.central_phone_number = row['TEL']
|
69
|
+
|
70
|
+
# Sets the organization's relation. Relation must be a value
|
71
|
+
# from GoImport::Relation.
|
72
|
+
organization.relation = GoImport::Relation::IsACustomer
|
73
|
+
|
74
|
+
#Fill data to custom fields
|
75
|
+
organization.set_custom_field({:integration_id=>"ackoms", :value=>row["ACKOMS"]})
|
76
|
+
|
77
|
+
return organization
|
78
|
+
end
|
79
|
+
|
80
|
+
def to_note(row)
|
81
|
+
note = GoImport::Note.new()
|
82
|
+
|
83
|
+
# *** TODO:
|
84
|
+
#
|
85
|
+
# Set note properties from the row.
|
86
|
+
organization = @rootmodel.find_organization_by_integration_id(row['KUNDNR'])
|
87
|
+
unless organization.nil?
|
88
|
+
note.organization = organization
|
89
|
+
end
|
90
|
+
note.created_by = @rootmodel.import_coworker
|
91
|
+
note.text = row['ANTECK_1']
|
92
|
+
|
93
|
+
return note
|
94
|
+
end
|
95
|
+
|
96
|
+
def to_person(row)
|
97
|
+
person = GoImport::Person.new()
|
98
|
+
|
99
|
+
# *** TODO:
|
100
|
+
#
|
101
|
+
# Set person properties from the row.
|
102
|
+
|
103
|
+
person.parse_name_to_firstname_lastname_se(row['NAMN'])
|
104
|
+
if GoImport::EmailHelper.is_valid?(row['EPOST'])
|
105
|
+
person.email = row['EPOST']
|
106
|
+
end
|
107
|
+
person.mobile_phone_number = GoImport::PhoneHelper.parse_numbers(row['MBTEL'], [",", "/", "\\"])
|
108
|
+
person.direct_phone_number = GoImport::PhoneHelper.parse_numbers(row['TEL'], [",", "/", "\\"])
|
109
|
+
|
110
|
+
return person
|
111
|
+
end
|
112
|
+
|
113
|
+
def to_model()
|
114
|
+
# First we read each database into separate variables
|
115
|
+
puts "Reading data from './Databas/'"
|
116
|
+
organization_rows = DBF::Table.new("./Databas/KUND.DBF")
|
117
|
+
person_rows = DBF::Table.new("./Databas/KONTAKT.DBF")
|
118
|
+
|
119
|
+
# Then we create a rootmodel that should contain all data that
|
120
|
+
# should be exported to LIME Go.
|
121
|
+
@rootmodel = GoImport::RootModel.new
|
122
|
+
|
123
|
+
# And configure the model if we have any custom fields
|
124
|
+
puts "Adding custom fields to model"
|
125
|
+
configure @rootmodel
|
126
|
+
|
127
|
+
# Then create organizations, they are only referenced by
|
128
|
+
# coworkers.
|
129
|
+
puts "Importing Organization..."
|
130
|
+
organization_rows.each do |row|
|
131
|
+
if not row.nil?
|
132
|
+
if not row["NAMN"] == ""
|
133
|
+
@rootmodel.add_organization(to_organization(row))
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
137
|
+
puts "Imported #{@rootmodel.organizations.length} Organization"
|
138
|
+
|
139
|
+
# Add people and link them to their organizations
|
140
|
+
puts "Importing Persons..."
|
141
|
+
imported_person_count = 0
|
142
|
+
person_rows.each do |row|
|
143
|
+
# People are special since they are not added directly to
|
144
|
+
# the root model
|
145
|
+
if not row.nil?
|
146
|
+
if not row["KUNDNR"] == "" and not row["NAMN"] == ""
|
147
|
+
import_person_to_organization(row)
|
148
|
+
imported_person_count = nbrPersons + 1
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
152
|
+
puts "Imported #{imported_person_count} Persons"
|
153
|
+
|
154
|
+
# Deals can connected to coworkers, organizations and people.
|
155
|
+
# deal_rows.each do |row|
|
156
|
+
# @rootmodel.add_deal(to_deal(row))
|
157
|
+
# end
|
158
|
+
|
159
|
+
# Notes must be owned by a coworker and the be added to
|
160
|
+
# organizations and notes and might refernce a person
|
161
|
+
puts "Importing Notes..."
|
162
|
+
organization_rows.each do |row|
|
163
|
+
if not row.nil?
|
164
|
+
if row['ANTECK_1'].length > 0
|
165
|
+
@rootmodel.add_note(to_note(row))
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
return @rootmodel
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
174
|
+
# You don't need to change anything below this line.
|
175
|
+
|
176
|
+
require "thor"
|
177
|
+
require "fileutils"
|
178
|
+
require 'pathname'
|
179
|
+
|
180
|
+
class Cli < Thor
|
181
|
+
desc "to_go GO_DATA_FILENAME", "Converts VISMA 'KUND.DBS' and 'KONTAKTER.DBS' to Go xml format. Place the DBS-files in the folder 'Databas'. GO_DATA_FILENAME is output file where Go xml will go."
|
182
|
+
def to_go(go_data_filename = nil)
|
183
|
+
go_data_filename = 'go-data.xml' if go_data_filename == nil
|
184
|
+
converter = Converter.new()
|
185
|
+
model = converter.to_model()
|
186
|
+
error = model.sanity_check
|
187
|
+
if error.empty?
|
188
|
+
validation_errors = model.validate
|
189
|
+
|
190
|
+
if validation_errors.empty?
|
191
|
+
model.serialize_to_file(go_data_filename)
|
192
|
+
puts "VISMA data has been converted into '#{go_data_filename}'."
|
193
|
+
else
|
194
|
+
puts "VISMA database could not be converted due to"
|
195
|
+
puts validation_errors
|
196
|
+
end
|
197
|
+
else
|
198
|
+
puts "VISMA database could not be converted due to"
|
199
|
+
puts error
|
200
|
+
end
|
201
|
+
end
|
202
|
+
end
|
data/sources/csv/Gemfile
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
# See http://help.github.com/ignore-files/ for more about ignoring files.
|
2
|
+
#
|
3
|
+
# If you find yourself ignoring temporary files generated by your text editor
|
4
|
+
# or operating system, you probably want to add a global ignore instead:
|
5
|
+
# git config --global core.excludesfile ~/.gitignore_global
|
6
|
+
|
7
|
+
# Ignore bundler config
|
8
|
+
/.bundle
|
9
|
+
# Ignore built gems
|
10
|
+
/*.gem
|
11
|
+
# Ignore all logfiles and tempfiles.
|
12
|
+
/tmp
|
13
|
+
/spec/tmp
|
14
|
+
pkg
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'go_import'
|
4
|
+
require_relative("../converter")
|
5
|
+
|
6
|
+
def convert_source
|
7
|
+
puts "Trying to convert a custom source to LIME Go..."
|
8
|
+
|
9
|
+
converter = Converter.new
|
10
|
+
|
11
|
+
if !converter.respond_to?(:to_go)
|
12
|
+
puts "The converter must have a method called to_go that returns an instance of GoImport::RootModel."
|
13
|
+
raise "The converter must have a method called to_go that returns an instance of GoImport::RootModel."
|
14
|
+
end
|
15
|
+
|
16
|
+
rootmodel = converter.to_go
|
17
|
+
|
18
|
+
if rootmodel.nil?
|
19
|
+
puts "The returned rootmodel is nil. You must return a GoImport::RootModel."
|
20
|
+
raise "The returned rootmodel is nil. You must return a GoImport::RootModel."
|
21
|
+
end
|
22
|
+
|
23
|
+
if !rootmodel.is_a?(GoImport::RootModel)
|
24
|
+
puts "The returned object is not an instance of GoImport::RootModel."
|
25
|
+
raise "The returned object is not an instance of GoImport::RootModel."
|
26
|
+
end
|
27
|
+
|
28
|
+
return rootmodel
|
29
|
+
end
|
30
|
+
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'go_import'
|
3
|
+
|
4
|
+
# This Converter will convert a generic source to a XML file that can
|
5
|
+
# be imported into LIME Go.
|
6
|
+
#
|
7
|
+
# You MUST customzie this script to read a source and return a
|
8
|
+
# RootModel.
|
9
|
+
#
|
10
|
+
# Reference documentation for go_import can be found at
|
11
|
+
# https://rubygems.org/gems/go_import (click Documentation)
|
12
|
+
#
|
13
|
+
# Generate the xml-file that should be sent to LIME Go with the
|
14
|
+
# command:
|
15
|
+
# go-import run
|
16
|
+
#
|
17
|
+
# Good luck.
|
18
|
+
|
19
|
+
class Converter
|
20
|
+
def to_go()
|
21
|
+
rootmodel = GoImport::RootModel.new
|
22
|
+
|
23
|
+
# *** TODO:
|
24
|
+
#
|
25
|
+
# Configure the model and then add coworkers, organizations, etc
|
26
|
+
|
27
|
+
return rootmodel
|
28
|
+
end
|
29
|
+
end
|