fizx-csvget 0.2.1 → 0.3.0

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 (7) hide show
  1. data/CHANGELOG +4 -0
  2. data/VERSION +1 -1
  3. data/bin/csvget +6 -0
  4. data/csvget.gemspec +4 -2
  5. data/hn.let +10 -0
  6. data/lib/csvget.rb +7 -3
  7. metadata +5 -4
data/CHANGELOG ADDED
@@ -0,0 +1,4 @@
1
+ 0.3.0 - Sept 2, 2009
2
+ -- Added command-line option:
3
+ --filter=RUBY_CODE RUBY_CODE will be eval'd in context of @row.is_a?(FasterCSV::Row)
4
+ -- Added Changelog
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.1
1
+ 0.3.0
data/bin/csvget CHANGED
@@ -8,6 +8,12 @@ parser = RWGetOptionParser.new do |opts|
8
8
  parser.options[:parselets] ||= []
9
9
  parser.options[:parselets] << path
10
10
  end
11
+
12
+ opts.on("--filter=RUBY_CODE", "RUBY_CODE will be eval'd in context of @row.is_a?(FasterCSV::Row)") do |filter|
13
+ parser.options[:filter] ||= []
14
+ parser.options[:filter] << filter
15
+ end
16
+
11
17
  end
12
18
  parser.parse!
13
19
 
data/csvget.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{csvget}
8
- s.version = "0.2.1"
8
+ s.version = "0.3.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kyle Maxwell"]
12
- s.date = %q{2009-08-28}
12
+ s.date = %q{2009-09-02}
13
13
  s.description = %q{Super easy to use (but lots of dependencies :/) parser}
14
14
  s.email = %q{kyle@kylemaxwell.com}
15
15
  s.executables = ["csvget", "jsonget"]
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  ]
20
20
  s.files = [
21
21
  ".gitignore",
22
+ "CHANGELOG",
22
23
  "LICENSE",
23
24
  "README.rdoc",
24
25
  "Rakefile",
@@ -26,6 +27,7 @@ Gem::Specification.new do |s|
26
27
  "bin/csvget",
27
28
  "bin/jsonget",
28
29
  "csvget.gemspec",
30
+ "hn.let",
29
31
  "lib/csvget.rb",
30
32
  "lib/jsonget.rb",
31
33
  "test/csvget_test.rb"
data/hn.let ADDED
@@ -0,0 +1,10 @@
1
+ {
2
+ "headlines":[{
3
+ "title": ".title a",
4
+ "link": ".title a @href",
5
+ "comments": "match(.subtext a:nth-child(3), '\\d+')",
6
+ "user": ".subtext a:nth-child(2)",
7
+ "score": "match(.subtext span, '\\d+')",
8
+ "time": "match(.subtext, '\\d+\\s+\\w+\\s+ago')"
9
+ }]
10
+ }
data/lib/csvget.rb CHANGED
@@ -8,6 +8,7 @@ require "fileutils"
8
8
  class CSVStore
9
9
  def initialize(options = {})
10
10
  @output_folder = options[:prefix] || "."
11
+ @filters = options[:filter] || []
11
12
  FileUtils.mkdir_p(@output_folder)
12
13
  @parselets = (options[:parselets] || []).map{|path| Parsley.new(File.read(path)) }
13
14
  @files = {}
@@ -32,10 +33,13 @@ class CSVStore
32
33
  h = @headers[prefix] ||= values.first.keys
33
34
  f = @files[prefix] ||= FasterCSV.open(file_name, "a", :headers => h, :write_headers => true)
34
35
 
35
- values.each do |v|
36
- f << h.inject([]) do |memo, key|
37
- memo << v[key]
36
+ values.each do |hash|
37
+ arr = h.inject([]) do |memo, key|
38
+ memo << hash[key]
38
39
  end
40
+ @row = FasterCSV::Row.new(h, arr)
41
+ @filters.each {|filter| eval(filter) }
42
+ f << @row
39
43
  end
40
44
  end
41
45
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fizx-csvget
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyle Maxwell
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-28 00:00:00 -07:00
12
+ date: 2009-09-02 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -74,6 +74,7 @@ extra_rdoc_files:
74
74
  - README.rdoc
75
75
  files:
76
76
  - .gitignore
77
+ - CHANGELOG
77
78
  - LICENSE
78
79
  - README.rdoc
79
80
  - Rakefile
@@ -81,12 +82,12 @@ files:
81
82
  - bin/csvget
82
83
  - bin/jsonget
83
84
  - csvget.gemspec
85
+ - hn.let
84
86
  - lib/csvget.rb
85
87
  - lib/jsonget.rb
86
88
  - test/csvget_test.rb
87
89
  has_rdoc: false
88
90
  homepage: http://github.com/fizx/csvget
89
- licenses:
90
91
  post_install_message:
91
92
  rdoc_options:
92
93
  - --charset=UTF-8
@@ -107,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
108
  requirements: []
108
109
 
109
110
  rubyforge_project:
110
- rubygems_version: 1.3.5
111
+ rubygems_version: 1.2.0
111
112
  signing_key:
112
113
  specification_version: 3
113
114
  summary: Uses parselets and rwget to generate csv files from websites