errata 0.1.9 → 0.2.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.
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.add_dependency 'remote_table', '>=0.2.7'
14
+ gem.add_development_dependency 'remote_table', '>=0.2.19'
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.1.9
1
+ 0.2.0
data/errata.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{errata}
8
- s.version = "0.1.9"
8
+ s.version = "0.2.0"
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"]
@@ -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.add_runtime_dependency(%q<remote_table>, [">= 0.2.7"])
55
+ s.add_development_dependency(%q<remote_table>, [">= 0.2.19"])
56
56
  else
57
57
  s.add_dependency(%q<activesupport>, [">= 2.3.4"])
58
- s.add_dependency(%q<remote_table>, [">= 0.2.7"])
58
+ s.add_dependency(%q<remote_table>, [">= 0.2.19"])
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.7"])
62
+ s.add_dependency(%q<remote_table>, [">= 0.2.19"])
63
63
  end
64
64
  end
65
65
 
data/lib/errata.rb CHANGED
@@ -7,7 +7,6 @@ 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'
11
10
  require 'erratum'
12
11
  require 'erratum/delete'
13
12
  require 'erratum/reject'
@@ -19,11 +18,12 @@ require 'erratum/truncate'
19
18
  class Errata
20
19
  ERRATUM_TYPES = %w{delete replace simplify transform truncate}
21
20
 
22
- attr_reader :klass
21
+ attr_reader :responder
22
+ attr_reader :table
23
23
 
24
24
  def initialize(options = {})
25
- @klass = options[:klass]
26
- @_table = RemoteTable.new(:url => options[:url])
25
+ @responder = options[:responder]
26
+ @table = options[:table]
27
27
  end
28
28
 
29
29
  def rejects?(row)
@@ -40,10 +40,10 @@ class Errata
40
40
  end
41
41
 
42
42
  def rejections
43
- @_rejections ||= @_table.rows.map { |hash| hash.symbolize_keys!; ::Errata::Erratum::Reject.new(self, hash) if hash[:action] == 'reject' }.compact
43
+ @_rejections ||= table.rows.map { |hash| hash.symbolize_keys!; ::Errata::Erratum::Reject.new(self, hash) if hash[:action] == 'reject' }.compact
44
44
  end
45
45
 
46
46
  def corrections
47
- @_corrections ||= @_table.rows.map { |hash| hash.symbolize_keys!; "::Errata::Erratum::#{hash[:action].camelcase}".constantize.new(self, hash) if ERRATUM_TYPES.include?(hash[:action]) }.compact
47
+ @_corrections ||= table.rows.map { |hash| hash.symbolize_keys!; "::Errata::Erratum::#{hash[:action].camelcase}".constantize.new(self, hash) if ERRATUM_TYPES.include?(hash[:action]) }.compact
48
48
  end
49
49
  end
data/lib/erratum.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  class Errata
2
2
  class Erratum
3
3
  attr_accessor :errata, :column, :matching_method
4
- delegate :klass, :to => :errata
4
+ delegate :responder, :to => :errata
5
5
 
6
6
  def initialize(errata, options = {})
7
7
  raise "you can't set this from outside" if options[:prefix].present?
@@ -11,7 +11,7 @@ class Errata
11
11
  end
12
12
 
13
13
  def inspect
14
- "<#{self.class.name}:#{object_id} klass=#{klass.name} column=#{column} matching_method=#{matching_method}"
14
+ "<#{self.class.name}:#{object_id} responder=#{responder.to_s} column=#{column} matching_method=#{matching_method}"
15
15
  end
16
16
 
17
17
  def targets?(row)
@@ -47,7 +47,7 @@ class Errata
47
47
 
48
48
  def method_matches?(row)
49
49
  return true if matching_method.nil?
50
- klass.send(matching_method, row)
50
+ responder.send(matching_method, row)
51
51
  end
52
52
 
53
53
  def set_matching_expression(options = {})
data/test/errata_test.rb CHANGED
@@ -1,68 +1,67 @@
1
1
  require 'test_helper'
2
2
 
3
- class AutomobileVariant
4
- class << self
5
- def transmission_is_blank?(row)
6
- row['transmission'].blank?
7
- end
3
+ class AutomobileVariantGuru
4
+ def transmission_is_blank?(row)
5
+ row['transmission'].blank?
6
+ end
8
7
 
9
- def is_a_2007_gmc_or_chevrolet?(row)
10
- row['year'] == 2007 and %w(GMC CHEVROLET).include? row['MFR'].upcase
11
- end
8
+ def is_a_2007_gmc_or_chevrolet?(row)
9
+ row['year'] == 2007 and %w(GMC CHEVROLET).include? row['MFR'].upcase
10
+ end
12
11
 
13
- def is_a_porsche?(row)
14
- row.slice('MFR', 'Manufacturer', 'carline_mfr_name').any? { |k, v| v.upcase == 'PORSCHE' }
15
- end
12
+ def is_a_porsche?(row)
13
+ row.slice('MFR', 'Manufacturer', 'carline_mfr_name').any? { |k, v| v.upcase == 'PORSCHE' }
14
+ end
16
15
 
17
- def is_not_a_porsche?(row)
18
- !is_a_porsche? row
19
- end
16
+ def is_not_a_porsche?(row)
17
+ !is_a_porsche? row
18
+ end
20
19
 
