remote_table 0.2.30 → 0.2.31
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.
- data/Rakefile +6 -3
- data/VERSION +1 -1
- data/lib/remote_table.rb +24 -2
- data/lib/remote_table/file.rb +1 -1
- data/lib/remote_table/transform.rb +13 -2
- data/remote_table.gemspec +2 -8
- data/test/remote_table_test.rb +2 -2
- data/test/test_helper.rb +2 -2
- metadata +12 -44
data/Rakefile
CHANGED
@@ -10,10 +10,13 @@ begin
|
|
10
10
|
gem.email = "seamus@abshere.net"
|
11
11
|
gem.homepage = "http://github.com/seamusabshere/remote_table"
|
12
12
|
gem.authors = ["Seamus Abshere", "Andy Rossmeissl"]
|
13
|
-
|
14
|
-
gem.add_dependency '
|
13
|
+
# sabshere [unknown date] roo 1.9.3 doesn't work, so use old 1.3 version
|
14
|
+
gem.add_dependency 'roo', '1.3.11'
|
15
|
+
# sabshere 9/30/10 depending on fastercsv when using ruby 1.9.2 results in exiting with error
|
16
|
+
# gem.add_dependency 'fastercsv', '>=1.5.0'
|
15
17
|
gem.add_dependency 'activesupport', '>=2.3.4'
|
16
|
-
gem
|
18
|
+
# sabshere 9/30/10 official slither gem doesn't yet support ruby 1.9.2
|
19
|
+
# gem.add_dependency 'slither', '>=0.99.3'
|
17
20
|
gem.add_dependency 'nokogiri', '>=1.4.1'
|
18
21
|
gem.add_dependency 'escape', '>=0.0.4'
|
19
22
|
gem.add_development_dependency 'errata', '>=0.2.0'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.31
|
data/lib/remote_table.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'digest/md5'
|
2
2
|
require 'uri'
|
3
3
|
require 'tmpdir'
|
4
|
+
require 'kconv'
|
4
5
|
require 'active_support'
|
5
6
|
require 'active_support/version'
|
6
7
|
%w{
|
@@ -13,9 +14,30 @@ require 'active_support/version'
|
|
13
14
|
}.each do |active_support_3_requirement|
|
14
15
|
require active_support_3_requirement
|
15
16
|
end if ActiveSupport::VERSION::MAJOR == 3
|
16
|
-
|
17
|
+
|
18
|
+
if RUBY_VERSION >= '1.9'
|
19
|
+
require 'csv'
|
20
|
+
FasterCSV = CSV
|
21
|
+
else
|
22
|
+
begin
|
23
|
+
require 'fastercsv'
|
24
|
+
rescue LoadError
|
25
|
+
$stderr.puts "[remote_table gem] You probably need to manually install the fastercsv gem."
|
26
|
+
raise $!
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
begin
|
31
|
+
if RUBY_VERSION >= '1.9'
|
32
|
+
gem "slither-ruby19"
|
33
|
+
end
|
34
|
+
require 'slither'
|
35
|
+
rescue LoadError
|
36
|
+
$stderr.puts "[remote_table gem] You probably need to manually install the #{RUBY_VERSION >= '1.9' ? 'slither-ruby19' : 'slither'} gem."
|
37
|
+
raise $!
|
38
|
+
end
|
39
|
+
|
17
40
|
require 'escape'
|
18
|
-
require 'slither'
|
19
41
|
require 'roo'
|
20
42
|
I_KNOW_I_AM_USING_AN_OLD_AND_BUGGY_VERSION_OF_LIBXML2 = true
|
21
43
|
require 'nokogiri'
|
data/lib/remote_table/file.rb
CHANGED
@@ -38,7 +38,7 @@ class RemoteTable
|
|
38
38
|
def define_fixed_width_schema!
|
39
39
|
raise "can't define both schema_name and schema" if !schema_name.blank?
|
40
40
|
self.schema_name = "autogenerated_#{filename.gsub(/[^a-z0-9_]/i, '')}".to_sym
|
41
|
-
self.trap ||= lambda { true }
|
41
|
+
self.trap ||= lambda { |_| true }
|
42
42
|
Slither.define schema_name do |d|
|
43
43
|
d.rows do |row|
|
44
44
|
row.trap(&trap)
|
@@ -21,11 +21,22 @@ class RemoteTable
|
|
21
21
|
self
|
22
22
|
end
|
23
23
|
|
24
|
-
# - convert
|
24
|
+
# - convert it to a plain hash for whatever ruby version you're on
|
25
25
|
# - dump it
|
26
26
|
# - digest it
|
27
27
|
def self.row_hash(row)
|
28
|
-
|
28
|
+
plain_hsh = if RUBY_VERSION >= '1.9'
|
29
|
+
row.keys.sort.inject(::Hash.new) do |memo, key|
|
30
|
+
value = row[key]
|
31
|
+
key = key.to_s.toutf8
|
32
|
+
value = value.to_s.toutf8 if value.respond_to? :to_s
|
33
|
+
memo[key] = value
|
34
|
+
memo
|
35
|
+
end
|
36
|
+
else
|
37
|
+
::Hash.new.replace(row)
|
38
|
+
end
|
39
|
+
::Digest::MD5.hexdigest ::Marshal.dump(plain_hsh)
|
29
40
|
end
|
30
41
|
|
31
42
|
def each_row(&block)
|
data/remote_table.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{remote_table}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.31"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Seamus Abshere", "Andy Rossmeissl"]
|
12
|
-
s.date = %q{2010-09-
|
12
|
+
s.date = %q{2010-09-30}
|
13
13
|
s.description = %q{Remotely open and parse Excel XLS, ODS, CSV and fixed-width tables.}
|
14
14
|
s.email = %q{seamus@abshere.net}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -58,26 +58,20 @@ Gem::Specification.new do |s|
|
|
58
58
|
|
59
59
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
60
60
|
s.add_runtime_dependency(%q<roo>, ["= 1.3.11"])
|
61
|
-
s.add_runtime_dependency(%q<fastercsv>, [">= 1.5.0"])
|
62
61
|
s.add_runtime_dependency(%q<activesupport>, [">= 2.3.4"])
|
63
|
-
s.add_runtime_dependency(%q<slither>, [">= 0.99.3"])
|
64
62
|
s.add_runtime_dependency(%q<nokogiri>, [">= 1.4.1"])
|
65
63
|
s.add_runtime_dependency(%q<escape>, [">= 0.0.4"])
|
66
64
|
s.add_development_dependency(%q<errata>, [">= 0.2.0"])
|
67
65
|
else
|
68
66
|
s.add_dependency(%q<roo>, ["= 1.3.11"])
|
69
|
-
s.add_dependency(%q<fastercsv>, [">= 1.5.0"])
|
70
67
|
s.add_dependency(%q<activesupport>, [">= 2.3.4"])
|
71
|
-
s.add_dependency(%q<slither>, [">= 0.99.3"])
|
72
68
|
s.add_dependency(%q<nokogiri>, [">= 1.4.1"])
|
73
69
|
s.add_dependency(%q<escape>, [">= 0.0.4"])
|
74
70
|
s.add_dependency(%q<errata>, [">= 0.2.0"])
|
75
71
|
end
|
76
72
|
else
|
77
73
|
s.add_dependency(%q<roo>, ["= 1.3.11"])
|
78
|
-
s.add_dependency(%q<fastercsv>, [">= 1.5.0"])
|
79
74
|
s.add_dependency(%q<activesupport>, [">= 2.3.4"])
|
80
|
-
s.add_dependency(%q<slither>, [">= 0.99.3"])
|
81
75
|
s.add_dependency(%q<nokogiri>, [">= 1.4.1"])
|
82
76
|
s.add_dependency(%q<escape>, [">= 0.0.4"])
|
83
77
|
s.add_dependency(%q<errata>, [">= 0.2.0"])
|
data/test/remote_table_test.rb
CHANGED
@@ -202,8 +202,8 @@ class RemoteTableTest < Test::Unit::TestCase
|
|
202
202
|
y[:b] = 2
|
203
203
|
y[:a] = 1
|
204
204
|
|
205
|
-
|
206
|
-
|
205
|
+
assert_not_equal Marshal.dump(x), Marshal.dump(y)
|
206
|
+
assert_equal RemoteTable::Transform.row_hash(x), RemoteTable::Transform.row_hash(y)
|
207
207
|
end
|
208
208
|
|
209
209
|
should "open a Google Docs url (as a CSV)" do
|
data/test/test_helper.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'test/unit'
|
3
3
|
require 'shoulda'
|
4
|
-
require 'ruby-debug'
|
4
|
+
# require 'ruby-debug'
|
5
5
|
require 'errata'
|
6
6
|
require 'active_support/all'
|
7
7
|
|
8
8
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
9
9
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
10
|
-
require 'remote_table'
|
10
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'remote_table'))
|
11
11
|
|
12
12
|
class Test::Unit::TestCase
|
13
13
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: remote_table
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 41
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 31
|
10
|
+
version: 0.2.31
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Seamus Abshere
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-09-
|
19
|
+
date: 2010-09-30 00:00:00 -05:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -35,26 +35,10 @@ dependencies:
|
|
35
35
|
version: 1.3.11
|
36
36
|
type: :runtime
|
37
37
|
version_requirements: *id001
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
name: fastercsv
|
40
|
-
prerelease: false
|
41
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
|
-
requirements:
|
44
|
-
- - ">="
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
hash: 3
|
47
|
-
segments:
|
48
|
-
- 1
|
49
|
-
- 5
|
50
|
-
- 0
|
51
|
-
version: 1.5.0
|
52
|
-
type: :runtime
|
53
|
-
version_requirements: *id002
|
54
38
|
- !ruby/object:Gem::Dependency
|
55
39
|
name: activesupport
|
56
40
|
prerelease: false
|
57
|
-
requirement: &
|
41
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
58
42
|
none: false
|
59
43
|
requirements:
|
60
44
|
- - ">="
|
@@ -66,27 +50,11 @@ dependencies:
|
|
66
50
|
- 4
|
67
51
|
version: 2.3.4
|
68
52
|
type: :runtime
|
69
|
-
version_requirements: *
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: slither
|
72
|
-
prerelease: false
|
73
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
|
-
requirements:
|
76
|
-
- - ">="
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
hash: 405
|
79
|
-
segments:
|
80
|
-
- 0
|
81
|
-
- 99
|
82
|
-
- 3
|
83
|
-
version: 0.99.3
|
84
|
-
type: :runtime
|
85
|
-
version_requirements: *id004
|
53
|
+
version_requirements: *id002
|
86
54
|
- !ruby/object:Gem::Dependency
|
87
55
|
name: nokogiri
|
88
56
|
prerelease: false
|
89
|
-
requirement: &
|
57
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
90
58
|
none: false
|
91
59
|
requirements:
|
92
60
|
- - ">="
|
@@ -98,11 +66,11 @@ dependencies:
|
|
98
66
|
- 1
|
99
67
|
version: 1.4.1
|
100
68
|
type: :runtime
|
101
|
-
version_requirements: *
|
69
|
+
version_requirements: *id003
|
102
70
|
- !ruby/object:Gem::Dependency
|
103
71
|
name: escape
|
104
72
|
prerelease: false
|
105
|
-
requirement: &
|
73
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
106
74
|
none: false
|
107
75
|
requirements:
|
108
76
|
- - ">="
|
@@ -114,11 +82,11 @@ dependencies:
|
|
114
82
|
- 4
|
115
83
|
version: 0.0.4
|
116
84
|
type: :runtime
|
117
|
-
version_requirements: *
|
85
|
+
version_requirements: *id004
|
118
86
|
- !ruby/object:Gem::Dependency
|
119
87
|
name: errata
|
120
88
|
prerelease: false
|
121
|
-
requirement: &
|
89
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
122
90
|
none: false
|
123
91
|
requirements:
|
124
92
|
- - ">="
|
@@ -130,7 +98,7 @@ dependencies:
|
|
130
98
|
- 0
|
131
99
|
version: 0.2.0
|
132
100
|
type: :development
|
133
|
-
version_requirements: *
|
101
|
+
version_requirements: *id005
|
134
102
|
description: Remotely open and parse Excel XLS, ODS, CSV and fixed-width tables.
|
135
103
|
email: seamus@abshere.net
|
136
104
|
executables: []
|