wjordan213-csvlint 0.2.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.gitattributes +2 -0
  4. data/.gitignore +28 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +32 -0
  7. data/CHANGELOG.md +361 -0
  8. data/Gemfile +7 -0
  9. data/LICENSE.md +22 -0
  10. data/README.md +328 -0
  11. data/Rakefile +17 -0
  12. data/bin/create_schema +32 -0
  13. data/bin/csvlint +10 -0
  14. data/features/check_format.feature +46 -0
  15. data/features/cli.feature +210 -0
  16. data/features/csv_options.feature +35 -0
  17. data/features/csvupload.feature +145 -0
  18. data/features/csvw_schema_validation.feature +127 -0
  19. data/features/fixtures/cr-line-endings.csv +0 -0
  20. data/features/fixtures/crlf-line-endings.csv +0 -0
  21. data/features/fixtures/inconsistent-line-endings-unquoted.csv +0 -0
  22. data/features/fixtures/inconsistent-line-endings.csv +0 -0
  23. data/features/fixtures/invalid-byte-sequence.csv +0 -0
  24. data/features/fixtures/invalid_many_rows.csv +0 -0
  25. data/features/fixtures/lf-line-endings.csv +0 -0
  26. data/features/fixtures/spreadsheet.xls +0 -0
  27. data/features/fixtures/spreadsheet.xlsx +0 -0
  28. data/features/fixtures/title-row.csv +0 -0
  29. data/features/fixtures/valid.csv +0 -0
  30. data/features/fixtures/valid_many_rows.csv +0 -0
  31. data/features/fixtures/windows-line-endings.csv +0 -0
  32. data/features/information.feature +22 -0
  33. data/features/parse_csv.feature +90 -0
  34. data/features/schema_validation.feature +105 -0
  35. data/features/sources.feature +17 -0
  36. data/features/step_definitions/cli_steps.rb +11 -0
  37. data/features/step_definitions/csv_options_steps.rb +24 -0
  38. data/features/step_definitions/information_steps.rb +13 -0
  39. data/features/step_definitions/parse_csv_steps.rb +42 -0
  40. data/features/step_definitions/schema_validation_steps.rb +33 -0
  41. data/features/step_definitions/sources_steps.rb +7 -0
  42. data/features/step_definitions/validation_errors_steps.rb +90 -0
  43. data/features/step_definitions/validation_info_steps.rb +22 -0
  44. data/features/step_definitions/validation_warnings_steps.rb +60 -0
  45. data/features/support/aruba.rb +56 -0
  46. data/features/support/env.rb +26 -0
  47. data/features/support/load_tests.rb +114 -0
  48. data/features/support/webmock.rb +1 -0
  49. data/features/validation_errors.feature +147 -0
  50. data/features/validation_info.feature +16 -0
  51. data/features/validation_warnings.feature +86 -0
  52. data/lib/csvlint.rb +27 -0
  53. data/lib/csvlint/cli.rb +165 -0
  54. data/lib/csvlint/csvw/column.rb +359 -0
  55. data/lib/csvlint/csvw/date_format.rb +182 -0
  56. data/lib/csvlint/csvw/metadata_error.rb +13 -0
  57. data/lib/csvlint/csvw/number_format.rb +211 -0
  58. data/lib/csvlint/csvw/property_checker.rb +761 -0
  59. data/lib/csvlint/csvw/table.rb +204 -0
  60. data/lib/csvlint/csvw/table_group.rb +165 -0
  61. data/lib/csvlint/error_collector.rb +27 -0
  62. data/lib/csvlint/error_message.rb +15 -0
  63. data/lib/csvlint/field.rb +196 -0
  64. data/lib/csvlint/schema.rb +92 -0
  65. data/lib/csvlint/validate.rb +599 -0
  66. data/lib/csvlint/version.rb +3 -0
  67. data/spec/csvw/column_spec.rb +112 -0
  68. data/spec/csvw/date_format_spec.rb +49 -0
  69. data/spec/csvw/number_format_spec.rb +417 -0
  70. data/spec/csvw/table_group_spec.rb +143 -0
  71. data/spec/csvw/table_spec.rb +90 -0
  72. data/spec/field_spec.rb +252 -0
  73. data/spec/schema_spec.rb +211 -0
  74. data/spec/spec_helper.rb +17 -0
  75. data/spec/validator_spec.rb +619 -0
  76. data/wjordan213_csvlint.gemspec +46 -0
  77. metadata +490 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e57f8fff77c0d82a3b8c4b011f501895c9b95dd1
