forklift_etl 1.0.8 → 1.0.9

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.
Files changed (62) hide show
  1. checksums.yaml +8 -8
  2. data/forklift.jpg +0 -0
  3. data/lib/forklift/transports/mysql.rb +3 -2
  4. data/lib/forklift/version.rb +1 -1
  5. metadata +1 -58
  6. data/doc/EmailSuffix.html +0 -228
  7. data/doc/Forklift/Base/Connection.html +0 -590
  8. data/doc/Forklift/Base/Logger.html +0 -453
  9. data/doc/Forklift/Base/Mailer/ERBBinding.html +0 -256
  10. data/doc/Forklift/Base/Mailer.html +0 -399
  11. data/doc/Forklift/Base/Pid.html +0 -489
  12. data/doc/Forklift/Base/Utils.html +0 -252
  13. data/doc/Forklift/Base.html +0 -167
  14. data/doc/Forklift/Connection/Elasticsearch.html +0 -419
  15. data/doc/Forklift/Connection/Mysql.html +0 -939
  16. data/doc/Forklift/Connection.html +0 -164
  17. data/doc/Forklift/Patterns/Elasticsearch.html +0 -169
  18. data/doc/Forklift/Patterns/Mysql.html +0 -402
  19. data/doc/Forklift/Patterns.html +0 -164
  20. data/doc/Forklift/Plan.html +0 -704
  21. data/doc/Forklift.html +0 -187
  22. data/doc/Gemfile.html +0 -132
  23. data/doc/Object.html +0 -326
  24. data/doc/Rakefile.html +0 -138
  25. data/doc/SpecClient.html +0 -291
  26. data/doc/SpecPlan.html +0 -253
  27. data/doc/SpecSeeds.html +0 -303
  28. data/doc/created.rid +0 -35
  29. data/doc/example/Gemfile.html +0 -129
  30. data/doc/images/add.png +0 -0
  31. data/doc/images/brick.png +0 -0
  32. data/doc/images/brick_link.png +0 -0
  33. data/doc/images/bug.png +0 -0
  34. data/doc/images/bullet_black.png +0 -0
  35. data/doc/images/bullet_toggle_minus.png +0 -0
  36. data/doc/images/bullet_toggle_plus.png +0 -0
  37. data/doc/images/date.png +0 -0
  38. data/doc/images/delete.png +0 -0
  39. data/doc/images/find.png +0 -0
  40. data/doc/images/loadingAnimation.gif +0 -0
  41. data/doc/images/macFFBgHack.png +0 -0
  42. data/doc/images/package.png +0 -0
  43. data/doc/images/page_green.png +0 -0
  44. data/doc/images/page_white_text.png +0 -0
  45. data/doc/images/page_white_width.png +0 -0
  46. data/doc/images/plugin.png +0 -0
  47. data/doc/images/ruby.png +0 -0
  48. data/doc/images/tag_blue.png +0 -0
  49. data/doc/images/tag_green.png +0 -0
  50. data/doc/images/transparent.png +0 -0
  51. data/doc/images/wrench.png +0 -0
  52. data/doc/images/wrench_orange.png +0 -0
  53. data/doc/images/zoom.png +0 -0
  54. data/doc/index.html +0 -122
  55. data/doc/js/darkfish.js +0 -155
  56. data/doc/js/jquery.js +0 -18
  57. data/doc/js/navigation.js +0 -142
  58. data/doc/js/search.js +0 -94
  59. data/doc/js/search_index.js +0 -1
  60. data/doc/js/searcher.js +0 -228
  61. data/doc/rdoc.css +0 -543
  62. data/doc/table_of_contents.html +0 -309
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NWRiNDNmYTQwZTQ3ZjY4ZmY4Y2FhYzQxOGRjMGY3ZjAxNjYzNmJjMw==
4
+ ZGY5YWUyODZkYTk1ODFiZTZkNWY0MzU0OGUxYzgxZjQ1NDcyYjNmOQ==
5
5
  data.tar.gz: !binary |-
