idata 0.1.10 → 0.1.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4f5c5667e60fb0a43146b3fc6a045630d1ed69f1
4
- data.tar.gz: cb9097668d4ffc86e0bfa9218a4c419c5ce4abf8
3
+ metadata.gz: 1ab3542577ca230ddea255512ff99872d02f1eb8
4
+ data.tar.gz: f647930f643c3e214c0d4f24ed652017483e260e
5
5
  SHA512:
6
- metadata.gz: 754588b80cef006891a65a8104b349d4095022669f1bcaffdfd293c75a3a29e23855dcd59760fda28e59f12810f747a653749210ea7815e6a5082e96221ddd1e
7
- data.tar.gz: f736326c5de831e18bd76d57e32bb96069c355b9a601a8e4b9b3afa5a7d2b12016b0bd9d258a16d351e6115b826292ec10c433d319f16ea8accd285788d41e9b
6
+ metadata.gz: 5cb288fb721bf84e13d2e20a655525fb177f3f8126d473cca9bb102c0b8344a48fd6c57e72701144f7a1dc2dfdc57eafe9c7eb391c1b5b5cd9b4edddb33e0eca
7
+ data.tar.gz: ff09447fa764b4cc2d380b930402856b5194626c5c4a9a01dd00810a576caaa41eafd7ee86d4331ca03bd7f6443e0e13d51a1daeccc44fde0a1d93445cb5940d
data/bin/iexport CHANGED
@@ -22,7 +22,7 @@ CSV_DEFAULT_QUOTE_CHAR = '"'
22
22
 
23
23
  $options = {}
24
24
  parser = OptionParser.new("", 24) do |opts|
25
- opts.banner = "\nProgram: Data Exporter\nAuthor: MCKI\n\n"
25
+ opts.banner = "\nProgram: Data Exporter\nAuthor: Nghi Pham\n\n"
26
26
 
27
27
  opts.on("-f", "--format FORMAT", "Output file format") do |v|
28
28
  $options[:format] = v
@@ -43,6 +43,10 @@ parser = OptionParser.new("", 24) do |opts|
43
43
  opts.on("--quote-char CHAR", "Quote null values") do |v|
44
44
  $options[:quote_char] = v
45
45
  end
46
+
47
+ opts.on("--query QUERY", "Custom query") do |v|
48
+ $options[:query] = v
49
+ end
46
50
 
47
51
  opts.on("--delim DELIMITER", "CSV delimiter") do |v|
48
52
  $options[:delim] = v
@@ -198,7 +202,12 @@ class Product < ActiveRecord::Base
198
202
  end
199
203
 
200
204
  CSV.open($options[:output], "wb", :quote_char => $options[:quote_char], :col_sep => $options[:delim], :row_sep => $options[:linebreak], :force_quotes => $options[:quotes]) do |csv|
201
- scope = Product.select($options[:select]).where($options[:where])
205
+ if $options[:query]
206
+ scope = Product.find_by_sql($options[:query])
207
+ else
208
+ scope = Product.select($options[:select]).where($options[:where])
209
+ end
210
+
202
211
  first = scope.first
203
212
 
204
213
  if first
data/bin/report.rb ADDED
@@ -0,0 +1,89 @@
1
+ # DATA LOADER
2
+ #
3
+ # @author Nghi Pham
4
+ # @date April 2014
5
+ #
6
+ # The script loads data from a fixed-width text file or a CSV file and fills in
7
+ # a corresponding table in the specified database
8
+ # Issue ruby load.rb --help for guideline/examples
9
+ #
10
+ require 'optparse'
11
+ require 'csv'
12
+ require 'spreadsheet'
13
+ require 'fileutils'
14
+
15
+
16
+ CSV_DEFAULT_DELIMITER = ','
17
+ CSV_DEFAULT_QUOTE = '"'
18
+
19
+ $options = {input: []}
20
+ parser = OptionParser.new("", 24) do |opts|
21
+ opts.banner = "\nProgram: Data Exporter\nAuthor: Nghi Pham\n\n"
22
+
23
+ opts.on("-o", "--output OUT.xls", "") do |v|
24
+ $options[:output] = v
25
+ end
26
+
27
+ opts.on("--i", "--input NAME|PATH", "") do |v|
28
+ $options[:input] << v
29
+ end
30
+
31
+ opts.on("--delim DELIMITER", "Field DELIMITER (for CSV format only - default to COMMA ',')") do |v|
32
+ $options[:delim] = v
33
+ end
34
+
35
+ opts.on("--quote QUOTE", "Default to '\"'") do |v|
36
+ $options[:quote] = v
37
+ end
38
+
39
+ opts.on_tail('--help', 'Displays this help') do
40
+ puts opts, ""
41
+ exit
42
+ end
43
+ end
44
+
45
+ begin
46
+ parser.parse!
47
+ rescue SystemExit => ex
48
+ exit
49
+ end
50
+
51
+ if $options[:input].empty?
52
+ puts "\nPlease specify input: -i\n\n"
53
+ exit
54
+ end
55
+
56
+ if $options[:output].nil?
57
+ puts "\nPlease specify output: -o\n\n"
58
+ exit
59
+ end
60
+
61
+ $options[:input].map!{|e|
62
+ {
63
+ name: e.split(":")[0].strip,
64
+ path: e.split(":")[1].strip
65
+ }
66
+ }
67
+ $options[:delim] ||= CSV_DEFAULT_DELIMITER
68
+ $options[:quote] ||= CSV_DEFAULT_QUOTE
69
+
70
+ book = Spreadsheet::Workbook.new
71
+
72
+ $options[:input].each do |e|
73
+ puts "Loading #{e[:name]}"
74
+ sheet = book.create_worksheet :name => e[:name]
75
+ CSV.read(e[:path], :col_sep => $options[:delim], :quote_char => $options[:quote]).each_with_index do |row, i|
76
+ sheet.row(i).replace(row)
77
+ end
78
+ end
79
+
80
+ book.write $options[:output]
81
+
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
data/lib/idata/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Idata
2
- VERSION = "0.1.10"
2
+ VERSION = "0.1.11"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: idata
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nghi Pham
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-29 00:00:00.000000000 Z
11
+ date: 2014-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -90,6 +90,7 @@ files:
90
90
  - bin/ipatch
91
91
  - bin/isanitize
92
92
  - bin/ivalidate
93
+ - bin/report.rb
93
94
  - guideline/Guideline.docx
94
95
  - idata.gemspec
95
96
  - lib/idata.rb