linkage 0.0.3 → 0.0.4
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 +2 -2
- data/VERSION +1 -1
- data/lib/linkage/configuration.rb +36 -1
- data/linkage.gemspec +4 -4
- metadata +34 -33
data/Rakefile
CHANGED
@@ -17,8 +17,8 @@ Jeweler::Tasks.new do |gem|
|
|
17
17
|
gem.name = "linkage"
|
18
18
|
gem.homepage = "http://github.com/coupler/linkage"
|
19
19
|
gem.license = "MIT"
|
20
|
-
gem.summary = %Q{
|
21
|
-
gem.description = %Q{
|
20
|
+
gem.summary = %Q{Record linkage library}
|
21
|
+
gem.description = %Q{Performs record linkage between one or two datasets, using Sequel on the backend}
|
22
22
|
gem.email = "jeremy.f.stephens@vanderbilt.edu"
|
23
23
|
gem.authors = ["Jeremy Stephens"]
|
24
24
|
# dependencies defined in Gemfile
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.4
|
@@ -1,6 +1,28 @@
|
|
1
1
|
module Linkage
|
2
2
|
class Configuration
|
3
3
|
class DSL
|
4
|
+
|
5
|
+
# Class for visually comparing matched records
|
6
|
+
class VisualComparisonWrapper
|
7
|
+
attr_reader :dsl, :lhs, :rhs
|
8
|
+
|
9
|
+
def initialize(dsl, lhs, rhs)
|
10
|
+
@dsl = dsl
|
11
|
+
@lhs = lhs
|
12
|
+
@rhs = rhs
|
13
|
+
|
14
|
+
if @lhs.is_a?(DataWrapper) && @rhs.is_a?(DataWrapper)
|
15
|
+
if @lhs.side == @rhs.side
|
16
|
+
raise ArgumentError, "Can't visually compare two data sources on the same side"
|
17
|
+
end
|
18
|
+
else
|
19
|
+
raise ArgumentError, "Must supply two data sources for visual comparison"
|
20
|
+
end
|
21
|
+
|
22
|
+
@dsl.add_visual_comparison(self)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
4
26
|
class ExpectationWrapper
|
5
27
|
VALID_OPERATORS = [:==, :>, :<, :>=, :<=]
|
6
28
|
OPERATOR_OPPOSITES = {
|
@@ -111,11 +133,19 @@ module Linkage
|
|
111
133
|
class DataWrapper
|
112
134
|
attr_reader :side, :dataset
|
113
135
|
|
136
|
+
def initialize
|
137
|
+
raise NotImplementedError
|
138
|
+
end
|
139
|
+
|
114
140
|
[:must, :must_not].each do |type|
|
115
141
|
define_method(type) do
|
116
142
|
ExpectationWrapper.new(@dsl, type, self)
|
117
143
|
end
|
118
144
|
end
|
145
|
+
|
146
|
+
def compare_with(other)
|
147
|
+
VisualComparisonWrapper.new(@dsl, self, other)
|
148
|
+
end
|
119
149
|
end
|
120
150
|
|
121
151
|
class FieldWrapper < DataWrapper
|
@@ -256,6 +286,10 @@ module Linkage
|
|
256
286
|
end
|
257
287
|
end
|
258
288
|
|
289
|
+
def add_visual_comparison(visual_comparison)
|
290
|
+
@config.visual_comparisons << visual_comparison
|
291
|
+
end
|
292
|
+
|
259
293
|
# For handling functions
|
260
294
|
def method_missing(name, *args, &block)
|
261
295
|
klass = Function[name.to_s]
|
@@ -267,13 +301,14 @@ module Linkage
|
|
267
301
|
end
|
268
302
|
end
|
269
303
|
|
270
|
-
attr_reader :dataset_1, :dataset_2, :expectations
|
304
|
+
attr_reader :dataset_1, :dataset_2, :expectations, :visual_comparisons
|
271
305
|
attr_accessor :linkage_type, :results_uri, :results_uri_options
|
272
306
|
|
273
307
|
def initialize(dataset_1, dataset_2)
|
274
308
|
@dataset_1 = dataset_1
|
275
309
|
@dataset_2 = dataset_2
|
276
310
|
@expectations = []
|
311
|
+
@visual_comparisons = []
|
277
312
|
@linkage_type = dataset_1 == dataset_2 ? :self : :dual
|
278
313
|
end
|
279
314
|
|
data/linkage.gemspec
CHANGED
@@ -5,12 +5,12 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "linkage"
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jeremy Stephens"]
|
12
|
-
s.date = "2012-
|
13
|
-
s.description = "
|
12
|
+
s.date = "2012-03-20"
|
13
|
+
s.description = "Performs record linkage between one or two datasets, using Sequel on the backend"
|
14
14
|
s.email = "jeremy.f.stephens@vanderbilt.edu"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE.txt",
|
@@ -67,7 +67,7 @@ Gem::Specification.new do |s|
|
|
67
67
|
s.licenses = ["MIT"]
|
68
68
|
s.require_paths = ["lib"]
|
69
69
|
s.rubygems_version = "1.3.9.4"
|
70
|
-
s.summary = "
|
70
|
+
s.summary = "Record linkage library"
|
71
71
|
|
72
72
|
if s.respond_to? :specification_version then
|
73
73
|
s.specification_version = 3
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: linkage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,12 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-03-20 00:00:00.000000000 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: sequel
|
17
|
-
requirement: &
|
17
|
+
requirement: &6839080 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *6839080
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: bundler
|
28
|
-
requirement: &
|
28
|
+
requirement: &6837220 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 1.0.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *6837220
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: jeweler
|
39
|
-
requirement: &
|
39
|
+
requirement: &6848560 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: 1.6.4
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *6848560
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: test-unit
|
50
|
-
requirement: &
|
50
|
+
requirement: &6843960 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - =
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 2.3.2
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *6843960
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: mocha
|
61
|
-
requirement: &
|
61
|
+
requirement: &7697360 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: '0'
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *7697360
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: sqlite3
|
72
|
-
requirement: &
|
72
|
+
requirement: &7735360 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: '0'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *7735360
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: yard
|
83
|
-
requirement: &
|
83
|
+
requirement: &7747140 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ! '>='
|
@@ -88,10 +88,10 @@ dependencies:
|
|
88
88
|
version: '0'
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *7747140
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: rake
|
94
|
-
requirement: &
|
94
|
+
requirement: &7744260 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
97
97
|
- - ! '>='
|
@@ -99,10 +99,10 @@ dependencies:
|
|
99
99
|
version: '0'
|
100
100
|
type: :development
|
101
101
|
prerelease: false
|
102
|
-
version_requirements: *
|
102
|
+
version_requirements: *7744260
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: versionomy
|
105
|
-
requirement: &
|
105
|
+
requirement: &7756060 !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|
108
108
|
- - ! '>='
|
@@ -110,10 +110,10 @@ dependencies:
|
|
110
110
|
version: '0'
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
|
-
version_requirements: *
|
113
|
+
version_requirements: *7756060
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
115
|
name: mysql2
|
116
|
-
requirement: &
|
116
|
+
requirement: &7754660 !ruby/object:Gem::Requirement
|
117
117
|
none: false
|
118
118
|
requirements:
|
119
119
|
- - ! '>='
|
@@ -121,10 +121,10 @@ dependencies:
|
|
121
121
|
version: '0'
|
122
122
|
type: :development
|
123
123
|
prerelease: false
|
124
|
-
version_requirements: *
|
124
|
+
version_requirements: *7754660
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: pry
|
127
|
-
requirement: &
|
127
|
+
requirement: &7752840 !ruby/object:Gem::Requirement
|
128
128
|
none: false
|
129
129
|
requirements:
|
130
130
|
- - ! '>='
|
@@ -132,10 +132,10 @@ dependencies:
|
|
132
132
|
version: '0'
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
|
-
version_requirements: *
|
135
|
+
version_requirements: *7752840
|
136
136
|
- !ruby/object:Gem::Dependency
|
137
137
|
name: rdiscount
|
138
|
-
requirement: &
|
138
|
+
requirement: &7749720 !ruby/object:Gem::Requirement
|
139
139
|
none: false
|
140
140
|
requirements:
|
141
141
|
- - ! '>='
|
@@ -143,10 +143,10 @@ dependencies:
|
|
143
143
|
version: '0'
|
144
144
|
type: :development
|
145
145
|
prerelease: false
|
146
|
-
version_requirements: *
|
146
|
+
version_requirements: *7749720
|
147
147
|
- !ruby/object:Gem::Dependency
|
148
148
|
name: guard-test
|
149
|
-
requirement: &
|
149
|
+
requirement: &7764320 !ruby/object:Gem::Requirement
|
150
150
|
none: false
|
151
151
|
requirements:
|
152
152
|
- - ! '>='
|
@@ -154,10 +154,10 @@ dependencies:
|
|
154
154
|
version: '0'
|
155
155
|
type: :development
|
156
156
|
prerelease: false
|
157
|
-
version_requirements: *
|
157
|
+
version_requirements: *7764320
|
158
158
|
- !ruby/object:Gem::Dependency
|
159
159
|
name: guard-yard
|
160
|
-
requirement: &
|
160
|
+
requirement: &7760020 !ruby/object:Gem::Requirement
|
161
161
|
none: false
|
162
162
|
requirements:
|
163
163
|
- - ! '>='
|
@@ -165,8 +165,9 @@ dependencies:
|
|
165
165
|
version: '0'
|
166
166
|
type: :development
|
167
167
|
prerelease: false
|
168
|
-
version_requirements: *
|
169
|
-
description:
|
168
|
+
version_requirements: *7760020
|
169
|
+
description: Performs record linkage between one or two datasets, using Sequel on
|
170
|
+
the backend
|
170
171
|
email: jeremy.f.stephens@vanderbilt.edu
|
171
172
|
executables: []
|
172
173
|
extensions: []
|
@@ -235,7 +236,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
235
236
|
version: '0'
|
236
237
|
segments:
|
237
238
|
- 0
|
238
|
-
hash:
|
239
|
+
hash: 3920524836542711484
|
239
240
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
240
241
|
none: false
|
241
242
|
requirements:
|
@@ -247,5 +248,5 @@ rubyforge_project:
|
|
247
248
|
rubygems_version: 1.3.9.4
|
248
249
|
signing_key:
|
249
250
|
specification_version: 3
|
250
|
-
summary:
|
251
|
+
summary: Record linkage library
|
251
252
|
test_files: []
|