6
- NTdjMWM2OTljNTIxYTk1YzA3ZWUyZmM3MTdlNmIxZmQ1YmMxNWM5Mw==
6
+ ZGZlYWYzNWI4YTEwYTFkYzYwZGM3NmQ3NDdmMzliNWVmMmE4M2NlZA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YjJjZDc2NjQxODY0ZjU0MGExNWIxY2VlZTcwMWVkYzNkZjA1MmZiZmM0NWRl
10
- ZjFmNmFhNWI3NGNmYjE5NmU0Y2I4ODUxNTQxYjgzMjA2OTljOTA3M2UwZmM2
11
- YTMzZTQ0ZjM5ODBjMjA3MDFkNjVjMGUzNDg3NjAyMmJiODBhZjA=
9
+ ZmUzMGEyNDkyYjdhMWQ1YzA0Mzk2Y2U5ZWYyZDIyMGU5OTQ5ZmY4ZWFmNzRk
10
+ YTYyZjY3MDc4NTdhNjA2MzVmNDVkY2ZiNjRjZmM5ZDRjMzUxZjQ1NDUwOGMz
11
+ ZjBmNDY0Y2E3OWNiNzk2YWE1ODZkYWQ4NTM0ZDRmOGMzY2JkOTk=
12
12
  data.tar.gz: !binary |-
13
- MDkxYTM1YTUzODczYzg1ZDJmNTJkZjM4NGU2NTE3ZWRjZWVkMWRiYmQwMWI3
14
- YzVjNTU5NWQzZDY0YzY5OTIwNGRiZmViMDQwMjJjYjFjNzIxOTI1MjExN2Zm
15
- Mjg4YzNjY2E2MDYxMzQ1M2ZmM2ZjNDY4NmI2Yjc5Yzc2MWY5Nzc=
13
+ ODg2NWYyNDdhZTVkNjRhMzMyMGMyMTg5ZmU3MzRjMDE5NTcwYWUzY2EzODVl
14
+ Y2M4OGUwOGY4YWJmNmI3MDJlZTg3MzU1NGVkNzUwZmE2Y2RkYTExYjdmNTUw
15
+ Yzc5ZTY3Njk1NGI1YzUxNTZkZWEwNzliNzZjYjEwNzdmN2FmZDg=
data/forklift.jpg CHANGED
Binary file
@@ -77,11 +77,11 @@ module Forklift
77
77
  end
78
78
  end
79
79
 
80
- def lazy_table_create(table, data, database=current_database, primary_key='id')
80
+ def lazy_table_create(table, data, database=current_database, primary_key='id', matcher=default_matcher)
81
81
  keys = {}
82
82
  data.each do |item|
83
83
  item.each do |k,v|
84
- keys[k] = sql_type(v) if keys[k].nil?
84
+ keys[k] = sql_type(v) if ( keys[k].nil? )
85
85
  end
86
86
  end
87
87
 
@@ -91,6 +91,7 @@ module Forklift
91
91
  command << " `#{col}` #{type} DEFAULT NULL, "
92
92
  end
93
93
  command << " PRIMARY KEY (`#{primary_key}`) "
94
+ command << " , KEY `#{matcher}` (`#{matcher}`) " if keys.include?(matcher.to_sym)
94
95
  command << " ) "
95
96
 
96
97
  q(command)
@@ -1,3 +1,3 @@
1
1
  module Forklift
2
- VERSION = "1.0.8"
2
+ VERSION = "1.0.9"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: forklift_etl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.8
4
+ version: 1.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Evan Tahler
@@ -125,63 +125,6 @@ files:
125
125
  - Gemfile.lock
126
126
  - Rakefile
127
127
  - bin/forklift