21
- def is_a_mercedes_benz?(row)
22
- row.slice('MFR', 'Manufacturer', 'carline_mfr_name').any? { |k, v| v =~ /MERCEDES/i }
23
- end
20
+ def is_a_mercedes_benz?(row)
21
+ row.slice('MFR', 'Manufacturer', 'carline_mfr_name').any? { |k, v| v =~ /MERCEDES/i }
22
+ end
24
23
 
25
- def is_a_lexus?(row)
26
- row.slice('MFR', 'Manufacturer', 'carline_mfr_name').any? { |k, v| v.upcase == 'LEXUS' }
27
- end
24
+ def is_a_lexus?(row)
25
+ row.slice('MFR', 'Manufacturer', 'carline_mfr_name').any? { |k, v| v.upcase == 'LEXUS' }
26
+ end
28
27
 
29
- def is_a_bmw?(row)
30
- row.slice('MFR', 'Manufacturer', 'carline_mfr_name').any? { |k, v| v.upcase == 'BMW' }
31
- end
28
+ def is_a_bmw?(row)
29
+ row.slice('MFR', 'Manufacturer', 'carline_mfr_name').any? { |k, v| v.upcase == 'BMW' }
30
+ end
32
31
 
33
- def is_a_ford?(row)
34
- row.slice('MFR', 'Manufacturer', 'carline_mfr_name').any? { |k, v| v.upcase == 'FORD' }
35
- end
32
+ def is_a_ford?(row)
33
+ row.slice('MFR', 'Manufacturer', 'carline_mfr_name').any? { |k, v| v.upcase == 'FORD' }
34
+ end
36
35
 
37
- def is_a_rolls_royce_and_model_contains_bentley?(row)
38
- is_a_rolls_royce?(row) and model_contains_bentley?(row)
39
- end
36
+ def is_a_rolls_royce_and_model_contains_bentley?(row)
37
+ is_a_rolls_royce?(row) and model_contains_bentley?(row)
38
+ end
40
39
 
41
- def is_a_bentley?(row)
42
- row.slice('MFR', 'Manufacturer', 'carline_mfr_name').any? { |k, v| v.upcase == 'BENTLEY' }
43
- end
40
+ def is_a_bentley?(row)
41
+ row.slice('MFR', 'Manufacturer', 'carline_mfr_name').any? { |k, v| v.upcase == 'BENTLEY' }
42
+ end
44
43
 
45
- def is_a_rolls_royce?(row)
46
- row.slice('MFR', 'Manufacturer', 'carline_mfr_name').any? { |k, v| v =~ /ROLLS/i }
47
- end
44
+ def is_a_rolls_royce?(row)
45
+ row.slice('MFR', 'Manufacturer', 'carline_mfr_name').any? { |k, v| v =~ /ROLLS/i }
46
+ end
48
47
 
49
- def is_a_turbo_brooklands?(row)
50
- row.slice('CAR LINE', 'carline name', 'carline_name').any? { |k, v| v =~ /TURBO R\/RL BKLDS/i }
51
- end
48
+ def is_a_turbo_brooklands?(row)
49
+ row.slice('CAR LINE', 'carline name', 'carline_name').any? { |k, v| v =~ /TURBO R\/RL BKLDS/i }
50
+ end
52
51
 
53
- def model_contains_maybach?(row)
54
- row.slice('CAR LINE', 'carline name', 'carline_name').any? { |k, v| v =~ /MAYBACH/i }
55
- end
56
-
57
- def model_contains_bentley?(row)
58
- row.slice('CAR LINE', 'carline name', 'carline_name').any? { |k, v| v =~ /BENTLEY/i }
59
- end
52
+ def model_contains_maybach?(row)
53
+ row.slice('CAR LINE', 'carline name', 'carline_name').any? { |k, v| v =~ /MAYBACH/i }
54
+ end
55
+
56
+ def model_contains_bentley?(row)
57
+ row.slice('CAR LINE', 'carline name', 'carline_name').any? { |k, v| v =~ /BENTLEY/i }
60
58
  end
61
59
  end
62
60
 
63
61
  class ErrataTest < Test::Unit::TestCase
64
62
  def setup
65
- @e = Errata.new(:url => 'http://spreadsheets.google.com/pub?key=t9WkYT39zjrStx7ruCFrZJg', :klass => AutomobileVariant)
63
+ @e = Errata.new :table => RemoteTable.new(:url => 'http://spreadsheets.google.com/pub?key=t9WkYT39zjrStx7ruCFrZJg'),
64
+ :responder => AutomobileVariantGuru.new
66
65
  end
67
66
 
68
67
  should "correct rows" do
data/test/test_helper.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'rubygems'
2
2
  require 'test/unit'
3
3
  require 'shoulda'
4
+ require 'remote_table'
4
5
 
5
6
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
6
7
  $LOAD_PATH.unshift(File.dirname(__FILE__))
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 1
8
- - 9
9
- version: 0.1.9
7
+ - 2
8
+ - 0
9
+ version: 0.2.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Seamus Abshere
@@ -42,9 +42,9 @@ dependencies:
42
42
  segments:
43
43
  - 0
44
44
  - 2
45
- - 7
46
- version: 0.2.7
47
- type: :runtime
45
+ - 19
46
+ version: 0.2.19
47
+ type: :development
48
48
  version_requirements: *id002
49
49
  description: Correct strings based on remote errata files
50
50
  email: seamus@abshere.net