abstract-tables 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
 
3
3
  SPEC = Gem::Specification.new do |s|
4
4
  s.name = "abstract-tables"
5
- s.version = "1.0.4"
5
+ s.version = "1.0.5"
6
6
  s.date = '2011-02-15'
7
7
  s.authors = ["Kyle Burton"]
8
8
  s.email = "kyle.burton@gmail.com"
@@ -40,10 +40,12 @@ DESC
40
40
  test/fixtures/files/file1.tab
41
41
  ]
42
42
  puts "all files: #{s.files.inspect}"
43
- s.executables = %w[atcat atview]
43
+ s.executables = %w[atcat atcut atgrep atmod atview]
44
44
  s.require_paths = %w[lib bin]
45
45
  s.extra_rdoc_files = %w[README.textile] # LICENSE]
46
46
  s.add_runtime_dependency('dbi', [">= 0.4.5"])
47
47
  s.add_runtime_dependency('spreadsheet', [">= 0.6.5.2"])
48
+ s.add_runtime_dependency('fastercsv', [">= 1.5.4"])
49
+ s.add_runtime_dependency('base_app', [">= 1.0.5"])
48
50
  s.has_rdoc = false
49
51
  end
@@ -0,0 +1,41 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'abtab'
4
+ require 'abtab/filter/cut'
5
+ require 'base_app'
6
+
7
+ class CutApp < BaseApp
8
+ def command_line_arguments
9
+ super.concat [
10
+ ['f','fields=','Fields to cut (include in the output)',true]
11
+ ]
12
+ end
13
+
14
+ def run
15
+ input_uri = nil
16
+ if File.pipe?('/dev/stdin')
17
+ input_uri = 'tab:///dev/stdin'
18
+ else
19
+ input_uri = ARGV.shift or raise "You must speicfy a URI to grep"
20
+ end
21
+
22
+ inp = Abtab.read_handle input_uri
23
+ flt = Abtab::Filter::Cut.new inp
24
+ flt.set_cut_column_spec self.fields
25
+ #flt.set_columns inp.columns
26
+
27
+ outp = nil
28
+ if ARGV.empty?
29
+ outp = Abtab.write_handle 'tab:///dev/stdout'
30
+ else
31
+ outp = Abtab.write_handle ARGV.shift
32
+ end
33
+
34
+ outp.import flt
35
+ end
36
+ end
37
+
38
+ #if $0 == __FILE__
39
+ CutApp.main
40
+ #end
41
+
data/bin/atgrep CHANGED
@@ -36,6 +36,6 @@ class GrepApp < BaseApp
36
36
  end
37
37
  end
38
38
 
39
- if $0 == __FILE__
39
+ #if $0 == __FILE__
40
40
  GrepApp.main
41
- end
41
+ #end
@@ -0,0 +1,41 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'abtab'
4
+ require 'abtab/filter/mod'
5
+ require 'base_app'
6
+
7
+ class ModApp < BaseApp
8
+ def command_line_arguments
9
+ super.concat [
10
+ ['e','expression','Mod Expression',true]
11
+ ]
12
+ end
13
+
14
+ def run
15
+ input_uri = nil
16
+ if File.pipe?('/dev/stdin')
17
+ input_uri = 'tab:///dev/stdin'
18
+ else
19
+ input_uri = ARGV.shift or raise "You must speicfy a URI to grep"
20
+ end
21
+
22
+ flt = Abtab::Filter::Mod.new input_uri
23
+ flt.open_for_reading
24
+ p = eval("Proc.new {|r| #{self.expression} }")
25
+ flt.mod_fn = p
26
+
27
+ outp = nil
28
+ if ARGV.empty?
29
+ outp = Abtab.write_handle 'tab:///dev/stdout'
30
+ else
31
+ outp = Abtab.write_handle ARGV.shift
32
+ end
33
+
34
+ outp.import flt
35
+ end
36
+ end
37
+
38
+ #if $0 == __FILE__
39
+ ModApp.main
40
+ #end
41
+
@@ -6,7 +6,7 @@ class Abtab::Driver::DbiDriver < Abtab::Driver
6
6
 
7
7
  DB_MODULES = {
8
8
  'Pg' => { :require => 'Pg', :name => 'Pg' },
9
- 'pg' => { :require => 'Pg', :name => 'Pg' },
9
+ 'pg' => { :require => 'pg', :name => 'Pg' },
10
10
  # TODO: test these
11
11
  #'mysql' => 'mysql',
12
12
  #'Mysql' => 'mysql',
@@ -30,6 +30,7 @@ class Abtab::Driver::TabDriver < Abtab::Driver
30
30
 
31
31
  def format_rec r
32
32
  r.map do |f|
33
+ f = f.to_s
33
34
  f.gsub! "\t", "\\t"
34
35
  f.gsub! "\n", "\\n"
35
36
  f.gsub! "\r", "\\r"
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: abstract-tables
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 29
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 4
10
- version: 1.0.4
9
+ - 5
10
+ version: 1.0.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Kyle Burton
@@ -51,6 +51,38 @@ dependencies:
51
51
  version: 0.6.5.2
52
52
  type: :runtime
53
53
  version_requirements: *id002
54
+ - !ruby/object:Gem::Dependency
55
+ name: fastercsv
56
+ prerelease: false
57
+ requirement: &id003 !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ hash: 11
63
+ segments:
64
+ - 1
65
+ - 5
66
+ - 4
67
+ version: 1.5.4
68
+ type: :runtime
69
+ version_requirements: *id003
70
+ - !ruby/object:Gem::Dependency
71
+ name: base_app
72
+ prerelease: false
73
+ requirement: &id004 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ hash: 29
79
+ segments:
80
+ - 1
81
+ - 0
82
+ - 5
83
+ version: 1.0.5
84
+ type: :runtime
85
+ version_requirements: *id004
54
86
  description: |+
55
87
  The best I could come up with was to just show you:
56
88
 
@@ -65,6 +97,9 @@ description: |+
65
97
  email: kyle.burton@gmail.com
66
98
  executables:
67
99
  - atcat
100
+ - atcut
101
+ - atgrep
102
+ - atmod
68
103
  - atview
69
104
  extensions: []
70
105
 
@@ -87,6 +122,8 @@ files:
87
122
  - README.textile
88
123
  - test/fixtures/files/file1.csv
89
124
  - test/fixtures/files/file1.tab
125
+ - bin/atcut
126
+ - bin/atmod
90
127
  has_rdoc: true
91
128
  homepage: http://github.com/kyleburton/abstract-tables
92
129
  licenses: []