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 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
- gem.add_dependency 'roo', '1.3.11' # 1.9.3 breaks
14
- gem.add_dependency 'fastercsv', '>=1.5.0'
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.add_dependency 'slither', '>=0.99.3'
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.30
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
- require 'fastercsv'
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'
@@ -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 OrderedHash to a Hash (otherwise field ordering will be saved)
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
- Digest::MD5.hexdigest Marshal.dump(Hash.new.replace(row))
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.30"
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-08}
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"])
@@ -202,8 +202,8 @@ class RemoteTableTest < Test::Unit::TestCase
202
202
  y[:b] = 2
203
203
  y[:a] = 1
204
204
 
205
- assert Marshal.dump(x) != Marshal.dump(y)
206
- assert RemoteTable::Transform.row_hash(x) == RemoteTable::Transform.row_hash(y)
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: 43
4
+ hash: 41
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 30
10
- version: 0.2.30
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-08 00:00:00 -05:00
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: &id003 !ruby/object:Gem::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: *id003
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: &id005 !ruby/object:Gem::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: *id005
69
+ version_requirements: *id003
102
70
  - !ruby/object:Gem::Dependency
103
71
  name: escape
104
72
  prerelease: false
105
- requirement: &id006 !ruby/object:Gem::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: *id006
85
+ version_requirements: *id004
118
86
  - !ruby/object:Gem::Dependency
119
87
  name: errata
120
88
  prerelease: false
121
- requirement: &id007 !ruby/object:Gem::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: *id007
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: []