4
+ data.tar.gz: 4dbdb7315ec6c3d41f8e7d20352fdcff6c2f56b4
5
+ SHA512:
6
+ metadata.gz: c017e828359f2ecc1478b710e11509f5125b388e875110ac61550db443a0a3bc17d6c4ce365ea9891f6f1077a5be56d26982a7cf6196ba5ae9f2bf1a3c35a96c
7
+ data.tar.gz: 23ae3c1c7f9774ac9a300db52387a70dfa1c57a003f68eb91e336efa13f5d2de7cba9a1b5fe52f9cde727378775e998553b3344f1ba744f2b095105d2bedfe00
data/.coveralls.yml ADDED
@@ -0,0 +1 @@
1
+ service_name: travis-ci
data/.gitattributes ADDED
@@ -0,0 +1,2 @@
1
+ # Don't fuck with my CSV files
2
+ *.csv binary
data/.gitignore ADDED
@@ -0,0 +1,28 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ coverage/
19
+ /.rspec
20
+
21
+ .idea
22
+ .DS_Store
23
+ features/csvw_validation_tests.feature
24
+ features/fixtures/csvw
25
+
26
+ bin/run-csvw-tests
27
+
28
+ features/csvw_json_transformation_tests.feature
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.1.4
data/.travis.yml ADDED
@@ -0,0 +1,32 @@
1
+ rvm:
2
+ - 2.0.0
3
+ - 2.1.0
4
+ - 2.2.0
5
+ sudo: false
6
+ cache: bundler
7
+ notifications:
8
+ irc:
9
+ channels:
10
+ - irc.freenode.net#theodi
11
+ template:
12
+ - '%{repository} %{branch} - %{message} %{build_url}'
13
+ on_success: change
14
+ on_failure: always
15
+ deploy:
16
+ provider: rubygems
17
+ api_key:
18
+ secure: fjnPS61/skQ1PsRJu1SYWIct0vjdkTyQhj0ria9zfcJfbWbfiHnpehVh1ege3sTUkDSTvoOFT35jzEeozvtKZOlAWMU5QbL8LTXu+JSp9olOdSuGeWRWVuQT3NLgRJW0+2c7N66piZvnRUUTyt2P8VIR8c/Ltuhc32bUGL7X6Gw=
19
+ gem: csvlint
20
+ on:
21
+ tags: true
22
+ repo: theodi/csvlint.rb
23
+ all_branches: true
24
+ after_success:
25
+ - export GEM_VERSION=`ruby -e "puts Gem::Specification.load(Dir['*.gemspec'].first).version.to_s"`
26
+ - '[ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && curl
27
+ -v -X POST -d ''{"ref":"refs/tags/''$GEM_VERSION''","sha":"''$TRAVIS_COMMIT''"}'' --header
28
+ "Content-Type:application/json" -u $GITHUB_USER:$GITHUB_PASSWORD "https://api.github.com/repos/$TRAVIS_REPO_SLUG/git/refs"'
29
+ env:
30
+ global:
31
+ - secure: hM8Pv/EAZoB4fGGEUwKQQ/2+mgKbUac+PH2cwud25l2MJ64eoKEMZzfy4TF6+XMIzXhlWpsg4s51y6K3+W8pUyRAuwo2MsN5Iee7HnLz+LlYTiT0//iQdAmxQ0JlOyh8vd2SEFBcVfwpp/iZFIHAfbBO73ZDXhtGMEieMk025I0=
32
+ - secure: hsKbZ0kVKVU/e8oVCPJpRmBxbbieN2tVbyjdhJo/UYchcyLWeGAmAj/ApUDL4SyR0HZxpfi+SIsGFNRy5LnrFeCFgY9aZ6u9ma4n0Y2cTElMRt5kvI/c28FehsRjCzAe6W8dxwhJ8wSkvFDNpLml47/iy8bw4a7aUZDdq3OYXck=
data/CHANGELOG.md ADDED
@@ -0,0 +1,361 @@
1
+ # Change Log
2
+
3
+ ## [0.2.5](https://github.com/theodi/csvlint.rb/tree/0.2.5) (2015-11-16)
4
+
5
+ [Full Changelog](https://github.com/theodi/csvlint.rb/compare/0.2.4...0.2.5)
6
+
7
+ **Merged pull requests:**
8
+
9
+ - Use STDIN instead of ARGF [\#169](https://github.com/theodi/csvlint.rb/pull/169) ([pezholio](https://github.com/pezholio))
10
+
11
+ ## [0.2.4](https://github.com/theodi/csvlint.rb/tree/0.2.4) (2015-10-20)
12
+
13
+ [Full Changelog](https://github.com/theodi/csvlint.rb/compare/0.2.3...0.2.4)
14
+
15
+ **Merged pull requests:**
16
+
17
+ - Fixes for CLI [\#164](https://github.com/theodi/csvlint.rb/pull/164) ([pezholio](https://github.com/pezholio))
18
+
19
+ ## [0.2.3](https://github.com/theodi/csvlint.rb/tree/0.2.3) (2015-10-20)
20
+
21
+ [Full Changelog](https://github.com/theodi/csvlint.rb/compare/0.2.2...0.2.3)
22
+
23
+ **Closed issues:**
24
+
25
+ - Include field name with error [\#161](https://github.com/theodi/csvlint.rb/issues/161)
26
+
27
+ - Refactor the binary [\#150](https://github.com/theodi/csvlint.rb/issues/150)
28
+
29
+ **Merged pull requests:**
30
+
31
+ - Refactor CLI [\#163](https://github.com/theodi/csvlint.rb/pull/163) ([pezholio](https://github.com/pezholio))
32
+
33
+ - Update schema file example to clarify type [\#162](https://github.com/theodi/csvlint.rb/pull/162) ([wachunga](https://github.com/wachunga))
34
+
35
+ ## [0.2.2](https://github.com/theodi/csvlint.rb/tree/0.2.2) (2015-10-09)
36
+
37
+ [Full Changelog](https://github.com/theodi/csvlint.rb/compare/0.2.1...0.2.2)
38
+
39
+ **Closed issues:**
40
+
41
+ - Eliminate some date and time formats \(for speed\) [\#105](https://github.com/theodi/csvlint.rb/issues/105)
42
+
43
+ **Merged pull requests:**
44
+
45
+ - Check characters in validate\_line method [\#160](https://github.com/theodi/csvlint.rb/pull/160) ([pezholio](https://github.com/pezholio))
46
+
47
+ - Further optimisations [\#159](https://github.com/theodi/csvlint.rb/pull/159) ([pezholio](https://github.com/pezholio))
48
+
49
+ - More optimizations after \#157 [\#158](https://github.com/theodi/csvlint.rb/pull/158) ([jpmckinney](https://github.com/jpmckinney))
50
+
51
+ - Memoize the result of CSV\#encode\_re [\#157](https://github.com/theodi/csvlint.rb/pull/157) ([jpmckinney](https://github.com/jpmckinney))
52
+
53
+ - Don't pass leading string to parse\_line [\#155](https://github.com/theodi/csvlint.rb/pull/155) ([pezholio](https://github.com/pezholio))
54
+
55
+ ## [0.2.1](https://github.com/theodi/csvlint.rb/tree/0.2.1) (2015-10-07)
56
+
57
+ [Full Changelog](https://github.com/theodi/csvlint.rb/compare/0.2.0...0.2.1)
58
+
59
+ **Implemented enhancements:**
60
+
61
+ - Get total rows number about the CSV file that was validated [\#143](https://github.com/theodi/csvlint.rb/issues/143)
62
+
63
+ **Closed issues:**
64
+
65
+ - Optimization: Stream CSV [\#122](https://github.com/theodi/csvlint.rb/issues/122)
66
+
67
+ **Merged pull requests:**
68
+
69
+ - Add `row\_count` method [\#153](https://github.com/theodi/csvlint.rb/pull/153) ([pezholio](https://github.com/pezholio))
70
+
71
+ - Streaming validation [\#146](https://github.com/theodi/csvlint.rb/pull/146) ([pezholio](https://github.com/pezholio))
72
+
73
+ ## [0.2.0](https://github.com/theodi/csvlint.rb/tree/0.2.0) (2015-10-05)
74
+
75
+ [Full Changelog](https://github.com/theodi/csvlint.rb/compare/0.1.4...0.2.0)
76
+
77
+ **Closed issues:**
78
+
79
+ - CSV on the web support [\#141](https://github.com/theodi/csvlint.rb/issues/141)
80
+
81
+ **Merged pull requests:**
82
+
83
+ - Recover from `ArgumentError`s when attempting to locate a schema and detect bad schema when JSON is malformed [\#152](https://github.com/theodi/csvlint.rb/pull/152) ([pezholio](https://github.com/pezholio))
84
+
85
+ - Catch errors if link headers are don't have particular values [\#151](https://github.com/theodi/csvlint.rb/pull/151) ([pezholio](https://github.com/pezholio))
86
+
87
+ - Rescue excel warning [\#149](https://github.com/theodi/csvlint.rb/pull/149) ([quadrophobiac](https://github.com/quadrophobiac))
88
+
89
+ - CSVW-based validation! [\#142](https://github.com/theodi/csvlint.rb/pull/142) ([JeniT](https://github.com/JeniT))
90
+
91
+ ## [0.1.4](https://github.com/theodi/csvlint.rb/tree/0.1.4) (2015-08-06)
92
+
93
+ [Full Changelog](https://github.com/theodi/csvlint.rb/compare/0.1.3...0.1.4)
94
+
95
+ **Merged pull requests:**
96
+
97
+ - change made to the constraint parameter in order that it is more cons… [\#140](https://github.com/theodi/csvlint.rb/pull/140) ([quadrophobiac](https://github.com/quadrophobiac))
98
+
99
+ ## [0.1.3](https://github.com/theodi/csvlint.rb/tree/0.1.3) (2015-07-24)
100
+
101
+ [Full Changelog](https://github.com/theodi/csvlint.rb/compare/0.1.2...0.1.3)
102
+
103
+ **Merged pull requests:**
104
+
105
+ - Error reporting schema expanded test suite [\#138](https://github.com/theodi/csvlint.rb/pull/138) ([quadrophobiac](https://github.com/quadrophobiac))
106
+
107
+ - Validate header size improvement [\#137](https://github.com/theodi/csvlint.rb/pull/137) ([adamc00](https://github.com/adamc00))
108
+
109
+ - Invalid schema [\#132](https://github.com/theodi/csvlint.rb/pull/132) ([bcouston](https://github.com/bcouston))
110
+
111
+ ## [0.1.2](https://github.com/theodi/csvlint.rb/tree/0.1.2) (2015-07-15)
112
+
113
+ [Full Changelog](https://github.com/theodi/csvlint.rb/compare/0.1.1...0.1.2)
114
+
115
+ **Closed issues:**
116
+
117
+ - When an encoding error is thrown the line content is put into the column field in the error object [\#131](https://github.com/theodi/csvlint.rb/issues/131)
118
+
119
+ **Merged pull requests:**
120
+
121
+ - Catch invalid URIs [\#133](https://github.com/theodi/csvlint.rb/pull/133) ([pezholio](https://github.com/pezholio))
122
+
123
+ - Emit a warning when the CSV header does not match the supplied schema [\#127](https://github.com/theodi/csvlint.rb/pull/127) ([adamc00](https://github.com/adamc00))
124
+
125
+ ## [0.1.1](https://github.com/theodi/csvlint.rb/tree/0.1.1) (2015-07-13)
126
+
127
+ [Full Changelog](https://github.com/theodi/csvlint.rb/compare/0.1.0...0.1.1)
128
+
129
+ **Closed issues:**
130
+
131
+ - Add Command Line Support [\#128](https://github.com/theodi/csvlint.rb/issues/128)
132
+
133
+ - BUG: Incorrect inconsistent\_values error on numeric columns [\#106](https://github.com/theodi/csvlint.rb/issues/106)
134
+
135
+ **Merged pull requests:**
136
+
137
+ - Fixes line content incorrectly being put into the row column field when there is an encoding error. [\#130](https://github.com/theodi/csvlint.rb/pull/130) ([glacier](https://github.com/glacier))
138
+
139
+ - Add command line help [\#129](https://github.com/theodi/csvlint.rb/pull/129) ([pezholio](https://github.com/pezholio))
140
+
141
+ - Remove stray q character. [\#125](https://github.com/theodi/csvlint.rb/pull/125) ([adamc00](https://github.com/adamc00))
142
+
143
+ - csvlint utility can take arguments to specify a schema and pp errors [\#124](https://github.com/theodi/csvlint.rb/pull/124) ([adamc00](https://github.com/adamc00))
144
+
145
+ - Fixed warning - use expect\( \) rather than .should [\#123](https://github.com/theodi/csvlint.rb/pull/123) ([jezhiggins](https://github.com/jezhiggins))
146
+
147
+ - Fixed spelling mistake [\#121](https://github.com/theodi/csvlint.rb/pull/121) ([jezhiggins](https://github.com/jezhiggins))
148
+
149
+ - Avoid using \#blank? if unnecessary [\#120](https://github.com/theodi/csvlint.rb/pull/120) ([jpmckinney](https://github.com/jpmckinney))
150
+
151
+ - eliminate some date and time formats, related \#105 [\#119](https://github.com/theodi/csvlint.rb/pull/119) ([jpmckinney](https://github.com/jpmckinney))
152
+
153
+ - Match another CSV error about line endings [\#118](https://github.com/theodi/csvlint.rb/pull/118) ([jpmckinney](https://github.com/jpmckinney))
154
+
155
+ - fixed typo mistake in README [\#117](https://github.com/theodi/csvlint.rb/pull/117) ([railsfactory-kumaresan](https://github.com/railsfactory-kumaresan))
156
+
157
+ - Integrate @jpmickinney's build\_formats improvements [\#112](https://github.com/theodi/csvlint.rb/pull/112) ([Floppy](https://github.com/Floppy))
158
+
159
+ - make limit\_lines into a non-dialect option [\#110](https://github.com/theodi/csvlint.rb/pull/110) ([Floppy](https://github.com/Floppy))
160
+
161
+ - fix coveralls stats [\#109](https://github.com/theodi/csvlint.rb/pull/109) ([Floppy](https://github.com/Floppy))
162
+
163
+ - Limit lines [\#101](https://github.com/theodi/csvlint.rb/pull/101) ([Hoedic](https://github.com/Hoedic))
164
+
165
+ ## [0.1.0](https://github.com/theodi/csvlint.rb/tree/0.1.0) (2014-11-27)
166
+
167
+ **Implemented enhancements:**
168
+
169
+ - Blank values shouldn't count as inconsistencies [\#90](https://github.com/theodi/csvlint.rb/issues/90)
170
+
171
+ - Make sure we don't check schema column count and ragged row count together [\#66](https://github.com/theodi/csvlint.rb/issues/66)
172
+
173
+ - Include the failed constraints in error message when doing field validation [\#64](https://github.com/theodi/csvlint.rb/issues/64)
174
+
175
+ - Include the column value in error message when field validation fails [\#63](https://github.com/theodi/csvlint.rb/issues/63)
176
+
177
+ - Expose optional JSON table schema fields [\#55](https://github.com/theodi/csvlint.rb/issues/55)
178
+
179
+ - Ensure header rows are properly handled and validated [\#48](https://github.com/theodi/csvlint.rb/issues/48)
180
+
181
+ - Support zipped CSV? [\#30](https://github.com/theodi/csvlint.rb/issues/30)
182
+
183
+ - Improve feedback on inconsistent values [\#29](https://github.com/theodi/csvlint.rb/issues/29)
184
+
185
+ - Reported error positions are not massively useful [\#15](https://github.com/theodi/csvlint.rb/issues/15)
186
+
187
+ **Fixed bugs:**
188
+
189
+ - undefined method `\[\]' for nil:NilClass from fetch\_error [\#71](https://github.com/theodi/csvlint.rb/issues/71)
190
+
191
+ - Inconsistent column bases [\#69](https://github.com/theodi/csvlint.rb/issues/69)
192
+
193
+ - Improve error handling in Schema loading [\#42](https://github.com/theodi/csvlint.rb/issues/42)
194
+
195
+ - Recover from some line ending problems [\#41](https://github.com/theodi/csvlint.rb/issues/41)
196
+
197
+ - Inconsistent values due to number format differences [\#32](https://github.com/theodi/csvlint.rb/issues/32)
198
+
199
+ - New lines in quoted fields are valid [\#31](https://github.com/theodi/csvlint.rb/issues/31)
200
+
201
+ - Wrongly reporting incorrect file extension [\#23](https://github.com/theodi/csvlint.rb/issues/23)
202
+
203
+ - Incorrect extension reported when URL has query options at the end [\#14](https://github.com/theodi/csvlint.rb/issues/14)
204
+
205
+ **Closed issues:**
206
+
207
+ - Get gem continuously deploying [\#93](https://github.com/theodi/csvlint.rb/issues/93)
208
+
209
+ - Publish on rubygems.org [\#92](https://github.com/theodi/csvlint.rb/issues/92)
210
+
211
+ - Duplicate column names [\#87](https://github.com/theodi/csvlint.rb/issues/87)
212
+
213
+ - Return code is always 0 \(except when it isn't\) [\#85](https://github.com/theodi/csvlint.rb/issues/85)
214
+
215
+ - Can't pipe data to csvlint [\#84](https://github.com/theodi/csvlint.rb/issues/84)
216
+
217
+ - They have some validator running if someone wants to inspect it for "inspiration" [\#27](https://github.com/theodi/csvlint.rb/issues/27)
218
+
219
+ - Allow CSV parsing options to be configured as a parameter [\#6](https://github.com/theodi/csvlint.rb/issues/6)
220
+
221
+ - Use explicit CSV parsing options [\#5](https://github.com/theodi/csvlint.rb/issues/5)
222
+
223
+ - Improving encoding detection [\#2](https://github.com/theodi/csvlint.rb/issues/2)
224
+
225
+ **Merged pull requests:**
226
+
227
+ - Speed up \#build\_formats \(changes its API\) [\#103](https://github.com/theodi/csvlint.rb/pull/103) ([jpmckinney](https://github.com/jpmckinney))
228
+
229
+ - Continuously deploy gem [\#102](https://github.com/theodi/csvlint.rb/pull/102) ([pezholio](https://github.com/pezholio))
230
+
231
+ - Make csvlint way faster [\#99](https://github.com/theodi/csvlint.rb/pull/99) ([jpmckinney](https://github.com/jpmckinney))
232
+
233
+ - Update README.md [\#98](https://github.com/theodi/csvlint.rb/pull/98) ([rmalecky](https://github.com/rmalecky))
234
+
235
+ - Undeclared header error [\#95](https://github.com/theodi/csvlint.rb/pull/95) ([Floppy](https://github.com/Floppy))
236
+
237
+ - Blank values shouldn't count as inconsistencies [\#91](https://github.com/theodi/csvlint.rb/pull/91) ([pezholio](https://github.com/pezholio))
238
+
239
+ - Use `reject` instead of `delete\_if` [\#89](https://github.com/theodi/csvlint.rb/pull/89) ([pezholio](https://github.com/pezholio))
240
+
241
+ - Raise a warning if a title row is found [\#88](https://github.com/theodi/csvlint.rb/pull/88) ([pezholio](https://github.com/pezholio))
242
+
243
+ - Improve executable [\#86](https://github.com/theodi/csvlint.rb/pull/86) ([pezholio](https://github.com/pezholio))
244
+
245
+ - Feature undeclared header [\#83](https://github.com/theodi/csvlint.rb/pull/83) ([ldodds](https://github.com/ldodds))
246
+
247
+ - Support xsd:integer [\#82](https://github.com/theodi/csvlint.rb/pull/82) ([ldodds](https://github.com/ldodds))
248
+
249
+ - Downgrade header errors [\#81](https://github.com/theodi/csvlint.rb/pull/81) ([ldodds](https://github.com/ldodds))
250
+
251
+ - Go home, pry [\#78](https://github.com/theodi/csvlint.rb/pull/78) ([pikesley](https://github.com/pikesley))
252
+
253
+ - Use type validations to check consistency [\#77](https://github.com/theodi/csvlint.rb/pull/77) ([pezholio](https://github.com/pezholio))
254
+
255
+ - Add data accessor [\#76](https://github.com/theodi/csvlint.rb/pull/76) ([Floppy](https://github.com/Floppy))
256
+
257
+ - Add failed constraints to schema errors [\#75](https://github.com/theodi/csvlint.rb/pull/75) ([ldodds](https://github.com/ldodds))
258
+
259
+ - Only perform ragged row check if there's no schema [\#74](https://github.com/theodi/csvlint.rb/pull/74) ([ldodds](https://github.com/ldodds))
260
+
261
+ - Handle tempfiles [\#73](https://github.com/theodi/csvlint.rb/pull/73) ([pezholio](https://github.com/pezholio))
262
+
263
+ - Catch errors if regex doesn't match [\#72](https://github.com/theodi/csvlint.rb/pull/72) ([pezholio](https://github.com/pezholio))
264
+
265
+ - Inconsistent column base [\#70](https://github.com/theodi/csvlint.rb/pull/70) ([ldodds](https://github.com/ldodds))
266
+
267
+ - include column name in :header\_name message [\#68](https://github.com/theodi/csvlint.rb/pull/68) ([Floppy](https://github.com/Floppy))
268
+
269
+ - Record default dialect [\#67](https://github.com/theodi/csvlint.rb/pull/67) ([pezholio](https://github.com/pezholio))
270
+
271
+ - Schema validation message improvements [\#65](https://github.com/theodi/csvlint.rb/pull/65) ([Floppy](https://github.com/Floppy))
272
+
273
+ - Fix ignore empty fields [\#62](https://github.com/theodi/csvlint.rb/pull/62) ([ldodds](https://github.com/ldodds))
274
+
275
+ - Create stub schema from existing CSV file [\#61](https://github.com/theodi/csvlint.rb/pull/61) ([ldodds](https://github.com/ldodds))
276
+
277
+ - Validate dates [\#59](https://github.com/theodi/csvlint.rb/pull/59) ([ldodds](https://github.com/ldodds))
278
+
279
+ - add schema access from validator [\#58](https://github.com/theodi/csvlint.rb/pull/58) ([Floppy](https://github.com/Floppy))
280
+
281
+ - Allow schema and fields to have title and description [\#57](https://github.com/theodi/csvlint.rb/pull/57) ([ldodds](https://github.com/ldodds))
282
+
283
+ - Feature min max ranges [\#56](https://github.com/theodi/csvlint.rb/pull/56) ([ldodds](https://github.com/ldodds))
284
+
285
+ - Check header without schema [\#54](https://github.com/theodi/csvlint.rb/pull/54) ([ldodds](https://github.com/ldodds))
286
+
287
+ - Validate types [\#53](https://github.com/theodi/csvlint.rb/pull/53) ([pikesley](https://github.com/pikesley))
288
+
289
+ - Added open\_uri\_redirections to allow HTTP/HTTPS transfers [\#52](https://github.com/theodi/csvlint.rb/pull/52) ([ldodds](https://github.com/ldodds))
290
+
291
+ - Added docs on CSV options and header error/warning messages [\#51](https://github.com/theodi/csvlint.rb/pull/51) ([ldodds](https://github.com/ldodds))
292
+
293
+ - Feature header validation [\#50](https://github.com/theodi/csvlint.rb/pull/50) ([ldodds](https://github.com/ldodds))
294
+
295
+ - Handle unique columns [\#49](https://github.com/theodi/csvlint.rb/pull/49) ([pikesley](https://github.com/pikesley))
296
+
297
+ - Validate all the fields [\#47](https://github.com/theodi/csvlint.rb/pull/47) ([ldodds](https://github.com/ldodds))
298
+
299
+ - Tolerate incomplete schemas [\#46](https://github.com/theodi/csvlint.rb/pull/46) ([ldodds](https://github.com/ldodds))
300
+
301
+ - Add accessor for line breaks [\#45](https://github.com/theodi/csvlint.rb/pull/45) ([Floppy](https://github.com/Floppy))
302
+
303
+ - update README for info messages and new error types [\#44](https://github.com/theodi/csvlint.rb/pull/44) ([Floppy](https://github.com/Floppy))
304
+
305
+ - Info messages for line breaks [\#43](https://github.com/theodi/csvlint.rb/pull/43) ([Floppy](https://github.com/Floppy))
306
+
307
+ - Add category to messages [\#40](https://github.com/theodi/csvlint.rb/pull/40) ([ldodds](https://github.com/ldodds))
308
+
309
+ - Badges [\#39](https://github.com/theodi/csvlint.rb/pull/39) ([pikesley](https://github.com/pikesley))
310
+
311
+ - Generic field validation using JSON Table Schema [\#38](https://github.com/theodi/csvlint.rb/pull/38) ([ldodds](https://github.com/ldodds))
312
+
313
+ - Feature validate strings and files [\#37](https://github.com/theodi/csvlint.rb/pull/37) ([ldodds](https://github.com/ldodds))
314
+
315
+ - Support reporting of column number in errors [\#36](https://github.com/theodi/csvlint.rb/pull/36) ([ldodds](https://github.com/ldodds))
316
+
317
+ - Fix up casing of keys in CSV DDF options [\#35](https://github.com/theodi/csvlint.rb/pull/35) ([ldodds](https://github.com/ldodds))
318
+
319
+ - Add errors for incorrect newlines [\#34](https://github.com/theodi/csvlint.rb/pull/34) ([pezholio](https://github.com/pezholio))
320
+
321
+ - Change from parsing CSV line by line to using CSV.new and trapping errors [\#33](https://github.com/theodi/csvlint.rb/pull/33) ([ldodds](https://github.com/ldodds))
322
+
323
+ - Improved the README, tweaked LICENSE [\#28](https://github.com/theodi/csvlint.rb/pull/28) ([ldodds](https://github.com/ldodds))
324
+
325
+ - Handle 404s [\#26](https://github.com/theodi/csvlint.rb/pull/26) ([pezholio](https://github.com/pezholio))
326
+
327
+ - Create more fine-grained errors and warnings for content type issues [\#25](https://github.com/theodi/csvlint.rb/pull/25) ([ldodds](https://github.com/ldodds))
328
+
329
+ - Report trailing empty rows as an error. Previously threw exception [\#24](https://github.com/theodi/csvlint.rb/pull/24) ([ldodds](https://github.com/ldodds))
330
+
331
+ - Simplify the guessing of column types [\#22](https://github.com/theodi/csvlint.rb/pull/22) ([ldodds](https://github.com/ldodds))
332
+
333
+ - Class-ify error messages [\#21](https://github.com/theodi/csvlint.rb/pull/21) ([pezholio](https://github.com/pezholio))
334
+
335
+ - Error extracts [\#20](https://github.com/theodi/csvlint.rb/pull/20) ([Floppy](https://github.com/Floppy))
336
+
337
+ - Return headers [\#19](https://github.com/theodi/csvlint.rb/pull/19) ([pezholio](https://github.com/pezholio))
338
+
339
+ - Return a warning if no character set specified [\#18](https://github.com/theodi/csvlint.rb/pull/18) ([pezholio](https://github.com/pezholio))
340
+
341
+ - Ignore query params [\#17](https://github.com/theodi/csvlint.rb/pull/17) ([Floppy](https://github.com/Floppy))
342
+
343
+ - Add invalid\_encoding error for invalid byte sequences [\#16](https://github.com/theodi/csvlint.rb/pull/16) ([ldodds](https://github.com/ldodds))
344
+
345
+ - Check inconsistent values [\#13](https://github.com/theodi/csvlint.rb/pull/13) ([pezholio](https://github.com/pezholio))
346
+
347
+ - Add CSV dialect options [\#11](https://github.com/theodi/csvlint.rb/pull/11) ([pezholio](https://github.com/pezholio))
348
+
349
+ - Return warning if extension doesn't match content type [\#10](https://github.com/theodi/csvlint.rb/pull/10) ([pezholio](https://github.com/pezholio))
350
+
351
+ - Return warnings for file extension [\#8](https://github.com/theodi/csvlint.rb/pull/8) ([pezholio](https://github.com/pezholio))
352
+
353
+ - Detect blank rows [\#7](https://github.com/theodi/csvlint.rb/pull/7) ([pezholio](https://github.com/pezholio))
354
+
355
+ - Detect bad content type [\#3](https://github.com/theodi/csvlint.rb/pull/3) ([pezholio](https://github.com/pezholio))
356
+
357
+ - Return information about CSV [\#1](https://github.com/theodi/csvlint.rb/pull/1) ([pezholio](https://github.com/pezholio))
358
+
359
+
360
+
361
+ \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ #ruby=ruby-2.0.0
2
+ #ruby-gemset=csvlintrb
3
+
4
+ source 'https://rubygems.org'
5
+
6
+ # Specify your gem's dependencies in csvlint.rb.gemspec
7
+ gemspec