stockboy 0.5.0

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 (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