abstract-tables 1.0.4 → 1.0.5

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.
@@ -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: []