masticate 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
data/bin/masticate CHANGED
@@ -9,52 +9,56 @@ options = {}
9
9
  OptionParser.new do |opts|
10
10
  opts.banner = "Usage: example.rb [options]"
11
11
 
12
- opts.on("--format FORMAT", "Specify format") do |v|
12
+ opts.on("--format FORMAT", String, "Specify format") do |v|
13
13
  options[:format] = v
14
14
  end
15
15
 
16
- opts.on("--delim DELIMITER", "Specify field delimiter (character or TAB; default is ',')") do |v|
16
+ opts.on("--delim DELIMITER", String, "Specify field delimiter (character or TAB; default is ',')") do |v|
17
17
  options[:col_sep] = v
18
18
  options[:col_sep] = "\t" if options[:col_sep] == "TAB"
19
19
  end
20
20
 
21
- opts.on("--quote QUOTE-CHAR", "Specify character used for quoting fields (optional; default is no quoting)") do |char|
21
+ opts.on("--quote QUOTE-CHAR", String, "Specify character used for quoting fields (optional; default is no quoting)") do |char|
22
22
  options[:quote_char] = char
23
23
  end
24
24
 
25
+ opts.on("--stats", "(for *sniff*) collect & display input stats") do
26
+ options[:stats] = true
27
+ end
28
+
25
29
  opts.on("--fields LIST", Array, "Specify fields to select") do |list|
26
30
  options[:fields] = list
27
31
  end
28
32
 
29
- opts.on("--field FIELD", "Specify field to convert") do |f|
33
+ opts.on("--field FIELD", String, "Specify field to convert") do |f|
30
34
  options[:field] = f
31
35
  end
32
36
 
33
- opts.on("--snip DIRECTIVE", "Specify header fields to snip: first N, or by name") do |f|
37
+ opts.on("--snip DIRECTIVE", String, "Specify header fields to snip: first N, or by name") do |f|
34
38
  options[:snip] = f.to_i
35
39
  end
36
40
 
37
- opts.on("--from REGEXP", "Regular expression for gsub conversion") do |s|
41
+ opts.on("--from REGEXP", String, "Regular expression for gsub conversion") do |s|
38
42
  options[:from] = s
39
43
  end
40
44
 
41
- opts.on("--to STRING", "Result string for gsub conversion") do |s|
45
+ opts.on("--to STRING", String, "Result string for gsub conversion") do |s|
42
46
  options[:to] = s
43
47
  end
44
48
 
45
- opts.on("--inlined", "(for *mend* only) Source file has headers inlined on each line") do |v|
46
- options[:inlined] = v
49
+ opts.on("--inlined", "(for *mend* only) Source file has headers inlined on each line") do |b|
50
+ options[:inlined] = true
47
51
  end
48
52
 
49
- opts.on("--dejunk", "(for *mend* only) Expunge junk lines from source") do |v|
50
- options[:dejunk] = v
53
+ opts.on("--dejunk", "(for *mend* only) Expunge junk lines from source") do |b|
54
+ options[:dejunk] = true
51
55
  end
52
56
 
53
- opts.on("--by FIELD", "(for *maxrows* only) Field to group by") do |f|
57
+ opts.on("--by FIELD", String, "(for *maxrows* only) Field to group by") do |f|
54
58
  options[:by] = f
55
59
  end
56
60
 
57
- opts.on("--max FIELD", "(for *maxrows* only) Field to find max value for") do |f|
61
+ opts.on("--max FIELD", String, "(for *maxrows* only) Field to find max value for") do |f|
58
62
  options[:max] = f
59
63
  end
60
64
  end.parse!
@@ -74,7 +78,7 @@ end
74
78
 
75
79
  case command
76
80
  when 'sniff'
77
- results = Masticate.sniff(filename)
81
+ results = Masticate.sniff(filename, options)
78
82
  col_sep = results[:col_sep]
79
83
  col_sep = "TAB" if col_sep == "\t"
80
84
  quote_char = results[:quote_char] || "NONE"
@@ -3,10 +3,7 @@ require "csv"
3
3
 
4
4
  class Masticate::MaxRows < Masticate::Base
5
5
  def maxrows(opts)
6
- @output = opts[:output] ? File.open(opts[:output], "w") : $stdout
7
- csv_options = {}
8
- csv_options[:col_sep] = opts[:col_sep] if opts[:col_sep]
9
- csv_options[:quote_char] = opts[:quote_char] || "\0"
6
+ standard_options(opts)
10
7
 
11
8
  groupby = opts[:by] or raise "missing field to group by"
12
9
  maxon = opts[:max] or raise "missing field to max on"
@@ -44,7 +41,7 @@ class Masticate::MaxRows < Masticate::Base
44
41
  @output.close if opts[:output]
45
42
 
46
43
  {
47
- :input_count => input_count,
44
+ :input_count => @input_count,
48
45
  :output_count => @output_count
49
46
  }
50
47
  end
@@ -1,3 +1,3 @@
1
1
  module Masticate
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: masticate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-04-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &2152726520 !ruby/object:Gem::Requirement
16
+ requirement: &2156618420 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 2.9.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *2152726520
24
+ version_requirements: *2156618420
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: guard-rspec
27
- requirement: &2152749240 !ruby/object:Gem::Requirement
27
+ requirement: &2156617660 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.7.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2152749240
35
+ version_requirements: *2156617660
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: ruby_gntp
38
- requirement: &2152748720 !ruby/object:Gem::Requirement
38
+ requirement: &2156616980 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: 0.3.4
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2152748720
46
+ version_requirements: *2156616980
47
47
  description: Data file crunching
48
48
  email:
49
49
  - jmay@pobox.com