super_deduper 0.0.4 → 0.0.6
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.
- checksums.yaml +7 -0
- data/.travis.yml +15 -0
- data/README.md +8 -1
- data/Rakefile +8 -0
- data/lib/super_deduper/check.rb +12 -12
- data/lib/super_deduper/version.rb +1 -1
- data/super_deduper.gemspec +4 -1
- data/test/test_helper.rb +8 -0
- data/test/unit/super_deduper/check_test.rb +39 -0
- metadata +52 -35
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 360030fe214b4d4b6c67a14f185fa4304471a24b
|
4
|
+
data.tar.gz: 2b7b0c3bafe8cc5f7c21f00ab8b3953ef0772681
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 10079a9444e3461f89c9eb8bcfc964b88eb16f10ff2b3b7baa0eea888187d5f2e214ade445cd61e7312838ac613e0994ce90407f7ed48778c641780dacd718fc
|
7
|
+
data.tar.gz: 25b2b6e57931b44c6f7c63013e1d1caadfdd2f9879286295e2d863c582b12e47ba7ef928e49b951a89280139eb3c9fb2064e816a2acd532d247869d07f64a24a
|
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -2,8 +2,15 @@
|
|
2
2
|
|
3
3
|
It's a super deduper.
|
4
4
|
|
5
|
+
[](http://badge.fury.io/rb/super_deduper)
|
6
|
+
[](https://travis-ci.org/rthbound/super_deduper)
|
7
|
+
[](https://codeclimate.com/github/rthbound/super_deduper)
|
8
|
+
[](https://coveralls.io/r/rthbound/super_deduper)
|
9
|
+
|
5
10
|
## Installation
|
6
11
|
|
12
|
+
**Note** you will need postgres up and running in your app.
|
13
|
+
|
7
14
|
Add this line to your application's Gemfile:
|
8
15
|
|
9
16
|
gem 'super_deduper'
|
@@ -19,7 +26,7 @@ Or install it yourself as:
|
|
19
26
|
## Usage
|
20
27
|
|
21
28
|
```ruby
|
22
|
-
SuperDeduper.new(enum: ["John Doe", "Jane Doe"],
|
29
|
+
SuperDeduper.new(enum: ["John Doe", "Jane Doe"], class: Person, column: "name")
|
23
30
|
```
|
24
31
|
|
25
32
|
will tell you if anything matches either
|
data/Rakefile
CHANGED
data/lib/super_deduper/check.rb
CHANGED
@@ -1,31 +1,31 @@
|
|
1
|
+
require "pay_dirt"
|
1
2
|
module SuperDeduper
|
2
3
|
class Check < PayDirt::Base
|
3
4
|
def initialize(options)
|
4
|
-
|
5
|
+
options = {
|
6
|
+
delimiter: " "
|
7
|
+
}.merge(options) and load_options(:enum, :class, :column, options)
|
5
8
|
end
|
6
9
|
|
7
10
|
def execute!
|
8
|
-
ret_hash = {}
|
9
|
-
|
10
11
|
@enum.each do |term|
|
11
|
-
|
12
|
-
|
13
|
-
})
|
12
|
+
@ret ||= {}
|
13
|
+
@ret.merge!({ term => {} }) # Top level hash keys
|
14
14
|
|
15
|
-
term.split(
|
16
|
-
|
15
|
+
term.split(@delimiter).each do |token|
|
16
|
+
@ret[term][token] = @class.where(["#{@column} ilike ?", "%#{token}%"])
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
if dupe_me_not
|
20
|
+
if dupe_me_not
|
21
21
|
return PayDirt::Result.new(success: true, data: "No matches found")
|
22
22
|
else
|
23
|
-
return PayDirt::Result.new(success: true, data:
|
23
|
+
return PayDirt::Result.new(success: true, data: @ret)
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
-
def dupe_me_not
|
28
|
-
|
27
|
+
def dupe_me_not
|
28
|
+
!@ret.any? { |k,v| v.any? { |kay,vee| vee != [] } }
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
data/super_deduper.gemspec
CHANGED
@@ -18,9 +18,12 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_runtime_dependency "pay_dirt"
|
21
|
+
spec.add_runtime_dependency "pay_dirt", "~> 1.0.0"
|
22
22
|
spec.add_development_dependency "pry"
|
23
23
|
|
24
24
|
spec.add_development_dependency "bundler", "~> 1.3"
|
25
25
|
spec.add_development_dependency "rake"
|
26
|
+
spec.add_development_dependency "minitest", "~> 5.0.4"
|
27
|
+
spec.add_development_dependency "coveralls"
|
26
28
|
end
|
29
|
+
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
require_relative "../../../lib/super_deduper/check"
|
4
|
+
|
5
|
+
describe SuperDeduper::Check do
|
6
|
+
before do
|
7
|
+
@breakfast = MiniTest::Mock.new
|
8
|
+
@subject = SuperDeduper::Check
|
9
|
+
@options = {
|
10
|
+
enum: ["Bacon Eggs", "Sausage Biscuit"],
|
11
|
+
class: @breakfast,
|
12
|
+
column: "main_ingredient"
|
13
|
+
}
|
14
|
+
end
|
15
|
+
|
16
|
+
it "initializes" do
|
17
|
+
res = @subject.new(@options)
|
18
|
+
res.must_be_instance_of @subject
|
19
|
+
res.must_respond_to :execute!
|
20
|
+
end
|
21
|
+
|
22
|
+
it "returns empty" do
|
23
|
+
@options[:enum].map { |x| x.split(" ") }.flatten.each do |term|
|
24
|
+
@breakfast.expect(:where, MiniTest::Mock.new.expect(:!=, false, [[]]), [["main_ingredient ilike ?", "%#{term}%"]])
|
25
|
+
end
|
26
|
+
|
27
|
+
res = @subject.new(@options).execute!
|
28
|
+
res.successful?.must_equal true
|
29
|
+
end
|
30
|
+
|
31
|
+
it "returns not-empty" do
|
32
|
+
@options[:enum].map { |x| x.split(" ") }.flatten.each do |term|
|
33
|
+
@breakfast.expect(:where, MiniTest::Mock.new.expect(:!=, true, [[]]), [["main_ingredient ilike ?", "%#{term}%"]])
|
34
|
+
end
|
35
|
+
|
36
|
+
res = @subject.new(@options).execute!
|
37
|
+
res.successful?.must_equal true
|
38
|
+
end
|
39
|
+
end
|
metadata
CHANGED
@@ -1,52 +1,46 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: super_deduper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.6
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Tad Hosford
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-07-01 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: pay_dirt
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
19
|
+
version: 1.0.0
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
26
|
+
version: 1.0.0
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: pry
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: bundler
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ~>
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ~>
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,21 +55,47 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rake
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: minitest
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 5.0.4
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 5.0.4
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: coveralls
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '>='
|
68
88
|
- !ruby/object:Gem::Version
|
69
89
|
version: '0'
|
70
90
|
type: :development
|
71
91
|
prerelease: false
|
72
92
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
93
|
requirements:
|
75
|
-
- -
|
94
|
+
- - '>='
|
76
95
|
- !ruby/object:Gem::Version
|
77
96
|
version: '0'
|
78
|
-
description:
|
79
|
-
|
97
|
+
description: '"Checks an array of strings against records in the specified table &
|
98
|
+
column. It''s a super-deee-duper dupe-checker."'
|
80
99
|
email:
|
81
100
|
- tad.hosford@gmail.com
|
82
101
|
executables: []
|
@@ -84,6 +103,7 @@ extensions: []
|
|
84
103
|
extra_rdoc_files: []
|
85
104
|
files:
|
86
105
|
- .gitignore
|
106
|
+
- .travis.yml
|
87
107
|
- Gemfile
|
88
108
|
- LICENSE.txt
|
89
109
|
- README.md
|
@@ -92,35 +112,32 @@ files:
|
|
92
112
|
- lib/super_deduper/check.rb
|
93
113
|
- lib/super_deduper/version.rb
|
94
114
|
- super_deduper.gemspec
|
115
|
+
- test/test_helper.rb
|
116
|
+
- test/unit/super_deduper/check_test.rb
|
95
117
|
homepage: ''
|
96
118
|
licenses:
|
97
119
|
- MIT
|
120
|
+
metadata: {}
|
98
121
|
post_install_message:
|
99
122
|
rdoc_options: []
|
100
123
|
require_paths:
|
101
124
|
- lib
|
102
125
|
required_ruby_version: !ruby/object:Gem::Requirement
|
103
|
-
none: false
|
104
126
|
requirements:
|
105
|
-
- -
|
127
|
+
- - '>='
|
106
128
|
- !ruby/object:Gem::Version
|
107
129
|
version: '0'
|
108
|
-
segments:
|
109
|
-
- 0
|
110
|
-
hash: -636433555
|
111
130
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
|
-
none: false
|
113
131
|
requirements:
|
114
|
-
- -
|
132
|
+
- - '>='
|
115
133
|
- !ruby/object:Gem::Version
|
116
134
|
version: '0'
|
117
|
-
segments:
|
118
|
-
- 0
|
119
|
-
hash: -636433555
|
120
135
|
requirements: []
|
121
136
|
rubyforge_project:
|
122
|
-
rubygems_version:
|
137
|
+
rubygems_version: 2.0.3
|
123
138
|
signing_key:
|
124
|
-
specification_version:
|
125
|
-
summary:
|
126
|
-
test_files:
|
139
|
+
specification_version: 4
|
140
|
+
summary: '"It''s a super deduper...errr, dupe checker"'
|
141
|
+
test_files:
|
142
|
+
- test/test_helper.rb
|
143
|
+
- test/unit/super_deduper/check_test.rb
|