128
- - doc/EmailSuffix.html
129
- - doc/Forklift.html
130
- - doc/Forklift/Base.html
131
- - doc/Forklift/Base/Connection.html
132
- - doc/Forklift/Base/Logger.html
133
- - doc/Forklift/Base/Mailer.html
134
- - doc/Forklift/Base/Mailer/ERBBinding.html
135
- - doc/Forklift/Base/Pid.html
136
- - doc/Forklift/Base/Utils.html
137
- - doc/Forklift/Connection.html
138
- - doc/Forklift/Connection/Elasticsearch.html
139
- - doc/Forklift/Connection/Mysql.html
140
- - doc/Forklift/Patterns.html
141
- - doc/Forklift/Patterns/Elasticsearch.html
142
- - doc/Forklift/Patterns/Mysql.html
143
- - doc/Forklift/Plan.html
144
- - doc/Gemfile.html
145
- - doc/Object.html
146
- - doc/Rakefile.html
147
- - doc/SpecClient.html
148
- - doc/SpecPlan.html
149
- - doc/SpecSeeds.html
150
- - doc/created.rid
151
- - doc/example/Gemfile.html
152
- - doc/images/add.png
153
- - doc/images/brick.png
154
- - doc/images/brick_link.png
155
- - doc/images/bug.png
156
- - doc/images/bullet_black.png
157
- - doc/images/bullet_toggle_minus.png
158
- - doc/images/bullet_toggle_plus.png
159
- - doc/images/date.png
160
- - doc/images/delete.png
161
- - doc/images/find.png
162
- - doc/images/loadingAnimation.gif
163
- - doc/images/macFFBgHack.png
164
- - doc/images/package.png
165
- - doc/images/page_green.png
166
- - doc/images/page_white_text.png
167
- - doc/images/page_white_width.png
168
- - doc/images/plugin.png
169
- - doc/images/ruby.png
170
- - doc/images/tag_blue.png
171
- - doc/images/tag_green.png
172
- - doc/images/transparent.png
173
- - doc/images/wrench.png
174
- - doc/images/wrench_orange.png
175
- - doc/images/zoom.png
176
- - doc/index.html
177
- - doc/js/darkfish.js
178
- - doc/js/jquery.js
179
- - doc/js/navigation.js
180
- - doc/js/search.js
181
- - doc/js/search_index.js
182
- - doc/js/searcher.js
183
- - doc/rdoc.css
184
- - doc/table_of_contents.html
185
128
  - example/Gemfile
186
129
  - example/Gemfile.lock
187
130
  - example/config/connections/elasticsearch/source.yml
