ptc_datamapper 0.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/ptc_datamapper +3 -0
- data/lib/ptc_datamapper.rb +100 -0
- metadata +81 -0
data/bin/ptc_datamapper
ADDED
@@ -0,0 +1,100 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'csv-mapper'
|
3
|
+
require 'active_record'
|
4
|
+
require 'sqlite3'
|
5
|
+
include CsvMapper
|
6
|
+
|
7
|
+
ActiveRecord::Base.establish_connection(
|
8
|
+
:adapter => "sqlite3",
|
9
|
+
:database => "ptc_datamapper.sqlite3"
|
10
|
+
)
|
11
|
+
|
12
|
+
ActiveRecord::Schema.define do
|
13
|
+
create_table :people do |t|
|
14
|
+
t.column :input_id, :string
|
15
|
+
t.column :first_name, :string
|
16
|
+
t.column :last_name, :string
|
17
|
+
t.column :address, :string
|
18
|
+
t.column :city, :string
|
19
|
+
t.column :state, :string
|
20
|
+
t.column :zip, :string
|
21
|
+
t.column :email, :string
|
22
|
+
t.column :birth_month, :string
|
23
|
+
t.column :birth_day, :string
|
24
|
+
t.column :birth_year, :string
|
25
|
+
t.column :ptc, :string
|
26
|
+
t.column :date_created, :string
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
class Mapper
|
31
|
+
def import_data(importfile)
|
32
|
+
@importfile = importfile
|
33
|
+
@persons = import_from_file
|
34
|
+
end
|
35
|
+
|
36
|
+
def export_data(exportfile)
|
37
|
+
@exportfile = exportfile
|
38
|
+
export_to_file
|
39
|
+
end
|
40
|
+
|
41
|
+
def import_from_file
|
42
|
+
results = import(@importfile) do
|
43
|
+
map_to Person
|
44
|
+
# after_row lambda{|row, person| person.save}
|
45
|
+
|
46
|
+
start_at_row 1
|
47
|
+
[input_id, first_name, last_name, address, city, state, zip, email, birth_month, birth_day, birth_year, ptc, date_created]
|
48
|
+
end
|
49
|
+
results
|
50
|
+
end
|
51
|
+
|
52
|
+
def get_cr_row
|
53
|
+
'CR|6|9999000024542||9289560|CLEARBNS|||7020||||||||1325|||||||||'
|
54
|
+
end
|
55
|
+
|
56
|
+
def format_row(data)
|
57
|
+
row = ''
|
58
|
+
data.each {|r| row = row.to_s + "#{r}|"}
|
59
|
+
row
|
60
|
+
end
|
61
|
+
|
62
|
+
def print_result
|
63
|
+
@persons.each do |p|
|
64
|
+
puts format_row(p.ptc_data)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
def export_to_file
|
71
|
+
File.open(@exportfile,'w') do |export|
|
72
|
+
export.puts get_cr_row
|
73
|
+
@persons.each do |p|
|
74
|
+
export.puts format_row(p.na_data)
|
75
|
+
export.puts format_row(p.ptc_data) if p.ptc
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
|
82
|
+
class Person < ActiveRecord::Base
|
83
|
+
def ptc_data
|
84
|
+
value_array = ['PTC', 6, self.input_id, '', '', '', 'Y','', '', self.date_created]
|
85
|
+
end
|
86
|
+
|
87
|
+
def na_data
|
88
|
+
value_array = ['NA', 6, self.input_id, '', '', '', '', '', self.first_name, '', self.last_name, '', self.address, '', '', self.city, self.state, self.zip, '', '', '', '', '', '', '', '', self.email, '', "#{self.birth_month} #{self.birth_day} #{self.birth_year}", '', '', self.date_created.gsub!(' ','|') ]
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
importfile = ARGV[0]
|
93
|
+
exportfile = ARGV[1]
|
94
|
+
start_time = Time.now.to_f * 1000
|
95
|
+
mapper = Mapper.new
|
96
|
+
mapper.import_data(importfile)
|
97
|
+
mapper.export_data(exportfile)
|
98
|
+
end_time = Time.now.to_f * 1000
|
99
|
+
puts 'File save successfully!'
|
100
|
+
puts 'Time used:' << (end_time - start_time).to_s << 'ms'
|
metadata
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ptc_datamapper
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Bryant
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-07-20 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: sqlite3
|
16
|
+
requirement: &70255834964120 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70255834964120
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: activerecord
|
27
|
+
requirement: &70255834963220 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70255834963220
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: csv-mapper
|
38
|
+
requirement: &70255834962440 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70255834962440
|
47
|
+
description: This gem is to help you to map your csv file to a .txt file with specific
|
48
|
+
format
|
49
|
+
email: bryant@promojam.com
|
50
|
+
executables:
|
51
|
+
- ptc_datamapper
|
52
|
+
extensions: []
|
53
|
+
extra_rdoc_files: []
|
54
|
+
files:
|
55
|
+
- lib/ptc_datamapper.rb
|
56
|
+
- bin/ptc_datamapper
|
57
|
+
homepage: http://rubygems.org/gems/ptc_datamapper
|
58
|
+
licenses: []
|
59
|
+
post_install_message:
|
60
|
+
rdoc_options: []
|
61
|
+
require_paths:
|
62
|
+
- lib
|
63
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
64
|
+
none: false
|
65
|
+
requirements:
|
66
|
+
- - ! '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
|
+
none: false
|
71
|
+
requirements:
|
72
|
+
- - ! '>='
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
75
|
+
requirements: []
|
76
|
+
rubyforge_project:
|
77
|
+
rubygems_version: 1.8.10
|
78
|
+
signing_key:
|
79
|
+
specification_version: 3
|
80
|
+
summary: a simple gem
|
81
|
+
test_files: []
|