stockboy 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +5 -0
  4. data/.yardopts +7 -0
  5. data/CHANGELOG.md +24 -0
  6. data/Gemfile +12 -0
  7. data/Guardfile +10 -0
  8. data/LICENSE +21 -0
  9. data/README.md +293 -0
  10. data/Rakefile +30 -0
  11. data/lib/stockboy.rb +80 -0
  12. data/lib/stockboy/attribute.rb +11 -0
  13. data/lib/stockboy/attribute_map.rb +74 -0
  14. data/lib/stockboy/candidate_record.rb +130 -0
  15. data/lib/stockboy/configuration.rb +62 -0
  16. data/lib/stockboy/configurator.rb +176 -0
  17. data/lib/stockboy/dsl.rb +68 -0
  18. data/lib/stockboy/exceptions.rb +3 -0
  19. data/lib/stockboy/filter.rb +58 -0
  20. data/lib/stockboy/filter_chain.rb +41 -0
  21. data/lib/stockboy/filters.rb +11 -0
  22. data/lib/stockboy/filters/missing_email.rb +37 -0
  23. data/lib/stockboy/job.rb +241 -0
  24. data/lib/stockboy/mapped_record.rb +59 -0
  25. data/lib/stockboy/provider.rb +238 -0
  26. data/lib/stockboy/providers.rb +11 -0
  27. data/lib/stockboy/providers/file.rb +135 -0
  28. data/lib/stockboy/providers/ftp.rb +205 -0
  29. data/lib/stockboy/providers/http.rb +123 -0
  30. data/lib/stockboy/providers/imap.rb +290 -0
  31. data/lib/stockboy/providers/soap.rb +120 -0
  32. data/lib/stockboy/railtie.rb +28 -0
  33. data/lib/stockboy/reader.rb +59 -0
  34. data/lib/stockboy/readers.rb +11 -0
  35. data/lib/stockboy/readers/csv.rb +115 -0
  36. data/lib/stockboy/readers/fixed_width.rb +121 -0
  37. data/lib/stockboy/readers/spreadsheet.rb +144 -0
  38. data/lib/stockboy/readers/xml.rb +155 -0
  39. data/lib/stockboy/registry.rb +42 -0
  40. data/lib/stockboy/source_record.rb +43 -0
  41. data/lib/stockboy/string_pool.rb +35 -0
  42. data/lib/stockboy/template_file.rb +44 -0
  43. data/lib/stockboy/translations.rb +70 -0
  44. data/lib/stockboy/translations/boolean.rb +58 -0
  45. data/lib/stockboy/translations/date.rb +41 -0
  46. data/lib/stockboy/translations/decimal.rb +33 -0
  47. data/lib/stockboy/translations/default_empty_string.rb +38 -0
  48. data/lib/stockboy/translations/default_false.rb +41 -0
  49. data/lib/stockboy/translations/default_nil.rb +38 -0
  50. data/lib/stockboy/translations/default_true.rb +41 -0
  51. data/lib/stockboy/translations/default_zero.rb +41 -0
  52. data/lib/stockboy/translations/integer.rb +33 -0
  53. data/lib/stockboy/translations/string.rb +33 -0
  54. data/lib/stockboy/translations/time.rb +41 -0
  55. data/lib/stockboy/translations/uk_date.rb +51 -0
  56. data/lib/stockboy/translations/us_date.rb +51 -0
  57. data/lib/stockboy/translator.rb +66 -0
  58. data/lib/stockboy/version.rb +3 -0
  59. data/spec/fixtures/.gitkeep +0 -0
  60. data/spec/fixtures/files/a_garbage.csv +1 -0
  61. data/spec/fixtures/files/test_data-20120101.csv +1 -0
  62. data/spec/fixtures/files/test_data-20120202.csv +1 -0
  63. data/spec/fixtures/files/z_garbage.csv +1 -0
  64. data/spec/fixtures/jobs/test_job.rb +1 -0
  65. data/spec/fixtures/soap/get_list/fault.xml +8 -0
  66. data/spec/fixtures/soap/get_list/success.xml +18 -0
  67. data/spec/fixtures/spreadsheets/test_data.xls +0 -0
  68. data/spec/fixtures/spreadsheets/test_row_options.xls +0 -0
  69. data/spec/fixtures/xml/body.xml +14 -0
  70. data/spec/spec_helper.rb +28 -0
  71. data/spec/stockboy/attribute_map_spec.rb +59 -0
  72. data/spec/stockboy/attribute_spec.rb +11 -0
  73. data/spec/stockboy/candidate_record_spec.rb +150 -0
  74. data/spec/stockboy/configuration_spec.rb +28 -0
  75. data/spec/stockboy/configurator_spec.rb +127 -0
  76. data/spec/stockboy/filter_chain_spec.rb +40 -0
  77. data/spec/stockboy/filter_spec.rb +41 -0
  78. data/spec/stockboy/filters/missing_email_spec.rb +26 -0
  79. data/spec/stockboy/filters_spec.rb +38 -0
  80. data/spec/stockboy/job_spec.rb +238 -0
  81. data/spec/stockboy/mapped_record_spec.rb +30 -0
  82. data/spec/stockboy/provider_spec.rb +34 -0
  83. data/spec/stockboy/providers/file_spec.rb +116 -0
  84. data/spec/stockboy/providers/ftp_spec.rb +143 -0
  85. data/spec/stockboy/providers/http_spec.rb +94 -0
  86. data/spec/stockboy/providers/imap_spec.rb +76 -0
  87. data/spec/stockboy/providers/soap_spec.rb +107 -0
  88. data/spec/stockboy/providers_spec.rb +38 -0
  89. data/spec/stockboy/readers/csv_spec.rb +68 -0
  90. data/spec/stockboy/readers/fixed_width_spec.rb +52 -0
  91. data/spec/stockboy/readers/spreadsheet_spec.rb +121 -0
  92. data/spec/stockboy/readers/xml_spec.rb +94 -0
  93. data/spec/stockboy/readers_spec.rb +30 -0
  94. data/spec/stockboy/source_record_spec.rb +19 -0
  95. data/spec/stockboy/template_file_spec.rb +30 -0
  96. data/spec/stockboy/translations/boolean_spec.rb +48 -0
  97. data/spec/stockboy/translations/date_spec.rb +38 -0
  98. data/spec/stockboy/translations/decimal_spec.rb +23 -0
  99. data/spec/stockboy/translations/default_empty_string_spec.rb +32 -0
  100. data/spec/stockboy/translations/default_false_spec.rb +25 -0
  101. data/spec/stockboy/translations/default_nil_spec.rb +32 -0
  102. data/spec/stockboy/translations/default_true_spec.rb +25 -0
  103. data/spec/stockboy/translations/default_zero_spec.rb +32 -0
  104. data/spec/stockboy/translations/integer_spec.rb +22 -0
  105. data/spec/stockboy/translations/string_spec.rb +22 -0
  106. data/spec/stockboy/translations/time_spec.rb +27 -0
  107. data/spec/stockboy/translations/uk_date_spec.rb +37 -0
  108. data/spec/stockboy/translations/us_date_spec.rb +37 -0
  109. data/spec/stockboy/translations_spec.rb +55 -0
  110. data/spec/stockboy/translator_spec.rb +27 -0
  111. data/stockboy.gemspec +32 -0
  112. metadata +305 -0
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+ require 'stockboy/translator'
3
+
4
+ MyTranslator = Class.new(Stockboy::Translator)
5
+
6
+ module Stockboy
7
+ describe Translator do
8
+
9
+ describe "template methods" do
10
+ subject { Class.new(Stockboy::Translator).new("_") }
11
+ it "raise error for unimplemented #translate" do
12
+ expect { subject.send :translate, "_" }.to raise_error(NoMethodError)
13
+ end
14
+ end
15
+
16
+ describe "#inspect" do
17
+ it "names its field key" do
18
+ str = Class.new(Stockboy::Translator).new(:date).inspect
19
+ str.should == "#<Stockboy::Translator (date)>"
20
+
21
+ str = MyTranslator.new(:date).inspect
22
+ str.should == "#<MyTranslator (date)>"
23
+ end
24
+ end
25
+
26
+ end
27
+ end
@@ -0,0 +1,32 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "stockboy/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "stockboy"
7
+ s.version = Stockboy::VERSION
8
+ s.authors = ["Andrew Vit"]
9
+ s.email = ["andrew@avit.ca"]
10
+ s.homepage = ""
11
+ s.summary = %q{Multi-source data normalization library}
12
+ s.description = %q{Supports importing data over various transports with key-value remapping & normalization}
13
+
14
+ s.rubyforge_project = "stockboy"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.has_rdoc = false
22
+
23
+ s.add_development_dependency "rake"
24
+ s.add_development_dependency "rspec"
25
+ # s.add_development_dependency "vcr"
26
+
27
+ s.add_runtime_dependency "roo", ">= 1.12.2"
28
+ s.add_runtime_dependency "savon", ">= 2.3.0"
29
+ s.add_runtime_dependency "httpi"
30
+ s.add_runtime_dependency "mail"
31
+ s.add_runtime_dependency "activemodel", ">= 3.0"
32
+ end
metadata ADDED
@@ -0,0 +1,305 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: stockboy
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.0
5
+ platform: ruby
6
+ authors:
7
+ - Andrew Vit
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-12-03 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: roo
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: 1.12.2
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.12.2
55
+ - !ruby/object:Gem::Dependency
56
+ name: savon
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 2.3.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: 2.3.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: httpi
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: mail
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: activemodel
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '3.0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '3.0'
111
+ description: Supports importing data over various transports with key-value remapping
112
+ & normalization
113
+ email:
114
+ - andrew@avit.ca
115
+ executables: []
116
+ extensions: []
117
+ extra_rdoc_files: []
118
+ files:
119
+ - .gitignore
120
+ - .rspec
121
+ - .yardopts
122
+ - CHANGELOG.md
123
+ - Gemfile
124
+ - Guardfile
125
+ - LICENSE
126
+ - README.md
127
+ - Rakefile
128
+ - lib/stockboy.rb
129
+ - lib/stockboy/attribute.rb
130
+ - lib/stockboy/attribute_map.rb
131
+ - lib/stockboy/candidate_record.rb
132
+ - lib/stockboy/configuration.rb
133
+ - lib/stockboy/configurator.rb
134
+ - lib/stockboy/dsl.rb
135
+ - lib/stockboy/exceptions.rb
136
+ - lib/stockboy/filter.rb
137
+ - lib/stockboy/filter_chain.rb
138
+ - lib/stockboy/filters.rb
139
+ - lib/stockboy/filters/missing_email.rb
140
+ - lib/stockboy/job.rb
141
+ - lib/stockboy/mapped_record.rb
142
+ - lib/stockboy/provider.rb
143
+ - lib/stockboy/providers.rb
144
+ - lib/stockboy/providers/file.rb
145
+ - lib/stockboy/providers/ftp.rb
146
+ - lib/stockboy/providers/http.rb
147
+ - lib/stockboy/providers/imap.rb
148
+ - lib/stockboy/providers/soap.rb
149
+ - lib/stockboy/railtie.rb
150
+ - lib/stockboy/reader.rb
151
+ - lib/stockboy/readers.rb
152
+ - lib/stockboy/readers/csv.rb
153
+ - lib/stockboy/readers/fixed_width.rb
154
+ - lib/stockboy/readers/spreadsheet.rb
155
+ - lib/stockboy/readers/xml.rb
156
+ - lib/stockboy/registry.rb
157
+ - lib/stockboy/source_record.rb
158
+ - lib/stockboy/string_pool.rb
159
+ - lib/stockboy/template_file.rb
160
+ - lib/stockboy/translations.rb
161
+ - lib/stockboy/translations/boolean.rb
162
+ - lib/stockboy/translations/date.rb
163
+ - lib/stockboy/translations/decimal.rb
164
+ - lib/stockboy/translations/default_empty_string.rb
165
+ - lib/stockboy/translations/default_false.rb
166
+ - lib/stockboy/translations/default_nil.rb
167
+ - lib/stockboy/translations/default_true.rb
168
+ - lib/stockboy/translations/default_zero.rb
169
+ - lib/stockboy/translations/integer.rb
170
+ - lib/stockboy/translations/string.rb
171
+ - lib/stockboy/translations/time.rb
172
+ - lib/stockboy/translations/uk_date.rb
173
+ - lib/stockboy/translations/us_date.rb
174
+ - lib/stockboy/translator.rb
175
+ - lib/stockboy/version.rb
176
+ - spec/fixtures/.gitkeep
177
+ - spec/fixtures/files/a_garbage.csv
178
+ - spec/fixtures/files/test_data-20120101.csv
179
+ - spec/fixtures/files/test_data-20120202.csv
180
+ - spec/fixtures/files/z_garbage.csv
181
+ - spec/fixtures/jobs/test_job.rb
182
+ - spec/fixtures/soap/get_list/fault.xml
183
+ - spec/fixtures/soap/get_list/success.xml
184
+ - spec/fixtures/spreadsheets/test_data.xls
185
+ - spec/fixtures/spreadsheets/test_row_options.xls
186
+ - spec/fixtures/xml/body.xml
187
+ - spec/spec_helper.rb
188
+ - spec/stockboy/attribute_map_spec.rb
189
+ - spec/stockboy/attribute_spec.rb
190
+ - spec/stockboy/candidate_record_spec.rb
191
+ - spec/stockboy/configuration_spec.rb
192
+ - spec/stockboy/configurator_spec.rb
193
+ - spec/stockboy/filter_chain_spec.rb
194
+ - spec/stockboy/filter_spec.rb
195
+ - spec/stockboy/filters/missing_email_spec.rb
196
+ - spec/stockboy/filters_spec.rb
197
+ - spec/stockboy/job_spec.rb
198
+ - spec/stockboy/mapped_record_spec.rb
199
+ - spec/stockboy/provider_spec.rb
200
+ - spec/stockboy/providers/file_spec.rb
201
+ - spec/stockboy/providers/ftp_spec.rb
202
+ - spec/stockboy/providers/http_spec.rb
203
+ - spec/stockboy/providers/imap_spec.rb
204
+ - spec/stockboy/providers/soap_spec.rb
205
+ - spec/stockboy/providers_spec.rb
206
+ - spec/stockboy/readers/csv_spec.rb
207
+ - spec/stockboy/readers/fixed_width_spec.rb
208
+ - spec/stockboy/readers/spreadsheet_spec.rb
209
+ - spec/stockboy/readers/xml_spec.rb
210
+ - spec/stockboy/readers_spec.rb
211
+ - spec/stockboy/source_record_spec.rb
212
+ - spec/stockboy/template_file_spec.rb
213
+ - spec/stockboy/translations/boolean_spec.rb
214
+ - spec/stockboy/translations/date_spec.rb
215
+ - spec/stockboy/translations/decimal_spec.rb
216
+ - spec/stockboy/translations/default_empty_string_spec.rb
217
+ - spec/stockboy/translations/default_false_spec.rb
218
+ - spec/stockboy/translations/default_nil_spec.rb
219
+ - spec/stockboy/translations/default_true_spec.rb
220
+ - spec/stockboy/translations/default_zero_spec.rb
221
+ - spec/stockboy/translations/integer_spec.rb
222
+ - spec/stockboy/translations/string_spec.rb
223
+ - spec/stockboy/translations/time_spec.rb
224
+ - spec/stockboy/translations/uk_date_spec.rb
225
+ - spec/stockboy/translations/us_date_spec.rb
226
+ - spec/stockboy/translations_spec.rb
227
+ - spec/stockboy/translator_spec.rb
228
+ - stockboy.gemspec
229
+ homepage: ''
230
+ licenses: []
231
+ metadata: {}
232
+ post_install_message:
233
+ rdoc_options: []
234
+ require_paths:
235
+ - lib
236
+ required_ruby_version: !ruby/object:Gem::Requirement
237
+ requirements:
238
+ - - '>='
239
+ - !ruby/object:Gem::Version
240
+ version: '0'
241
+ required_rubygems_version: !ruby/object:Gem::Requirement
242
+ requirements:
243
+ - - '>='
244
+ - !ruby/object:Gem::Version
245
+ version: '0'
246
+ requirements: []
247
+ rubyforge_project: stockboy
248
+ rubygems_version: 2.0.6
249
+ signing_key:
250
+ specification_version: 4
251
+ summary: Multi-source data normalization library
252
+ test_files:
253
+ - spec/fixtures/.gitkeep
254
+ - spec/fixtures/files/a_garbage.csv
255
+ - spec/fixtures/files/test_data-20120101.csv
256
+ - spec/fixtures/files/test_data-20120202.csv
257
+ - spec/fixtures/files/z_garbage.csv
258
+ - spec/fixtures/jobs/test_job.rb
259
+ - spec/fixtures/soap/get_list/fault.xml
260
+ - spec/fixtures/soap/get_list/success.xml
261
+ - spec/fixtures/spreadsheets/test_data.xls
262
+ - spec/fixtures/spreadsheets/test_row_options.xls
263
+ - spec/fixtures/xml/body.xml
264
+ - spec/spec_helper.rb
265
+ - spec/stockboy/attribute_map_spec.rb
266
+ - spec/stockboy/attribute_spec.rb
267
+ - spec/stockboy/candidate_record_spec.rb
268
+ - spec/stockboy/configuration_spec.rb
269
+ - spec/stockboy/configurator_spec.rb
270
+ - spec/stockboy/filter_chain_spec.rb
271
+ - spec/stockboy/filter_spec.rb
272
+ - spec/stockboy/filters/missing_email_spec.rb
273
+ - spec/stockboy/filters_spec.rb
274
+ - spec/stockboy/job_spec.rb
275
+ - spec/stockboy/mapped_record_spec.rb
276
+ - spec/stockboy/provider_spec.rb
277
+ - spec/stockboy/providers/file_spec.rb
278
+ - spec/stockboy/providers/ftp_spec.rb
279
+ - spec/stockboy/providers/http_spec.rb
280
+ - spec/stockboy/providers/imap_spec.rb
281
+ - spec/stockboy/providers/soap_spec.rb
282
+ - spec/stockboy/providers_spec.rb
283
+ - spec/stockboy/readers/csv_spec.rb
284
+ - spec/stockboy/readers/fixed_width_spec.rb
285
+ - spec/stockboy/readers/spreadsheet_spec.rb
286
+ - spec/stockboy/readers/xml_spec.rb
287
+ - spec/stockboy/readers_spec.rb
288
+ - spec/stockboy/source_record_spec.rb
289
+ - spec/stockboy/template_file_spec.rb
290
+ - spec/stockboy/translations/boolean_spec.rb
291
+ - spec/stockboy/translations/date_spec.rb
292
+ - spec/stockboy/translations/decimal_spec.rb
293
+ - spec/stockboy/translations/default_empty_string_spec.rb
294
+ - spec/stockboy/translations/default_false_spec.rb
295
+ - spec/stockboy/translations/default_nil_spec.rb
296
+ - spec/stockboy/translations/default_true_spec.rb
297
+ - spec/stockboy/translations/default_zero_spec.rb
298
+ - spec/stockboy/translations/integer_spec.rb
299
+ - spec/stockboy/translations/string_spec.rb
300
+ - spec/stockboy/translations/time_spec.rb
301
+ - spec/stockboy/translations/uk_date_spec.rb
302
+ - spec/stockboy/translations/us_date_spec.rb
303
+ - spec/stockboy/translations_spec.rb
304
+ - spec/stockboy/translator_spec.rb
305
+ has_rdoc: false