data/doc/EmailSuffix.html DELETED
@@ -1,228 +0,0 @@
1
- <!DOCTYPE html>
2
-
3
- <html>
4
- <head>
5
- <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
6
-
7
- <title>class EmailSuffix - RDoc Documentation</title>
8
-
9
- <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet">
10
-
11
- <script type="text/javascript">
12
- var rdoc_rel_prefix = "./";
13
- </script>
14
-
15
- <script type="text/javascript" charset="utf-8" src="./js/jquery.js"></script>
16
- <script type="text/javascript" charset="utf-8" src="./js/navigation.js"></script>
17
- <script type="text/javascript" charset="utf-8" src="./js/search_index.js"></script>
18
- <script type="text/javascript" charset="utf-8" src="./js/search.js"></script>
19
- <script type="text/javascript" charset="utf-8" src="./js/searcher.js"></script>
20
- <script type="text/javascript" charset="utf-8" src="./js/darkfish.js"></script>
21
-
22
-
23
- <body id="top" class="class">
24
- <nav id="metadata">
25
- <nav id="home-section" class="section">
26
- <h3 class="section-header">
27
- <a href="./index.html">Home</a>
28
- <a href="./table_of_contents.html#classes">Classes</a>
29
- <a href="./table_of_contents.html#methods">Methods</a>
30
- </h3>
31
- </nav>
32
-
33
-
34
- <nav id="search-section" class="section project-section" class="initially-hidden">
35
- <form action="#" method="get" accept-charset="utf-8">
36
- <h3 class="section-header">
37
- <input type="text" name="search" placeholder="Search" id="search-field"
38
- title="Type to search, Up and Down to navigate, Enter to load">
39
- </h3>
40
- </form>
41
-
42
- <ul id="search-results" class="initially-hidden"></ul>
43
- </nav>
44
-
45
-
46
- <div id="file-metadata">
47
- <nav id="file-list-section" class="section">
48
- <h3 class="section-header">Defined In</h3>
49
- <ul>
50
- <li>example/transformations/email_suffix.rb
51
- </ul>
52
- </nav>
53
-
54
-
55
- </div>
56
-
57
- <div id="class-metadata">
58
-
59
- <nav id="parent-class-section" class="section">
60
- <h3 class="section-header">Parent</h3>
61
-
62
- <p class="link"><a href="Object.html">Object</a>
63
-
64
- </nav>
65
-
66
-
67
- <!-- Method Quickref -->
68
- <nav id="method-list-section" class="section">
69
- <h3 class="section-header">Methods</h3>
70
-
71
- <ul class="link-list">
72
-
73
- <li><a href="#method-i-do-21">#do!</a>
74
-
75
- </ul>
76
- </nav>
77
-
78
- </div>
79
-
80
- <div id="project-metadata">
81
- <nav id="fileindex-section" class="section project-section">
82
- <h3 class="section-header">Pages</h3>
83
-
84
- <ul>
85
-
86
- <li class="file"><a href="./Gemfile.html">Gemfile</a>
87
-
88
- <li class="file"><a href="./Rakefile.html">Rakefile</a>
89
-
90
- <li class="file"><a href="./example/Gemfile.html">Gemfile</a>
91
-
92
- <li class="file"><a href="./spec/pid/pidfile.html">pidfile</a>
93
-
94
- </ul>
95
- </nav>
96
-
97
- <nav id="classindex-section" class="section project-section">
98
- <h3 class="section-header">Class and Module Index</h3>
99
-
100
- <ul class="link-list">
101
-
102
- <li><a href="./Forklift.html">Forklift</a>
103
-
104
- <li><a href="./Forklift/Base.html">Forklift::Base</a>
105
-
106
- <li><a href="./Forklift/Base/Connection.html">Forklift::Base::Connection</a>
107
-
108
- <li><a href="./Forklift/Base/Logger.html">Forklift::Base::Logger</a>
109
-
110
- <li><a href="./Forklift/Base/Mailer.html">Forklift::Base::Mailer</a>
111
-
112
- <li><a href="./Forklift/Base/Mailer/ERBBinding.html">Forklift::Base::Mailer::ERBBinding</a>
113
-
114
- <li><a href="./Forklift/Base/Pid.html">Forklift::Base::Pid</a>
115
-
116
- <li><a href="./Forklift/Base/Utils.html">Forklift::Base::Utils</a>
117
-
118
- <li><a href="./Forklift/Connection.html">Forklift::Connection</a>
119
-
120
- <li><a href="./Forklift/Connection/Elasticsearch.html">Forklift::Connection::Elasticsearch</a>
121
-
122
- <li><a href="./Forklift/Connection/Mysql.html">Forklift::Connection::Mysql</a>
123
-
124
- <li><a href="./Forklift/Patterns.html">Forklift::Patterns</a>
125
-
126
- <li><a href="./Forklift/Patterns/Elasticsearch.html">Forklift::Patterns::Elasticsearch</a>
127
-
128
- <li><a href="./Forklift/Patterns/Mysql.html">Forklift::Patterns::Mysql</a>
129
-
130
- <li><a href="./Forklift/Plan.html">Forklift::Plan</a>
131
-
132
- <li><a href="./EmailSuffix.html">EmailSuffix</a>
133
-
134
- <li><a href="./Object.html">Object</a>
135
-
136
- <li><a href="./SpecClient.html">SpecClient</a>
137
-
138
- <li><a href="./SpecPlan.html">SpecPlan</a>
139
-
140
- <li><a href="./SpecSeeds.html">SpecSeeds</a>
141
-
142
- </ul>
143
- </nav>
144
-
145
- </div>
146
- </nav>
147
-
148
- <div id="documentation">
149
- <h1 class="class">class EmailSuffix</h1>
150
-
151
- <div id="description" class="description">
152
-
153
- </div><!-- description -->
154
-
155
-
156
-
157
-
158
- <section id="5Buntitled-5D" class="documentation-section">
159
-
160
-
161
-
162
-
163
-
164
-
165
-
166
-
167
- <!-- Methods -->
168
-
169
- <section id="public-instance-5Buntitled-5D-method-details" class="method-section section">
170
- <h3 class="section-header">Public Instance Methods</h3>
171
-
172
-
173
- <div id="method-i-do-21" class="method-detail ">
174
-
175
- <div class="method-heading">
176
- <span class="method-name">do!</span><span
177
- class="method-args">(connection, forklift)</span>
178
- <span class="method-click-advice">click to toggle source</span>
179
- </div>
180
-
181
-
182
- <div class="method-description">
183
-
184
-
185
-
186
-
187
-
188
- <div class="method-source-code" id="do-21-source">
189
- <pre><span class="ruby-comment"># File example/transformations/email_suffix.rb, line 3</span>
190
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">do!</span>(<span class="ruby-identifier">connection</span>, <span class="ruby-identifier">forklift</span>)
191
- <span class="ruby-identifier">forklift</span>.<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">log</span> <span class="ruby-string">&quot;collecting email suffixes...&quot;</span>
192
-
193
- <span class="ruby-identifier">suffixes</span> = {}
194
- <span class="ruby-identifier">connection</span>.<span class="ruby-identifier">read</span>(<span class="ruby-string">&quot;select email from users&quot;</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
195
- <span class="ruby-identifier">data</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">row</span><span class="ruby-operator">|</span>
196
- <span class="ruby-identifier">part</span> = <span class="ruby-identifier">row</span>[<span class="ruby-value">:email</span>].<span class="ruby-identifier">split</span>(<span class="ruby-string">'@'</span>).<span class="ruby-identifier">last</span>
197
- <span class="ruby-identifier">suffixes</span>[<span class="ruby-identifier">part</span>] = <span class="ruby-value">0</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">suffixes</span>[<span class="ruby-identifier">part</span>].<span class="ruby-identifier">nil?</span>
198
- <span class="ruby-identifier">suffixes</span>[<span class="ruby-identifier">part</span>] = <span class="ruby-identifier">suffixes</span>[<span class="ruby-identifier">part</span>] <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
199
- <span class="ruby-keyword">end</span>
200
- }
201
-
202
- <span class="ruby-identifier">suffixes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">suffix</span>, <span class="ruby-identifier">count</span><span class="ruby-operator">|</span>
203
- <span class="ruby-identifier">forklift</span>.<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">log</span> <span class="ruby-node">&quot; &gt; #{suffix}: #{count}&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">count</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">5</span>
204
- <span class="ruby-keyword">end</span>
205
- <span class="ruby-keyword">end</span></pre>
206
- </div><!-- do-21-source -->
207
-
208
- </div>
209
-
210
-
211
-
212
-
213
- </div><!-- do-21-method -->
214
-
215
-
216
- </section><!-- public-instance-method-details -->
217
-
218
- </section><!-- 5Buntitled-5D -->
219
-
220
- </div><!-- documentation -->
221
-
222
-
223
- <footer id="validator-badges">
224
- <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
225
- <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.2.
226
- <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
227
- </footer>
228
-