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.
Files changed (3) hide show
  1. data/bin/ptc_datamapper +3 -0
  2. data/lib/ptc_datamapper.rb +100 -0
  3. metadata +81 -0
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'ptc_datamapper'
@@ -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: []