errata 1.0.1 → 1.0.2
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/README.rdoc +4 -0
- data/Rakefile +2 -0
- data/errata.gemspec +2 -2
- data/lib/errata.rb +6 -4
- data/lib/errata/erratum.rb +9 -19
- data/lib/errata/erratum/delete.rb +1 -1
- data/lib/errata/erratum/reject.rb +0 -3
- data/lib/errata/erratum/replace.rb +1 -1
- data/lib/errata/erratum/simplify.rb +1 -1
- data/lib/errata/erratum/transform.rb +1 -1
- data/lib/errata/erratum/truncate.rb +1 -1
- data/lib/errata/version.rb +1 -1
- data/test/helper.rb +0 -3
- metadata +19 -17
data/README.rdoc
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Correct strings based on remote errata files.
|
|
4
4
|
|
|
5
|
+
==UTF-8
|
|
6
|
+
|
|
7
|
+
Assumes all input strings are UTF-8. Otherwise there can be problems with Ruby 1.9 and Regexp::FIXEDENCODING. Specifically, ASCII-8BIT regexps might be applied to UTF-8 strings (or vice-versa), resulting in Encoding::CompatibilityError.
|
|
8
|
+
|
|
5
9
|
==Real-life usage
|
|
6
10
|
|
|
7
11
|
Used by data_miner (http://github.com/seamusabshere/data_miner)
|
data/Rakefile
CHANGED
data/errata.gemspec
CHANGED
|
@@ -20,8 +20,8 @@ Gem::Specification.new do |s|
|
|
|
20
20
|
s.require_paths = ["lib"]
|
|
21
21
|
|
|
22
22
|
s.add_dependency 'activesupport', '>=2.3.4'
|
|
23
|
-
s.add_dependency 'remote_table', '
|
|
23
|
+
s.add_dependency 'remote_table', '>=1.1.7'
|
|
24
|
+
s.add_dependency 'to_regexp', '>= 0.0.2'
|
|
24
25
|
s.add_development_dependency 'test-unit'
|
|
25
26
|
s.add_development_dependency 'shoulda'
|
|
26
|
-
s.add_development_dependency 'ruby-debug'
|
|
27
27
|
end
|
data/lib/errata.rb
CHANGED
|
@@ -38,10 +38,12 @@ class Errata
|
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
def errata
|
|
41
|
-
@errata ||= (options['table'] ? options['table'] : ::RemoteTable.new(options.except('responder'))).
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
@errata ||= (options['table'] ? options['table'] : ::RemoteTable.new(options.except('responder'))).inject([]) do |memo, erratum_description|
|
|
42
|
+
if ERRATUM_TYPES.include? erratum_description['action']
|
|
43
|
+
memo.push "::Errata::Erratum::#{erratum_description['action'].camelcase}".constantize.new self, erratum_description
|
|
44
|
+
end
|
|
45
|
+
memo
|
|
46
|
+
end
|
|
45
47
|
end
|
|
46
48
|
|
|
47
49
|
def rejections
|
data/lib/errata/erratum.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
require 'to_regexp'
|
|
2
|
+
|
|
1
3
|
class Errata
|
|
2
4
|
class Erratum
|
|
3
5
|
autoload :Delete, 'errata/erratum/delete'
|
|
@@ -33,12 +35,6 @@ class Errata
|
|
|
33
35
|
!!(conditions_match?(row) and expression_matches?(row))
|
|
34
36
|
end
|
|
35
37
|
|
|
36
|
-
def correct!(row, &blk)
|
|
37
|
-
return :skipped unless targets? row
|
|
38
|
-
yield if block_given?
|
|
39
|
-
:corrected
|
|
40
|
-
end
|
|
41
|
-
|
|
42
38
|
def expression_matches?(row)
|
|
43
39
|
return true if matching_expression.blank? or section.blank?
|
|
44
40
|
if matching_expression.is_a? ::Regexp
|
|
@@ -53,20 +49,14 @@ class Errata
|
|
|
53
49
|
end
|
|
54
50
|
|
|
55
51
|
def matching_expression
|
|
56
|
-
return @
|
|
57
|
-
@
|
|
58
|
-
@
|
|
52
|
+
return @matching_expression[0] if @matching_expression.is_a? ::Array
|
|
53
|
+
@matching_expression = []
|
|
54
|
+
@matching_expression[0] = if options['x'].blank?
|
|
59
55
|
nil
|
|
60
|
-
elsif options['x'].start_with? '/'
|
|
61
|
-
if options['x'].
|
|
62
|
-
|
|
63
|
-
expr = options['x'].chop
|
|
64
|
-
else
|
|
65
|
-
ci = false
|
|
66
|
-
expr = options['x'].dup
|
|
56
|
+
elsif (options['x'].start_with?('/') and options['x'].end_with?('/')) or options['x'].start_with?('%r{')
|
|
57
|
+
if as_regexp = options['x'].as_regexp
|
|
58
|
+
::Regexp.new(*as_regexp)
|
|
67
59
|
end
|
|
68
|
-
expr.gsub! /\A\/|\/\z/, ''
|
|
69
|
-
::Regexp.new expr, ci
|
|
70
60
|
elsif /\Aabbr\((.*)\)\z/.match options['x']
|
|
71
61
|
abbr = $1.split(/(\w\??)/).reject { |a| a == '' }.join('\.?\s?') + '\.?([^\w\.]|\z)'
|
|
72
62
|
expr = '(\A|\s)' + abbr
|
|
@@ -77,7 +67,7 @@ class Errata
|
|
|
77
67
|
else
|
|
78
68
|
options['x']
|
|
79
69
|
end
|
|
80
|
-
@
|
|
70
|
+
@matching_expression[0]
|
|
81
71
|
end
|
|
82
72
|
end
|
|
83
73
|
end
|
data/lib/errata/version.rb
CHANGED
data/test/helper.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: errata
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
5
|
-
prerelease:
|
|
4
|
+
hash: 19
|
|
5
|
+
prerelease:
|
|
6
6
|
segments:
|
|
7
7
|
- 1
|
|
8
8
|
- 0
|
|
9
|
-
-
|
|
10
|
-
version: 1.0.
|
|
9
|
+
- 2
|
|
10
|
+
version: 1.0.2
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- Seamus Abshere
|
|
@@ -16,8 +16,7 @@ autorequire:
|
|
|
16
16
|
bindir: bin
|
|
17
17
|
cert_chain: []
|
|
18
18
|
|
|
19
|
-
date: 2011-
|
|
20
|
-
default_executable:
|
|
19
|
+
date: 2011-04-26 00:00:00 Z
|
|
21
20
|
dependencies:
|
|
22
21
|
- !ruby/object:Gem::Dependency
|
|
23
22
|
name: activesupport
|
|
@@ -41,30 +40,34 @@ dependencies:
|
|
|
41
40
|
requirement: &id002 !ruby/object:Gem::Requirement
|
|
42
41
|
none: false
|
|
43
42
|
requirements:
|
|
44
|
-
- -
|
|
43
|
+
- - ">="
|
|
45
44
|
- !ruby/object:Gem::Version
|
|
46
|
-
hash:
|
|
45
|
+
hash: 29
|
|
47
46
|
segments:
|
|
48
47
|
- 1
|
|
49
|
-
|
|
48
|
+
- 1
|
|
49
|
+
- 7
|
|
50
|
+
version: 1.1.7
|
|
50
51
|
type: :runtime
|
|
51
52
|
version_requirements: *id002
|
|
52
53
|
- !ruby/object:Gem::Dependency
|
|
53
|
-
name:
|
|
54
|
+
name: to_regexp
|
|
54
55
|
prerelease: false
|
|
55
56
|
requirement: &id003 !ruby/object:Gem::Requirement
|
|
56
57
|
none: false
|
|
57
58
|
requirements:
|
|
58
59
|
- - ">="
|
|
59
60
|
- !ruby/object:Gem::Version
|
|
60
|
-
hash:
|
|
61
|
+
hash: 27
|
|
61
62
|
segments:
|
|
62
63
|
- 0
|
|
63
|
-
|
|
64
|
-
|
|
64
|
+
- 0
|
|
65
|
+
- 2
|
|
66
|
+
version: 0.0.2
|
|
67
|
+
type: :runtime
|
|
65
68
|
version_requirements: *id003
|
|
66
69
|
- !ruby/object:Gem::Dependency
|
|
67
|
-
name:
|
|
70
|
+
name: test-unit
|
|
68
71
|
prerelease: false
|
|
69
72
|
requirement: &id004 !ruby/object:Gem::Requirement
|
|
70
73
|
none: false
|
|
@@ -78,7 +81,7 @@ dependencies:
|
|
|
78
81
|
type: :development
|
|
79
82
|
version_requirements: *id004
|
|
80
83
|
- !ruby/object:Gem::Dependency
|
|
81
|
-
name:
|
|
84
|
+
name: shoulda
|
|
82
85
|
prerelease: false
|
|
83
86
|
requirement: &id005 !ruby/object:Gem::Requirement
|
|
84
87
|
none: false
|
|
@@ -119,7 +122,6 @@ files:
|
|
|
119
122
|
- lib/errata/version.rb
|
|
120
123
|
- test/helper.rb
|
|
121
124
|
- test/test_old_syntax.rb
|
|
122
|
-
has_rdoc: true
|
|
123
125
|
homepage: https://github.com/seamusabshere/errata
|
|
124
126
|
licenses: []
|
|
125
127
|
|
|
@@ -149,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
149
151
|
requirements: []
|
|
150
152
|
|
|
151
153
|
rubyforge_project: errata
|
|
152
|
-
rubygems_version: 1.
|
|
154
|
+
rubygems_version: 1.7.2
|
|
153
155
|
signing_key:
|
|
154
156
|
specification_version: 3
|
|
155
157
|
summary: Correct strings based on remote errata files
|