errata 0.2.0 → 0.2.1
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 +1 -1
- data/VERSION +1 -1
- data/errata.gemspec +5 -5
- data/lib/errata.rb +20 -4
- data/test/errata_test.rb +16 -0
- data/test/test_helper.rb +0 -1
- metadata +6 -6
data/Rakefile
CHANGED
@@ -11,7 +11,7 @@ begin
|
|
11
11
|
gem.homepage = "http://github.com/seamusabshere/errata"
|
12
12
|
gem.authors = ["Seamus Abshere", "Andy Rossmeissl"]
|
13
13
|
gem.add_dependency 'activesupport', '>=2.3.4'
|
14
|
-
gem.
|
14
|
+
gem.add_dependency 'remote_table', '>=0.2.20'
|
15
15
|
gem.require_path = "lib"
|
16
16
|
gem.files.include %w(lib/erratum) unless gem.files.empty? # seems to fail once it's in the wild
|
17
17
|
gem.rdoc_options << '--line-numbers' << '--inline-source'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.1
|
data/errata.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{errata}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.1"
|
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-05-
|
12
|
+
s.date = %q{2010-05-06}
|
13
13
|
s.description = %q{Correct strings based on remote errata files}
|
14
14
|
s.email = %q{seamus@abshere.net}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -52,14 +52,14 @@ Gem::Specification.new do |s|
|
|
52
52
|
|
53
53
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
54
54
|
s.add_runtime_dependency(%q<activesupport>, [">= 2.3.4"])
|
55
|
-
s.
|
55
|
+
s.add_runtime_dependency(%q<remote_table>, [">= 0.2.20"])
|
56
56
|
else
|
57
57
|
s.add_dependency(%q<activesupport>, [">= 2.3.4"])
|
58
|
-
s.add_dependency(%q<remote_table>, [">= 0.2.
|
58
|
+
s.add_dependency(%q<remote_table>, [">= 0.2.20"])
|
59
59
|
end
|
60
60
|
else
|
61
61
|
s.add_dependency(%q<activesupport>, [">= 2.3.4"])
|
62
|
-
s.add_dependency(%q<remote_table>, [">= 0.2.
|
62
|
+
s.add_dependency(%q<remote_table>, [">= 0.2.20"])
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
data/lib/errata.rb
CHANGED
@@ -7,6 +7,7 @@ require 'active_support/version'
|
|
7
7
|
}.each do |active_support_3_requirement|
|
8
8
|
require active_support_3_requirement
|
9
9
|
end if ActiveSupport::VERSION::MAJOR == 3
|
10
|
+
require 'remote_table'
|
10
11
|
require 'erratum'
|
11
12
|
require 'erratum/delete'
|
12
13
|
require 'erratum/reject'
|
@@ -18,12 +19,27 @@ require 'erratum/truncate'
|
|
18
19
|
class Errata
|
19
20
|
ERRATUM_TYPES = %w{delete replace simplify transform truncate}
|
20
21
|
|
21
|
-
attr_reader :
|
22
|
-
attr_reader :table
|
22
|
+
attr_reader :options
|
23
23
|
|
24
|
+
# Arguments
|
25
|
+
# * <tt>:responder</tt> (required) - normally you pass this something like Guru.new, which should respond to questions like #is_a_bentley?. If you pass a string, it will be lazily constantized and a new object initialized from it; for example, 'Guru' will lead to 'Guru'.constantize.new.
|
26
|
+
# * <tt>:table</tt> - takes something that acts like a RemoteTable
|
27
|
+
# If and only if you don't pass <tt>:table</tt>, all other options will be passed to a new RemoteTable (for example, <tt>:url</tt>, etc.)
|
24
28
|
def initialize(options = {})
|
25
|
-
|
26
|
-
@
|
29
|
+
options.symbolize_keys!
|
30
|
+
@options = options
|
31
|
+
end
|
32
|
+
|
33
|
+
def table
|
34
|
+
@_table ||= if options[:table].present?
|
35
|
+
options[:table]
|
36
|
+
else
|
37
|
+
RemoteTable.new options.except(:responder)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def responder
|
42
|
+
@_responder ||= (options[:responder].is_a?(String) ? options[:responder].constantize.new : options[:responder])
|
27
43
|
end
|
28
44
|
|
29
45
|
def rejects?(row)
|
data/test/errata_test.rb
CHANGED
@@ -73,4 +73,20 @@ class ErrataTest < Test::Unit::TestCase
|
|
73
73
|
should "reject rows" do
|
74
74
|
assert @e.rejects?('carline_mfr_name' => 'AURORA CARS')
|
75
75
|
end
|
76
|
+
|
77
|
+
should "lazily constantize and initialize responder" do
|
78
|
+
e = Errata.new :table => RemoteTable.new(:url => 'http://spreadsheets.google.com/pub?key=t9WkYT39zjrStx7ruCFrZJg'),
|
79
|
+
:responder => 'AutomobileVariantGuru'
|
80
|
+
alfa = { "carline_mfr_name"=>"ALFA ROMEO" }
|
81
|
+
e.correct!(alfa)
|
82
|
+
assert_equal 'Alfa Romeo', alfa['carline_mfr_name']
|
83
|
+
end
|
84
|
+
|
85
|
+
should "pass options to RemoteTable if no :table is specified" do
|
86
|
+
e = Errata.new :url => 'http://spreadsheets.google.com/pub?key=t9WkYT39zjrStx7ruCFrZJg',
|
87
|
+
:responder => AutomobileVariantGuru.new
|
88
|
+
alfa = { "carline_mfr_name"=>"ALFA ROMEO" }
|
89
|
+
e.correct!(alfa)
|
90
|
+
assert_equal 'Alfa Romeo', alfa['carline_mfr_name']
|
91
|
+
end
|
76
92
|
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 0.2.
|
8
|
+
- 1
|
9
|
+
version: 0.2.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Seamus Abshere
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-05-
|
18
|
+
date: 2010-05-06 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -42,9 +42,9 @@ dependencies:
|
|
42
42
|
segments:
|
43
43
|
- 0
|
44
44
|
- 2
|
45
|
-
-
|
46
|
-
version: 0.2.
|
47
|
-
type: :
|
45
|
+
- 20
|
46
|
+
version: 0.2.20
|
47
|
+
type: :runtime
|
48
48
|
version_requirements: *id002
|
49
49
|
description: Correct strings based on remote errata files
|
50
50
|
email: seamus@abshere.net
|