exercism-analysis 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (579) hide show
  1. checksums.yaml +7 -0
  2. data/exercism-analysis.gemspec +30 -0
  3. data/lib/exercism-analysis.rb +38 -0
  4. data/lib/exercism-analysis/adapters/adapter.rb +23 -0
  5. data/lib/exercism-analysis/adapters/clojure.rb +13 -0
  6. data/lib/exercism-analysis/adapters/go.rb +19 -0
  7. data/lib/exercism-analysis/adapters/javascript.rb +13 -0
  8. data/lib/exercism-analysis/adapters/python.rb +13 -0
  9. data/lib/exercism-analysis/adapters/ruby.rb +19 -0
  10. data/lib/exercism-analysis/analysis.rb +18 -0
  11. data/lib/exercism-analysis/analyzers/analyzer.rb +54 -0
  12. data/lib/exercism-analysis/analyzers/clojure/kibit.rb +25 -0
  13. data/lib/exercism-analysis/analyzers/go/golint.rb +23 -0
  14. data/lib/exercism-analysis/analyzers/javascript/jslint.rb +24 -0
  15. data/lib/exercism-analysis/analyzers/python/pylint.rb +24 -0
  16. data/lib/exercism-analysis/analyzers/ruby/control_flow.rb +21 -0
  17. data/lib/exercism-analysis/analyzers/ruby/enumerable_condition.rb +21 -0
  18. data/lib/exercism-analysis/analyzers/ruby/for_loop.rb +29 -0
  19. data/lib/exercism-analysis/analyzers/ruby/indentation.rb +21 -0
  20. data/lib/exercism-analysis/analyzers/ruby/iter_mutation.rb +37 -0
  21. data/lib/exercism-analysis/analyzers/ruby/output.rb +20 -0
  22. data/lib/exercism-analysis/analyzers/ruby/range.rb +28 -0
  23. data/lib/exercism-analysis/analyzers/ruby/roodi.rb +19 -0
  24. data/lib/exercism-analysis/analyzers/ruby/send.rb +25 -0
  25. data/lib/exercism-analysis/analyzers/ruby/shebang.rb +23 -0
  26. data/lib/exercism-analysis/analyzers/ruby/tab.rb +38 -0
  27. data/lib/exercism-analysis/processors/call_processor.rb +39 -0
  28. data/lib/exercism-analysis/processors/control_flow_processor.rb +27 -0
  29. data/lib/exercism-analysis/processors/enumerable_condition_processor.rb +31 -0
  30. data/lib/exercism-analysis/processors/for_loop_processor.rb +21 -0
  31. data/lib/exercism-analysis/processors/indentation_processor.rb +69 -0
  32. data/lib/exercism-analysis/processors/iter_mutation_processor.rb +50 -0
  33. data/lib/exercism-analysis/processors/processor.rb +34 -0
  34. data/lib/exercism-analysis/processors/range_processor.rb +23 -0
  35. data/lib/exercism-analysis/processors/send_processor.rb +23 -0
  36. data/lib/exercism-analysis/templates/each_to_map.rb +29 -0
  37. data/lib/exercism-analysis/templates/each_to_select.rb +31 -0
  38. data/lib/exercism-analysis/templates/range_exclusive.rb +19 -0
  39. data/lib/exercism-analysis/templates/template.rb +29 -0
  40. data/vendor/clojure/kibit-runner/LICENSE +214 -0
  41. data/vendor/clojure/kibit-runner/project.clj +10 -0
  42. data/vendor/clojure/kibit-runner/src/kibit_runner/core.clj +17 -0
  43. data/vendor/clojure/kibit-runner/target/kibit-runner-0.1.0-SNAPSHOT-standalone.jar +0 -0
  44. data/vendor/clojure/kibit-runner/target/kibit-runner-0.1.0-SNAPSHOT.jar +0 -0
  45. data/vendor/clojure/kibit-runner/target/stale/extract-native.dependencies +1 -0
  46. data/vendor/go/src/github.com/golang/lint/LICENSE +27 -0
  47. data/vendor/go/src/github.com/golang/lint/README +59 -0
  48. data/vendor/go/src/github.com/golang/lint/golint/golint.go +67 -0
  49. data/vendor/go/src/github.com/golang/lint/lint.go +1061 -0
  50. data/vendor/go/src/runner/golint_runner.go +23 -0
  51. data/vendor/javascript/jshint_runner.js +6 -0
  52. data/vendor/javascript/node_modules/jshint/README.md +47 -0
  53. data/vendor/javascript/node_modules/jshint/bin/apply +6 -0
  54. data/vendor/javascript/node_modules/jshint/bin/build +36 -0
  55. data/vendor/javascript/node_modules/jshint/bin/changelog +36 -0
  56. data/vendor/javascript/node_modules/jshint/bin/jshint +3 -0
  57. data/vendor/javascript/node_modules/jshint/bin/land +34 -0
  58. data/vendor/javascript/node_modules/jshint/data/ascii-identifier-data.js +22 -0
  59. data/vendor/javascript/node_modules/jshint/data/non-ascii-identifier-part-only.js +1570 -0
  60. data/vendor/javascript/node_modules/jshint/data/non-ascii-identifier-start.js +48477 -0
  61. data/vendor/javascript/node_modules/jshint/dist/jshint-rhino.js +60642 -0
  62. data/vendor/javascript/node_modules/jshint/dist/jshint.js +60525 -0
  63. data/vendor/javascript/node_modules/jshint/node_modules/cli/README.md +196 -0
  64. data/vendor/javascript/node_modules/jshint/node_modules/cli/cli.js +1139 -0
  65. data/vendor/javascript/node_modules/jshint/node_modules/cli/examples/cat.js +17 -0
  66. data/vendor/javascript/node_modules/jshint/node_modules/cli/examples/command.js +16 -0
  67. data/vendor/javascript/node_modules/jshint/node_modules/cli/examples/echo.js +54 -0
  68. data/vendor/javascript/node_modules/jshint/node_modules/cli/examples/glob.js +6 -0
  69. data/vendor/javascript/node_modules/jshint/node_modules/cli/examples/long_desc.js +20 -0
  70. data/vendor/javascript/node_modules/jshint/node_modules/cli/examples/progress.js +11 -0
  71. data/vendor/javascript/node_modules/jshint/node_modules/cli/examples/sort.js +18 -0
  72. data/vendor/javascript/node_modules/jshint/node_modules/cli/examples/spinner.js +9 -0
  73. data/vendor/javascript/node_modules/jshint/node_modules/cli/examples/static.coffee +27 -0
  74. data/vendor/javascript/node_modules/jshint/node_modules/cli/examples/static.js +25 -0
  75. data/vendor/javascript/node_modules/jshint/node_modules/cli/index.js +1 -0
  76. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/LICENSE +27 -0
  77. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/README.md +250 -0
  78. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/examples/g.js +9 -0
  79. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/examples/usr-local.js +9 -0
  80. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/glob.js +728 -0
  81. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/inherits/LICENSE +16 -0
  82. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/inherits/README.md +42 -0
  83. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/inherits/inherits.js +1 -0
  84. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/inherits/inherits_browser.js +23 -0
  85. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/inherits/package.json +51 -0
  86. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/inherits/test.js +25 -0
  87. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/package.json +58 -0
  88. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/test/00-setup.js +176 -0
  89. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/test/bash-comparison.js +63 -0
  90. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/test/bash-results.json +351 -0
  91. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/test/cwd-test.js +55 -0
  92. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/test/globstar-match.js +19 -0
  93. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/test/mark.js +118 -0
  94. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/test/new-glob-optional-options.js +10 -0
  95. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/test/nocase-nomagic.js +113 -0
  96. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/test/pause-resume.js +73 -0
  97. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/test/readme-issue.js +36 -0
  98. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/test/root-nomount.js +39 -0
  99. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/test/root.js +46 -0
  100. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/test/stat.js +32 -0
  101. data/vendor/javascript/node_modules/jshint/node_modules/cli/node_modules/glob/test/zz-cleanup.js +11 -0
  102. data/vendor/javascript/node_modules/jshint/node_modules/cli/package.json +70 -0
  103. data/vendor/javascript/node_modules/jshint/node_modules/console-browserify/LICENCE +19 -0
  104. data/vendor/javascript/node_modules/jshint/node_modules/console-browserify/README.md +33 -0
  105. data/vendor/javascript/node_modules/jshint/node_modules/console-browserify/index.js +86 -0
  106. data/vendor/javascript/node_modules/jshint/node_modules/console-browserify/node_modules/date-now/LICENCE +19 -0
  107. data/vendor/javascript/node_modules/jshint/node_modules/console-browserify/node_modules/date-now/README.md +45 -0
  108. data/vendor/javascript/node_modules/jshint/node_modules/console-browserify/node_modules/date-now/index.js +5 -0
  109. data/vendor/javascript/node_modules/jshint/node_modules/console-browserify/node_modules/date-now/package.json +89 -0
  110. data/vendor/javascript/node_modules/jshint/node_modules/console-browserify/node_modules/date-now/seed.js +16 -0
  111. data/vendor/javascript/node_modules/jshint/node_modules/console-browserify/node_modules/date-now/test/index.js +28 -0
  112. data/vendor/javascript/node_modules/jshint/node_modules/console-browserify/node_modules/date-now/test/static/index.html +10 -0
  113. data/vendor/javascript/node_modules/jshint/node_modules/console-browserify/package.json +88 -0
  114. data/vendor/javascript/node_modules/jshint/node_modules/console-browserify/test/index.js +67 -0
  115. data/vendor/javascript/node_modules/jshint/node_modules/console-browserify/test/static/index.html +12 -0
  116. data/vendor/javascript/node_modules/jshint/node_modules/console-browserify/test/static/test-adapter.js +53 -0
  117. data/vendor/javascript/node_modules/jshint/node_modules/exit/Gruntfile.js +48 -0
  118. data/vendor/javascript/node_modules/jshint/node_modules/exit/LICENSE-MIT +22 -0
  119. data/vendor/javascript/node_modules/jshint/node_modules/exit/README.md +75 -0
  120. data/vendor/javascript/node_modules/jshint/node_modules/exit/lib/exit.js +41 -0
  121. data/vendor/javascript/node_modules/jshint/node_modules/exit/package.json +69 -0
  122. data/vendor/javascript/node_modules/jshint/node_modules/exit/test/exit_test.js +121 -0
  123. data/vendor/javascript/node_modules/jshint/node_modules/exit/test/fixtures/10-stderr.txt +10 -0
  124. data/vendor/javascript/node_modules/jshint/node_modules/exit/test/fixtures/10-stdout-stderr.txt +20 -0
  125. data/vendor/javascript/node_modules/jshint/node_modules/exit/test/fixtures/10-stdout.txt +10 -0
  126. data/vendor/javascript/node_modules/jshint/node_modules/exit/test/fixtures/100-stderr.txt +100 -0
  127. data/vendor/javascript/node_modules/jshint/node_modules/exit/test/fixtures/100-stdout-stderr.txt +200 -0
  128. data/vendor/javascript/node_modules/jshint/node_modules/exit/test/fixtures/100-stdout.txt +100 -0
  129. data/vendor/javascript/node_modules/jshint/node_modules/exit/test/fixtures/1000-stderr.txt +1000 -0
  130. data/vendor/javascript/node_modules/jshint/node_modules/exit/test/fixtures/1000-stdout-stderr.txt +2000 -0
  131. data/vendor/javascript/node_modules/jshint/node_modules/exit/test/fixtures/1000-stdout.txt +1000 -0
  132. data/vendor/javascript/node_modules/jshint/node_modules/exit/test/fixtures/create-files.sh +8 -0
  133. data/vendor/javascript/node_modules/jshint/node_modules/exit/test/fixtures/log-broken.js +23 -0
  134. data/vendor/javascript/node_modules/jshint/node_modules/exit/test/fixtures/log.js +25 -0
  135. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/LICENSE +18 -0
  136. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/README.md +83 -0
  137. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/lib/CollectingHandler.js +55 -0
  138. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/lib/FeedHandler.js +95 -0
  139. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/lib/Parser.js +337 -0
  140. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/lib/ProxyHandler.js +27 -0
  141. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/lib/Stream.js +35 -0
  142. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/lib/Tokenizer.js +891 -0
  143. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/lib/WritableStream.js +21 -0
  144. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/lib/index.js +68 -0
  145. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domelementtype/LICENSE +11 -0
  146. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domelementtype/index.js +14 -0
  147. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domelementtype/package.json +40 -0
  148. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domelementtype/readme.md +1 -0
  149. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/LICENSE +11 -0
  150. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/index.js +211 -0
  151. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/package.json +68 -0
  152. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/readme.md +102 -0
  153. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/01-basic.json +57 -0
  154. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/02-single_tag_1.json +21 -0
  155. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/03-single_tag_2.json +21 -0
  156. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/04-unescaped_in_script.json +27 -0
  157. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/05-tags_in_comment.json +18 -0
  158. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/06-comment_in_script.json +18 -0
  159. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/07-unescaped_in_style.json +20 -0
  160. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/08-extra_spaces_in_tag.json +20 -0
  161. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/09-unquoted_attrib.json +20 -0
  162. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/10-singular_attribute.json +15 -0
  163. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/11-text_outside_tags.json +40 -0
  164. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/12-text_only.json +11 -0
  165. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/13-comment_in_text.json +19 -0
  166. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/14-comment_in_text_in_script.json +18 -0
  167. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/15-non-verbose.json +22 -0
  168. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/16-normalize_whitespace.json +47 -0
  169. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/17-xml_namespace.json +18 -0
  170. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/18-enforce_empty_tags.json +16 -0
  171. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/19-ignore_empty_tags.json +20 -0
  172. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/20-template_script_tags.json +20 -0
  173. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/21-conditional_comments.json +15 -0
  174. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/22-lowercase_tags.json +41 -0
  175. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/23-dom-lvl1.json +121 -0
  176. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/tests.js +58 -0
  177. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/LICENSE +11 -0
  178. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/index.js +14 -0
  179. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/lib/helpers.js +141 -0
  180. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/lib/legacy.js +87 -0
  181. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/lib/manipulation.js +77 -0
  182. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/lib/querying.js +94 -0
  183. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/lib/stringify.js +93 -0
  184. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/lib/traversal.js +24 -0
  185. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/package.json +71 -0
  186. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/readme.md +1 -0
  187. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/test/fixture.js +6 -0
  188. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/test/tests/helpers.js +89 -0
  189. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/test/tests/legacy.js +119 -0
  190. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/test/utils.js +9 -0
  191. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/entities/LICENSE +11 -0
  192. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/entities/index.js +31 -0
  193. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/entities/lib/decode.js +72 -0
  194. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/entities/lib/decode_codepoint.js +26 -0
  195. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/entities/lib/encode.js +48 -0
  196. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/entities/maps/decode.json +1 -0
  197. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/entities/maps/entities.json +1 -0
  198. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/entities/maps/legacy.json +1 -0
  199. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/entities/maps/xml.json +1 -0
  200. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/entities/package.json +79 -0
  201. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/entities/readme.md +31 -0
  202. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/entities/test/mocha.opts +2 -0
  203. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/entities/test/test.js +150 -0
  204. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/LICENSE +18 -0
  205. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/README.md +15 -0
  206. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/duplex.js +1 -0
  207. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/float.patch +923 -0
  208. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/lib/_stream_duplex.js +89 -0
  209. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/lib/_stream_passthrough.js +46 -0
  210. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/lib/_stream_readable.js +944 -0
  211. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/lib/_stream_transform.js +209 -0
  212. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/lib/_stream_writable.js +472 -0
  213. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/core-util-is/README.md +3 -0
  214. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/core-util-is/float.patch +604 -0
  215. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/core-util-is/lib/util.js +107 -0
  216. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/core-util-is/package.json +53 -0
  217. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/core-util-is/util.js +106 -0
  218. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/inherits/LICENSE +16 -0
  219. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/inherits/README.md +42 -0
  220. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/inherits/inherits.js +1 -0
  221. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/inherits/inherits_browser.js +23 -0
  222. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/inherits/package.json +51 -0
  223. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/inherits/test.js +25 -0
  224. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/isarray/README.md +54 -0
  225. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/isarray/build/build.js +209 -0
  226. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/isarray/component.json +19 -0
  227. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/isarray/index.js +3 -0
  228. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/isarray/package.json +54 -0
  229. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/string_decoder/LICENSE +20 -0
  230. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/string_decoder/README.md +7 -0
  231. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/string_decoder/index.js +200 -0
  232. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/string_decoder/package.json +53 -0
  233. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/package.json +68 -0
  234. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/passthrough.js +1 -0
  235. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/readable.js +7 -0
  236. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/transform.js +1 -0
  237. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/writable.js +1 -0
  238. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/package.json +90 -0
  239. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/01-events.js +9 -0
  240. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/02-stream.js +23 -0
  241. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/03-feed.js +19 -0
  242. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Documents/Atom_Example.xml +25 -0
  243. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Documents/Attributes.html +16 -0
  244. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Documents/Basic.html +1 -0
  245. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Documents/RDF_Example.xml +63 -0
  246. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Documents/RSS_Example.xml +48 -0
  247. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/01-simple.json +44 -0
  248. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/02-template.json +63 -0
  249. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/03-lowercase_tags.json +46 -0
  250. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/04-cdata.json +50 -0
  251. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/05-cdata-special.json +35 -0
  252. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/06-leading-lt.json +16 -0
  253. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/07-self-closing.json +67 -0
  254. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/08-implicit-close-tags.json +59 -0
  255. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/09-attributes.json +68 -0
  256. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/10-crazy-attrib.json +52 -0
  257. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/11-script_in_script.json +54 -0
  258. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/12-long-comment-end.json +20 -0
  259. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/13-long-cdata-end.json +22 -0
  260. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/14-implicit-open-tags.json +27 -0
  261. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/15-lt-whitespace.json +16 -0
  262. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/16-double_attribs.json +45 -0
  263. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/17-numeric_entities.json +16 -0
  264. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/18-legacy_entities.json +16 -0
  265. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/19-named_entities.json +16 -0
  266. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/20-xml_entities.json +16 -0
  267. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/21-entity_in_attribute.json +38 -0
  268. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/22-double_brackets.json +41 -0
  269. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/23-legacy_entity_fail.json +16 -0
  270. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/24-special_special.json +133 -0
  271. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/25-empty_tag_name.json +13 -0
  272. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/26-not-quite-closed.json +35 -0
  273. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/27-entities_in_attributes.json +62 -0
  274. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/28-cdata_in_html.json +9 -0
  275. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/29-comment_edge-cases.json +18 -0
  276. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Events/30-cdata_edge-cases.json +22 -0
  277. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Feeds/01-rss.js +34 -0
  278. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Feeds/02-atom.js +18 -0
  279. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Feeds/03-rdf.js +20 -0
  280. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Stream/01-basic.json +83 -0
  281. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Stream/02-RSS.json +1093 -0
  282. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Stream/03-Atom.json +644 -0
  283. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Stream/04-RDF.json +1399 -0
  284. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/Stream/05-Attributes.json +354 -0
  285. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/api.js +63 -0
  286. data/vendor/javascript/node_modules/jshint/node_modules/htmlparser2/test/test-helper.js +83 -0
  287. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/LICENSE +23 -0
  288. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/README.md +218 -0
  289. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/minimatch.js +1061 -0
  290. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS +14 -0
  291. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/node_modules/lru-cache/LICENSE +23 -0
  292. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/node_modules/lru-cache/README.md +97 -0
  293. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js +252 -0
  294. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/node_modules/lru-cache/package.json +50 -0
  295. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/node_modules/lru-cache/test/basic.js +369 -0
  296. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/node_modules/lru-cache/test/foreach.js +52 -0
  297. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js +50 -0
  298. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/node_modules/sigmund/LICENSE +27 -0
  299. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/node_modules/sigmund/README.md +53 -0
  300. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/node_modules/sigmund/bench.js +283 -0
  301. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/node_modules/sigmund/package.json +58 -0
  302. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/node_modules/sigmund/sigmund.js +39 -0
  303. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/node_modules/sigmund/test/basic.js +24 -0
  304. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/package.json +57 -0
  305. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/test/basic.js +399 -0
  306. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/test/brace-expand.js +33 -0
  307. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/test/caching.js +14 -0
  308. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/test/defaults.js +274 -0
  309. data/vendor/javascript/node_modules/jshint/node_modules/minimatch/test/extglob-ending-with-state-char.js +8 -0
  310. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/LICENSE +26 -0
  311. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/README.md +569 -0
  312. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/bin/shjs +51 -0
  313. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/global.js +3 -0
  314. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/make.js +47 -0
  315. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/package.json +61 -0
  316. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/scripts/generate-docs.js +21 -0
  317. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/scripts/run-tests.js +50 -0
  318. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/shell.js +157 -0
  319. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/cat.js +43 -0
  320. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/cd.js +19 -0
  321. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/chmod.js +208 -0
  322. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/common.js +203 -0
  323. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/cp.js +201 -0
  324. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/dirs.js +191 -0
  325. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/echo.js +20 -0
  326. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/error.js +10 -0
  327. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/exec.js +181 -0
  328. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/find.js +51 -0
  329. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/grep.js +52 -0
  330. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/ln.js +53 -0
  331. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/ls.js +126 -0
  332. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/mkdir.js +68 -0
  333. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/mv.js +80 -0
  334. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/popd.js +1 -0
  335. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/pushd.js +1 -0
  336. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/pwd.js +11 -0
  337. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/rm.js +145 -0
  338. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/sed.js +43 -0
  339. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/tempdir.js +56 -0
  340. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/test.js +85 -0
  341. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/to.js +29 -0
  342. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/toEnd.js +29 -0
  343. data/vendor/javascript/node_modules/jshint/node_modules/shelljs/src/which.js +83 -0
  344. data/vendor/javascript/node_modules/jshint/node_modules/strip-json-comments/cli.js +41 -0
  345. data/vendor/javascript/node_modules/jshint/node_modules/strip-json-comments/package.json +76 -0
  346. data/vendor/javascript/node_modules/jshint/node_modules/strip-json-comments/readme.md +74 -0
  347. data/vendor/javascript/node_modules/jshint/node_modules/strip-json-comments/strip-json-comments.js +64 -0
  348. data/vendor/javascript/node_modules/jshint/node_modules/underscore/LICENSE +23 -0
  349. data/vendor/javascript/node_modules/jshint/node_modules/underscore/README.md +22 -0
  350. data/vendor/javascript/node_modules/jshint/node_modules/underscore/package.json +66 -0
  351. data/vendor/javascript/node_modules/jshint/node_modules/underscore/underscore-min.js +6 -0
  352. data/vendor/javascript/node_modules/jshint/node_modules/underscore/underscore.js +1343 -0
  353. data/vendor/javascript/node_modules/jshint/package.json +80 -0
  354. data/vendor/javascript/node_modules/jshint/src/cli.js +731 -0
  355. data/vendor/javascript/node_modules/jshint/src/jshint.js +5023 -0
  356. data/vendor/javascript/node_modules/jshint/src/lex.js +1650 -0
  357. data/vendor/javascript/node_modules/jshint/src/messages.js +223 -0
  358. data/vendor/javascript/node_modules/jshint/src/platforms/rhino.js +115 -0
  359. data/vendor/javascript/node_modules/jshint/src/reg.js +38 -0
  360. data/vendor/javascript/node_modules/jshint/src/reporters/checkstyle.js +81 -0
  361. data/vendor/javascript/node_modules/jshint/src/reporters/default.js +34 -0
  362. data/vendor/javascript/node_modules/jshint/src/reporters/jslint_xml.js +57 -0
  363. data/vendor/javascript/node_modules/jshint/src/reporters/non_error.js +52 -0
  364. data/vendor/javascript/node_modules/jshint/src/state.js +28 -0
  365. data/vendor/javascript/node_modules/jshint/src/style.js +143 -0
  366. data/vendor/javascript/node_modules/jshint/src/vars.js +658 -0
  367. data/vendor/python/astroid/COPYING +339 -0
  368. data/vendor/python/astroid/COPYING.LESSER +510 -0
  369. data/vendor/python/astroid/ChangeLog +574 -0
  370. data/vendor/python/astroid/MANIFEST.in +9 -0
  371. data/vendor/python/astroid/README +56 -0
  372. data/vendor/python/astroid/README.Python3 +26 -0
  373. data/vendor/python/astroid/__init__.py +118 -0
  374. data/vendor/python/astroid/__init__.pyc +0 -0
  375. data/vendor/python/astroid/__pkginfo__.py +48 -0
  376. data/vendor/python/astroid/__pkginfo__.pyc +0 -0
  377. data/vendor/python/astroid/announce.txt +23 -0
  378. data/vendor/python/astroid/as_string.py +496 -0
  379. data/vendor/python/astroid/as_string.pyc +0 -0
  380. data/vendor/python/astroid/bases.py +618 -0
  381. data/vendor/python/astroid/bases.pyc +0 -0
  382. data/vendor/python/astroid/brain/py2gi.py +159 -0
  383. data/vendor/python/astroid/brain/py2gi.pyc +0 -0
  384. data/vendor/python/astroid/brain/py2mechanize.py +20 -0
  385. data/vendor/python/astroid/brain/py2mechanize.pyc +0 -0
  386. data/vendor/python/astroid/brain/py2qt4.py +25 -0
  387. data/vendor/python/astroid/brain/py2qt4.pyc +0 -0
  388. data/vendor/python/astroid/brain/py2stdlib.py +252 -0
  389. data/vendor/python/astroid/brain/py2stdlib.pyc +0 -0
  390. data/vendor/python/astroid/builder.py +238 -0
  391. data/vendor/python/astroid/builder.pyc +0 -0
  392. data/vendor/python/astroid/exceptions.py +51 -0
  393. data/vendor/python/astroid/exceptions.pyc +0 -0
  394. data/vendor/python/astroid/inference.py +393 -0
  395. data/vendor/python/astroid/inference.pyc +0 -0
  396. data/vendor/python/astroid/inspector.py +275 -0
  397. data/vendor/python/astroid/manager.py +336 -0
  398. data/vendor/python/astroid/manager.pyc +0 -0
  399. data/vendor/python/astroid/mixins.py +122 -0
  400. data/vendor/python/astroid/mixins.pyc +0 -0
  401. data/vendor/python/astroid/node_classes.py +928 -0
  402. data/vendor/python/astroid/node_classes.pyc +0 -0
  403. data/vendor/python/astroid/nodes.py +73 -0
  404. data/vendor/python/astroid/nodes.pyc +0 -0
  405. data/vendor/python/astroid/protocols.py +322 -0
  406. data/vendor/python/astroid/protocols.pyc +0 -0
  407. data/vendor/python/astroid/raw_building.py +361 -0
  408. data/vendor/python/astroid/raw_building.pyc +0 -0
  409. data/vendor/python/astroid/rebuilder.py +954 -0
  410. data/vendor/python/astroid/rebuilder.pyc +0 -0
  411. data/vendor/python/astroid/scoped_nodes.py +1118 -0
  412. data/vendor/python/astroid/scoped_nodes.pyc +0 -0
  413. data/vendor/python/astroid/setup.py +184 -0
  414. data/vendor/python/astroid/tox.ini +10 -0
  415. data/vendor/python/astroid/utils.py +236 -0
  416. data/vendor/python/astroid/utils.pyc +0 -0
  417. data/vendor/python/logilab/__init__.py +0 -0
  418. data/vendor/python/logilab/__init__.pyc +0 -0
  419. data/vendor/python/logilab/common/COPYING +339 -0
  420. data/vendor/python/logilab/common/COPYING.LESSER +510 -0
  421. data/vendor/python/logilab/common/ChangeLog +1517 -0
  422. data/vendor/python/logilab/common/MANIFEST.in +13 -0
  423. data/vendor/python/logilab/common/README +185 -0
  424. data/vendor/python/logilab/common/README.Python3 +29 -0
  425. data/vendor/python/logilab/common/__init__.py +171 -0
  426. data/vendor/python/logilab/common/__init__.pyc +0 -0
  427. data/vendor/python/logilab/common/__pkginfo__.py +53 -0
  428. data/vendor/python/logilab/common/__pkginfo__.pyc +0 -0
  429. data/vendor/python/logilab/common/announce.txt +25 -0
  430. data/vendor/python/logilab/common/bin/pytest +7 -0
  431. data/vendor/python/logilab/common/bin/pytest.bat +17 -0
  432. data/vendor/python/logilab/common/cache.py +114 -0
  433. data/vendor/python/logilab/common/changelog.py +236 -0
  434. data/vendor/python/logilab/common/changelog.pyc +0 -0
  435. data/vendor/python/logilab/common/clcommands.py +332 -0
  436. data/vendor/python/logilab/common/cli.py +208 -0
  437. data/vendor/python/logilab/common/compat.py +243 -0
  438. data/vendor/python/logilab/common/compat.pyc +0 -0
  439. data/vendor/python/logilab/common/configuration.py +1094 -0
  440. data/vendor/python/logilab/common/configuration.pyc +0 -0
  441. data/vendor/python/logilab/common/contexts.py +5 -0
  442. data/vendor/python/logilab/common/corbautils.py +117 -0
  443. data/vendor/python/logilab/common/daemon.py +100 -0
  444. data/vendor/python/logilab/common/date.py +333 -0
  445. data/vendor/python/logilab/common/dbf.py +229 -0
  446. data/vendor/python/logilab/common/debugger.py +210 -0
  447. data/vendor/python/logilab/common/decorators.py +281 -0
  448. data/vendor/python/logilab/common/decorators.pyc +0 -0
  449. data/vendor/python/logilab/common/deprecation.py +188 -0
  450. data/vendor/python/logilab/common/deprecation.pyc +0 -0
  451. data/vendor/python/logilab/common/fileutils.py +402 -0
  452. data/vendor/python/logilab/common/graph.py +276 -0
  453. data/vendor/python/logilab/common/graph.pyc +0 -0
  454. data/vendor/python/logilab/common/hg.py +130 -0
  455. data/vendor/python/logilab/common/interface.py +71 -0
  456. data/vendor/python/logilab/common/interface.pyc +0 -0
  457. data/vendor/python/logilab/common/logging_ext.py +193 -0
  458. data/vendor/python/logilab/common/modutils.py +695 -0
  459. data/vendor/python/logilab/common/modutils.pyc +0 -0
  460. data/vendor/python/logilab/common/optik_ext.py +391 -0
  461. data/vendor/python/logilab/common/optik_ext.pyc +0 -0
  462. data/vendor/python/logilab/common/optparser.py +90 -0
  463. data/vendor/python/logilab/common/proc.py +277 -0
  464. data/vendor/python/logilab/common/pyro_ext.py +180 -0
  465. data/vendor/python/logilab/common/pytest.py +1177 -0
  466. data/vendor/python/logilab/common/python-logilab-common.spec +184 -0
  467. data/vendor/python/logilab/common/registry.py +1113 -0
  468. data/vendor/python/logilab/common/setup.cfg +3 -0
  469. data/vendor/python/logilab/common/setup.py +189 -0
  470. data/vendor/python/logilab/common/shellutils.py +455 -0
  471. data/vendor/python/logilab/common/sphinx_ext.py +87 -0
  472. data/vendor/python/logilab/common/sphinxutils.py +122 -0
  473. data/vendor/python/logilab/common/table.py +925 -0
  474. data/vendor/python/logilab/common/tasksqueue.py +100 -0
  475. data/vendor/python/logilab/common/textutils.py +534 -0
  476. data/vendor/python/logilab/common/textutils.pyc +0 -0
  477. data/vendor/python/logilab/common/tree.py +369 -0
  478. data/vendor/python/logilab/common/tree.pyc +0 -0
  479. data/vendor/python/logilab/common/umessage.py +190 -0
  480. data/vendor/python/logilab/common/ureports/__init__.py +174 -0
  481. data/vendor/python/logilab/common/ureports/__init__.pyc +0 -0
  482. data/vendor/python/logilab/common/ureports/docbook_writer.py +139 -0
  483. data/vendor/python/logilab/common/ureports/html_writer.py +131 -0
  484. data/vendor/python/logilab/common/ureports/html_writer.pyc +0 -0
  485. data/vendor/python/logilab/common/ureports/nodes.py +201 -0
  486. data/vendor/python/logilab/common/ureports/nodes.pyc +0 -0
  487. data/vendor/python/logilab/common/ureports/text_writer.py +140 -0
  488. data/vendor/python/logilab/common/ureports/text_writer.pyc +0 -0
  489. data/vendor/python/logilab/common/urllib2ext.py +87 -0
  490. data/vendor/python/logilab/common/vcgutils.py +216 -0
  491. data/vendor/python/logilab/common/visitor.py +107 -0
  492. data/vendor/python/logilab/common/visitor.pyc +0 -0
  493. data/vendor/python/logilab/common/xmlrpcutils.py +131 -0
  494. data/vendor/python/logilab/common/xmlutils.py +61 -0
  495. data/vendor/python/pylint/CONTRIBUTORS.txt +38 -0
  496. data/vendor/python/pylint/COPYING +340 -0
  497. data/vendor/python/pylint/ChangeLog +1437 -0
  498. data/vendor/python/pylint/DEPENDS +3 -0
  499. data/vendor/python/pylint/MANIFEST.in +14 -0
  500. data/vendor/python/pylint/README +50 -0
  501. data/vendor/python/pylint/README.Python3 +37 -0
  502. data/vendor/python/pylint/__init__.py +44 -0
  503. data/vendor/python/pylint/__init__.pyc +0 -0
  504. data/vendor/python/pylint/__main__.py +3 -0
  505. data/vendor/python/pylint/__pkginfo__.py +74 -0
  506. data/vendor/python/pylint/__pkginfo__.pyc +0 -0
  507. data/vendor/python/pylint/bin/epylint +3 -0
  508. data/vendor/python/pylint/bin/epylint.bat +5 -0
  509. data/vendor/python/pylint/bin/pylint +3 -0
  510. data/vendor/python/pylint/bin/pylint-gui +3 -0
  511. data/vendor/python/pylint/bin/pylint-gui.bat +5 -0
  512. data/vendor/python/pylint/bin/pylint.bat +5 -0
  513. data/vendor/python/pylint/bin/pyreverse +3 -0
  514. data/vendor/python/pylint/bin/pyreverse.bat +5 -0
  515. data/vendor/python/pylint/bin/symilar +3 -0
  516. data/vendor/python/pylint/bin/symilar.bat +5 -0
  517. data/vendor/python/pylint/checkers/__init__.py +145 -0
  518. data/vendor/python/pylint/checkers/__init__.pyc +0 -0
  519. data/vendor/python/pylint/checkers/base.py +1141 -0
  520. data/vendor/python/pylint/checkers/base.pyc +0 -0
  521. data/vendor/python/pylint/checkers/classes.py +792 -0
  522. data/vendor/python/pylint/checkers/classes.pyc +0 -0
  523. data/vendor/python/pylint/checkers/design_analysis.py +367 -0
  524. data/vendor/python/pylint/checkers/design_analysis.pyc +0 -0
  525. data/vendor/python/pylint/checkers/exceptions.py +306 -0
  526. data/vendor/python/pylint/checkers/exceptions.pyc +0 -0
  527. data/vendor/python/pylint/checkers/format.py +943 -0
  528. data/vendor/python/pylint/checkers/format.pyc +0 -0
  529. data/vendor/python/pylint/checkers/imports.py +394 -0
  530. data/vendor/python/pylint/checkers/imports.pyc +0 -0
  531. data/vendor/python/pylint/checkers/logging.py +213 -0
  532. data/vendor/python/pylint/checkers/logging.pyc +0 -0
  533. data/vendor/python/pylint/checkers/misc.py +90 -0
  534. data/vendor/python/pylint/checkers/misc.pyc +0 -0
  535. data/vendor/python/pylint/checkers/newstyle.py +151 -0
  536. data/vendor/python/pylint/checkers/newstyle.pyc +0 -0
  537. data/vendor/python/pylint/checkers/raw_metrics.py +129 -0
  538. data/vendor/python/pylint/checkers/raw_metrics.pyc +0 -0
  539. data/vendor/python/pylint/checkers/similar.py +365 -0
  540. data/vendor/python/pylint/checkers/similar.pyc +0 -0
  541. data/vendor/python/pylint/checkers/stdlib.py +69 -0
  542. data/vendor/python/pylint/checkers/stdlib.pyc +0 -0
  543. data/vendor/python/pylint/checkers/strings.py +304 -0
  544. data/vendor/python/pylint/checkers/strings.pyc +0 -0
  545. data/vendor/python/pylint/checkers/typecheck.py +451 -0
  546. data/vendor/python/pylint/checkers/typecheck.pyc +0 -0
  547. data/vendor/python/pylint/checkers/utils.py +416 -0
  548. data/vendor/python/pylint/checkers/utils.pyc +0 -0
  549. data/vendor/python/pylint/checkers/variables.py +741 -0
  550. data/vendor/python/pylint/checkers/variables.pyc +0 -0
  551. data/vendor/python/pylint/config.py +156 -0
  552. data/vendor/python/pylint/config.pyc +0 -0
  553. data/vendor/python/pylint/epylint.py +175 -0
  554. data/vendor/python/pylint/gui.py +508 -0
  555. data/vendor/python/pylint/interfaces.py +72 -0
  556. data/vendor/python/pylint/interfaces.pyc +0 -0
  557. data/vendor/python/pylint/lint.py +1106 -0
  558. data/vendor/python/pylint/lint.pyc +0 -0
  559. data/vendor/python/pylint/pyreverse/__init__.py +5 -0
  560. data/vendor/python/pylint/pyreverse/diadefslib.py +233 -0
  561. data/vendor/python/pylint/pyreverse/diagrams.py +247 -0
  562. data/vendor/python/pylint/pyreverse/main.py +124 -0
  563. data/vendor/python/pylint/pyreverse/utils.py +131 -0
  564. data/vendor/python/pylint/pyreverse/writer.py +199 -0
  565. data/vendor/python/pylint/reporters/__init__.py +138 -0
  566. data/vendor/python/pylint/reporters/__init__.pyc +0 -0
  567. data/vendor/python/pylint/reporters/guireporter.py +28 -0
  568. data/vendor/python/pylint/reporters/guireporter.pyc +0 -0
  569. data/vendor/python/pylint/reporters/html.py +70 -0
  570. data/vendor/python/pylint/reporters/html.pyc +0 -0
  571. data/vendor/python/pylint/reporters/text.py +143 -0
  572. data/vendor/python/pylint/reporters/text.pyc +0 -0
  573. data/vendor/python/pylint/setup.cfg +3 -0
  574. data/vendor/python/pylint/setup.py +203 -0
  575. data/vendor/python/pylint/tox.ini +10 -0
  576. data/vendor/python/pylint/utils.py +744 -0
  577. data/vendor/python/pylint/utils.pyc +0 -0
  578. data/vendor/python/pylint_runner.py +22 -0
  579. metadata +675 -0
@@ -0,0 +1,14 @@
1
+ # Authors, sorted by whether or not they are me
2
+ Isaac Z. Schlueter <i@izs.me>
3
+ Brian Cottingham <spiffytech@gmail.com>
4
+ Carlos Brito Lage <carlos@carloslage.net>
5
+ Jesse Dailey <jesse.dailey@gmail.com>
6
+ Kevin O'Hara <kevinohara80@gmail.com>
7
+ Marco Rogers <marco.rogers@gmail.com>
8
+ Mark Cavage <mcavage@gmail.com>
9
+ Marko Mikulicic <marko.mikulicic@isti.cnr.it>
10
+ Nathan Rajlich <nathan@tootallnate.net>
11
+ Satheesh Natesan <snateshan@myspace-inc.com>
12
+ Trent Mick <trentm@gmail.com>
13
+ ashleybrener <ashley@starlogik.com>
14
+ n4kz <n4kz@n4kz.com>
@@ -0,0 +1,23 @@
1
+ Copyright 2009, 2010, 2011 Isaac Z. Schlueter.
2
+ All rights reserved.
3
+
4
+ Permission is hereby granted, free of charge, to any person
5
+ obtaining a copy of this software and associated documentation
6
+ files (the "Software"), to deal in the Software without
7
+ restriction, including without limitation the rights to use,
8
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the
10
+ Software is furnished to do so, subject to the following
11
+ conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
18
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23
+ OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,97 @@
1
+ # lru cache
2
+
3
+ A cache object that deletes the least-recently-used items.
4
+
5
+ ## Usage:
6
+
7
+ ```javascript
8
+ var LRU = require("lru-cache")
9
+ , options = { max: 500
10
+ , length: function (n) { return n * 2 }
11
+ , dispose: function (key, n) { n.close() }
12
+ , maxAge: 1000 * 60 * 60 }
13
+ , cache = LRU(options)
14
+ , otherCache = LRU(50) // sets just the max size
15
+
16
+ cache.set("key", "value")
17
+ cache.get("key") // "value"
18
+
19
+ cache.reset() // empty the cache
20
+ ```
21
+
22
+ If you put more stuff in it, then items will fall out.
23
+
24
+ If you try to put an oversized thing in it, then it'll fall out right
25
+ away.
26
+
27
+ ## Options
28
+
29
+ * `max` The maximum size of the cache, checked by applying the length
30
+ function to all values in the cache. Not setting this is kind of
31
+ silly, since that's the whole purpose of this lib, but it defaults
32
+ to `Infinity`.
33
+ * `maxAge` Maximum age in ms. Items are not pro-actively pruned out
34
+ as they age, but if you try to get an item that is too old, it'll
35
+ drop it and return undefined instead of giving it to you.
36
+ * `length` Function that is used to calculate the length of stored
37
+ items. If you're storing strings or buffers, then you probably want
38
+ to do something like `function(n){return n.length}`. The default is
39
+ `function(n){return 1}`, which is fine if you want to store `n`
40
+ like-sized things.
41
+ * `dispose` Function that is called on items when they are dropped
42
+ from the cache. This can be handy if you want to close file
43
+ descriptors or do other cleanup tasks when items are no longer
44
+ accessible. Called with `key, value`. It's called *before*
45
+ actually removing the item from the internal cache, so if you want
46
+ to immediately put it back in, you'll have to do that in a
47
+ `nextTick` or `setTimeout` callback or it won't do anything.
48
+ * `stale` By default, if you set a `maxAge`, it'll only actually pull
49
+ stale items out of the cache when you `get(key)`. (That is, it's
50
+ not pre-emptively doing a `setTimeout` or anything.) If you set
51
+ `stale:true`, it'll return the stale value before deleting it. If
52
+ you don't set this, then it'll return `undefined` when you try to
53
+ get a stale entry, as if it had already been deleted.
54
+
55
+ ## API
56
+
57
+ * `set(key, value)`
58
+ * `get(key) => value`
59
+
60
+ Both of these will update the "recently used"-ness of the key.
61
+ They do what you think.
62
+
63
+ * `peek(key)`
64
+
65
+ Returns the key value (or `undefined` if not found) without
66
+ updating the "recently used"-ness of the key.
67
+
68
+ (If you find yourself using this a lot, you *might* be using the
69
+ wrong sort of data structure, but there are some use cases where
70
+ it's handy.)
71
+
72
+ * `del(key)`
73
+
74
+ Deletes a key out of the cache.
75
+
76
+ * `reset()`
77
+
78
+ Clear the cache entirely, throwing away all values.
79
+
80
+ * `has(key)`
81
+
82
+ Check if a key is in the cache, without updating the recent-ness
83
+ or deleting it for being stale.
84
+
85
+ * `forEach(function(value,key,cache), [thisp])`
86
+
87
+ Just like `Array.prototype.forEach`. Iterates over all the keys
88
+ in the cache, in order of recent-ness. (Ie, more recently used
89
+ items are iterated over first.)
90
+
91
+ * `keys()`
92
+
93
+ Return an array of the keys in the cache.
94
+
95
+ * `values()`
96
+
97
+ Return an array of the values in the cache.
@@ -0,0 +1,252 @@
1
+ ;(function () { // closure for web browsers
2
+
3
+ if (typeof module === 'object' && module.exports) {
4
+ module.exports = LRUCache
5
+ } else {
6
+ // just set the global for non-node platforms.
7
+ this.LRUCache = LRUCache
8
+ }
9
+
10
+ function hOP (obj, key) {
11
+ return Object.prototype.hasOwnProperty.call(obj, key)
12
+ }
13
+
14
+ function naiveLength () { return 1 }
15
+
16
+ function LRUCache (options) {
17
+ if (!(this instanceof LRUCache))
18
+ return new LRUCache(options)
19
+
20
+ if (typeof options === 'number')
21
+ options = { max: options }
22
+
23
+ if (!options)
24
+ options = {}
25
+
26
+ this._max = options.max
27
+ // Kind of weird to have a default max of Infinity, but oh well.
28
+ if (!this._max || !(typeof this._max === "number") || this._max <= 0 )
29
+ this._max = Infinity
30
+
31
+ this._lengthCalculator = options.length || naiveLength
32
+ if (typeof this._lengthCalculator !== "function")
33
+ this._lengthCalculator = naiveLength
34
+
35
+ this._allowStale = options.stale || false
36
+ this._maxAge = options.maxAge || null
37
+ this._dispose = options.dispose
38
+ this.reset()
39
+ }
40
+
41
+ // resize the cache when the max changes.
42
+ Object.defineProperty(LRUCache.prototype, "max",
43
+ { set : function (mL) {
44
+ if (!mL || !(typeof mL === "number") || mL <= 0 ) mL = Infinity
45
+ this._max = mL
46
+ if (this._length > this._max) trim(this)
47
+ }
48
+ , get : function () { return this._max }
49
+ , enumerable : true
50
+ })
51
+
52
+ // resize the cache when the lengthCalculator changes.
53
+ Object.defineProperty(LRUCache.prototype, "lengthCalculator",
54
+ { set : function (lC) {
55
+ if (typeof lC !== "function") {
56
+ this._lengthCalculator = naiveLength
57
+ this._length = this._itemCount
58
+ for (var key in this._cache) {
59
+ this._cache[key].length = 1
60
+ }
61
+ } else {
62
+ this._lengthCalculator = lC
63
+ this._length = 0
64
+ for (var key in this._cache) {
65
+ this._cache[key].length = this._lengthCalculator(this._cache[key].value)
66
+ this._length += this._cache[key].length
67
+ }
68
+ }
69
+
70
+ if (this._length > this._max) trim(this)
71
+ }
72
+ , get : function () { return this._lengthCalculator }
73
+ , enumerable : true
74
+ })
75
+
76
+ Object.defineProperty(LRUCache.prototype, "length",
77
+ { get : function () { return this._length }
78
+ , enumerable : true
79
+ })
80
+
81
+
82
+ Object.defineProperty(LRUCache.prototype, "itemCount",
83
+ { get : function () { return this._itemCount }
84
+ , enumerable : true
85
+ })
86
+
87
+ LRUCache.prototype.forEach = function (fn, thisp) {
88
+ thisp = thisp || this
89
+ var i = 0;
90
+ for (var k = this._mru - 1; k >= 0 && i < this._itemCount; k--) if (this._lruList[k]) {
91
+ i++
92
+ var hit = this._lruList[k]
93
+ if (this._maxAge && (Date.now() - hit.now > this._maxAge)) {
94
+ del(this, hit)
95
+ if (!this._allowStale) hit = undefined
96
+ }
97
+ if (hit) {
98
+ fn.call(thisp, hit.value, hit.key, this)
99
+ }
100
+ }
101
+ }
102
+
103
+ LRUCache.prototype.keys = function () {
104
+ var keys = new Array(this._itemCount)
105
+ var i = 0
106
+ for (var k = this._mru - 1; k >= 0 && i < this._itemCount; k--) if (this._lruList[k]) {
107
+ var hit = this._lruList[k]
108
+ keys[i++] = hit.key
109
+ }
110
+ return keys
111
+ }
112
+
113
+ LRUCache.prototype.values = function () {
114
+ var values = new Array(this._itemCount)
115
+ var i = 0
116
+ for (var k = this._mru - 1; k >= 0 && i < this._itemCount; k--) if (this._lruList[k]) {
117
+ var hit = this._lruList[k]
118
+ values[i++] = hit.value
119
+ }
120
+ return values
121
+ }
122
+
123
+ LRUCache.prototype.reset = function () {
124
+ if (this._dispose && this._cache) {
125
+ for (var k in this._cache) {
126
+ this._dispose(k, this._cache[k].value)
127
+ }
128
+ }
129
+
130
+ this._cache = Object.create(null) // hash of items by key
131
+ this._lruList = Object.create(null) // list of items in order of use recency
132
+ this._mru = 0 // most recently used
133
+ this._lru = 0 // least recently used
134
+ this._length = 0 // number of items in the list
135
+ this._itemCount = 0
136
+ }
137
+
138
+ // Provided for debugging/dev purposes only. No promises whatsoever that
139
+ // this API stays stable.
140
+ LRUCache.prototype.dump = function () {
141
+ return this._cache
142
+ }
143
+
144
+ LRUCache.prototype.dumpLru = function () {
145
+ return this._lruList
146
+ }
147
+
148
+ LRUCache.prototype.set = function (key, value) {
149
+ if (hOP(this._cache, key)) {
150
+ // dispose of the old one before overwriting
151
+ if (this._dispose) this._dispose(key, this._cache[key].value)
152
+ if (this._maxAge) this._cache[key].now = Date.now()
153
+ this._cache[key].value = value
154
+ this.get(key)
155
+ return true
156
+ }
157
+
158
+ var len = this._lengthCalculator(value)
159
+ var age = this._maxAge ? Date.now() : 0
160
+ var hit = new Entry(key, value, this._mru++, len, age)
161
+
162
+ // oversized objects fall out of cache automatically.
163
+ if (hit.length > this._max) {
164
+ if (this._dispose) this._dispose(key, value)
165
+ return false
166
+ }
167
+
168
+ this._length += hit.length
169
+ this._lruList[hit.lu] = this._cache[key] = hit
170
+ this._itemCount ++
171
+
172
+ if (this._length > this._max) trim(this)
173
+ return true
174
+ }
175
+
176
+ LRUCache.prototype.has = function (key) {
177
+ if (!hOP(this._cache, key)) return false
178
+ var hit = this._cache[key]
179
+ if (this._maxAge && (Date.now() - hit.now > this._maxAge)) {
180
+ return false
181
+ }
182
+ return true
183
+ }
184
+
185
+ LRUCache.prototype.get = function (key) {
186
+ return get(this, key, true)
187
+ }
188
+
189
+ LRUCache.prototype.peek = function (key) {
190
+ return get(this, key, false)
191
+ }
192
+
193
+ LRUCache.prototype.pop = function () {
194
+ var hit = this._lruList[this._lru]
195
+ del(this, hit)
196
+ return hit || null
197
+ }
198
+
199
+ LRUCache.prototype.del = function (key) {
200
+ del(this, this._cache[key])
201
+ }
202
+
203
+ function get (self, key, doUse) {
204
+ var hit = self._cache[key]
205
+ if (hit) {
206
+ if (self._maxAge && (Date.now() - hit.now > self._maxAge)) {
207
+ del(self, hit)
208
+ if (!self._allowStale) hit = undefined
209
+ } else {
210
+ if (doUse) use(self, hit)
211
+ }
212
+ if (hit) hit = hit.value
213
+ }
214
+ return hit
215
+ }
216
+
217
+ function use (self, hit) {
218
+ shiftLU(self, hit)
219
+ hit.lu = self._mru ++
220
+ self._lruList[hit.lu] = hit
221
+ }
222
+
223
+ function trim (self) {
224
+ while (self._lru < self._mru && self._length > self._max)
225
+ del(self, self._lruList[self._lru])
226
+ }
227
+
228
+ function shiftLU (self, hit) {
229
+ delete self._lruList[ hit.lu ]
230
+ while (self._lru < self._mru && !self._lruList[self._lru]) self._lru ++
231
+ }
232
+
233
+ function del (self, hit) {
234
+ if (hit) {
235
+ if (self._dispose) self._dispose(hit.key, hit.value)
236
+ self._length -= hit.length
237
+ self._itemCount --
238
+ delete self._cache[ hit.key ]
239
+ shiftLU(self, hit)
240
+ }
241
+ }
242
+
243
+ // classy, since V8 prefers predictable objects.
244
+ function Entry (key, value, lu, length, now) {
245
+ this.key = key
246
+ this.value = value
247
+ this.lu = lu
248
+ this.length = length
249
+ this.now = now
250
+ }
251
+
252
+ })()
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "lru-cache",
3
+ "description": "A cache object that deletes the least-recently-used items.",
4
+ "version": "2.5.0",
5
+ "author": {
6
+ "name": "Isaac Z. Schlueter",
7
+ "email": "i@izs.me"
8
+ },
9
+ "scripts": {
10
+ "test": "tap test --gc"
11
+ },
12
+ "main": "lib/lru-cache.js",
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git://github.com/isaacs/node-lru-cache.git"
16
+ },
17
+ "devDependencies": {
18
+ "tap": "",
19
+ "weak": ""
20
+ },
21
+ "license": {
22
+ "type": "MIT",
23
+ "url": "http://github.com/isaacs/node-lru-cache/raw/master/LICENSE"
24
+ },
25
+ "bugs": {
26
+ "url": "https://github.com/isaacs/node-lru-cache/issues"
27
+ },
28
+ "homepage": "https://github.com/isaacs/node-lru-cache",
29
+ "_id": "lru-cache@2.5.0",
30
+ "dist": {
31
+ "shasum": "d82388ae9c960becbea0c73bb9eb79b6c6ce9aeb",
32
+ "tarball": "http://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz"
33
+ },
34
+ "_from": "lru-cache@2",
35
+ "_npmVersion": "1.3.15",
36
+ "_npmUser": {
37
+ "name": "isaacs",
38
+ "email": "i@izs.me"
39
+ },
40
+ "maintainers": [
41
+ {
42
+ "name": "isaacs",
43
+ "email": "i@izs.me"
44
+ }
45
+ ],
46
+ "directories": {},
47
+ "_shasum": "d82388ae9c960becbea0c73bb9eb79b6c6ce9aeb",
48
+ "_resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz",
49
+ "readme": "ERROR: No README data found!"
50
+ }
@@ -0,0 +1,369 @@
1
+ var test = require("tap").test
2
+ , LRU = require("../")
3
+
4
+ test("basic", function (t) {
5
+ var cache = new LRU({max: 10})
6
+ cache.set("key", "value")
7
+ t.equal(cache.get("key"), "value")
8
+ t.equal(cache.get("nada"), undefined)
9
+ t.equal(cache.length, 1)
10
+ t.equal(cache.max, 10)
11
+ t.end()
12
+ })
13
+
14
+ test("least recently set", function (t) {
15
+ var cache = new LRU(2)
16
+ cache.set("a", "A")
17
+ cache.set("b", "B")
18
+ cache.set("c", "C")
19
+ t.equal(cache.get("c"), "C")
20
+ t.equal(cache.get("b"), "B")
21
+ t.equal(cache.get("a"), undefined)
22
+ t.end()
23
+ })
24
+
25
+ test("lru recently gotten", function (t) {
26
+ var cache = new LRU(2)
27
+ cache.set("a", "A")
28
+ cache.set("b", "B")
29
+ cache.get("a")
30
+ cache.set("c", "C")
31
+ t.equal(cache.get("c"), "C")
32
+ t.equal(cache.get("b"), undefined)
33
+ t.equal(cache.get("a"), "A")
34
+ t.end()
35
+ })
36
+
37
+ test("del", function (t) {
38
+ var cache = new LRU(2)
39
+ cache.set("a", "A")
40
+ cache.del("a")
41
+ t.equal(cache.get("a"), undefined)
42
+ t.end()
43
+ })
44
+
45
+ test("max", function (t) {
46
+ var cache = new LRU(3)
47
+
48
+ // test changing the max, verify that the LRU items get dropped.
49
+ cache.max = 100
50
+ for (var i = 0; i < 100; i ++) cache.set(i, i)
51
+ t.equal(cache.length, 100)
52
+ for (var i = 0; i < 100; i ++) {
53
+ t.equal(cache.get(i), i)
54
+ }
55
+ cache.max = 3
56
+ t.equal(cache.length, 3)
57
+ for (var i = 0; i < 97; i ++) {
58
+ t.equal(cache.get(i), undefined)
59
+ }
60
+ for (var i = 98; i < 100; i ++) {
61
+ t.equal(cache.get(i), i)
62
+ }
63
+
64
+ // now remove the max restriction, and try again.
65
+ cache.max = "hello"
66
+ for (var i = 0; i < 100; i ++) cache.set(i, i)
67
+ t.equal(cache.length, 100)
68
+ for (var i = 0; i < 100; i ++) {
69
+ t.equal(cache.get(i), i)
70
+ }
71
+ // should trigger an immediate resize
72
+ cache.max = 3
73
+ t.equal(cache.length, 3)
74
+ for (var i = 0; i < 97; i ++) {
75
+ t.equal(cache.get(i), undefined)
76
+ }
77
+ for (var i = 98; i < 100; i ++) {
78
+ t.equal(cache.get(i), i)
79
+ }
80
+ t.end()
81
+ })
82
+
83
+ test("reset", function (t) {
84
+ var cache = new LRU(10)
85
+ cache.set("a", "A")
86
+ cache.set("b", "B")
87
+ cache.reset()
88
+ t.equal(cache.length, 0)
89
+ t.equal(cache.max, 10)
90
+ t.equal(cache.get("a"), undefined)
91
+ t.equal(cache.get("b"), undefined)
92
+ t.end()
93
+ })
94
+
95
+
96
+ // Note: `<cache>.dump()` is a debugging tool only. No guarantees are made
97
+ // about the format/layout of the response.
98
+ test("dump", function (t) {
99
+ var cache = new LRU(10)
100
+ var d = cache.dump();
101
+ t.equal(Object.keys(d).length, 0, "nothing in dump for empty cache")
102
+ cache.set("a", "A")
103
+ var d = cache.dump() // { a: { key: "a", value: "A", lu: 0 } }
104
+ t.ok(d.a)
105
+ t.equal(d.a.key, "a")
106
+ t.equal(d.a.value, "A")
107
+ t.equal(d.a.lu, 0)
108
+
109
+ cache.set("b", "B")
110
+ cache.get("b")
111
+ d = cache.dump()
112
+ t.ok(d.b)
113
+ t.equal(d.b.key, "b")
114
+ t.equal(d.b.value, "B")
115
+ t.equal(d.b.lu, 2)
116
+
117
+ t.end()
118
+ })
119
+
120
+
121
+ test("basic with weighed length", function (t) {
122
+ var cache = new LRU({
123
+ max: 100,
124
+ length: function (item) { return item.size }
125
+ })
126
+ cache.set("key", {val: "value", size: 50})
127
+ t.equal(cache.get("key").val, "value")
128
+ t.equal(cache.get("nada"), undefined)
129
+ t.equal(cache.lengthCalculator(cache.get("key")), 50)
130
+ t.equal(cache.length, 50)
131
+ t.equal(cache.max, 100)
132
+ t.end()
133
+ })
134
+
135
+
136
+ test("weighed length item too large", function (t) {
137
+ var cache = new LRU({
138
+ max: 10,
139
+ length: function (item) { return item.size }
140
+ })
141
+ t.equal(cache.max, 10)
142
+
143
+ // should fall out immediately
144
+ cache.set("key", {val: "value", size: 50})
145
+
146
+ t.equal(cache.length, 0)
147
+ t.equal(cache.get("key"), undefined)
148
+ t.end()
149
+ })
150
+
151
+ test("least recently set with weighed length", function (t) {
152
+ var cache = new LRU({
153
+ max:8,
154
+ length: function (item) { return item.length }
155
+ })
156
+ cache.set("a", "A")
157
+ cache.set("b", "BB")
158
+ cache.set("c", "CCC")
159
+ cache.set("d", "DDDD")
160
+ t.equal(cache.get("d"), "DDDD")
161
+ t.equal(cache.get("c"), "CCC")
162
+ t.equal(cache.get("b"), undefined)
163
+ t.equal(cache.get("a"), undefined)
164
+ t.end()
165
+ })
166
+
167
+ test("lru recently gotten with weighed length", function (t) {
168
+ var cache = new LRU({
169
+ max: 8,
170
+ length: function (item) { return item.length }
171
+ })
172
+ cache.set("a", "A")
173
+ cache.set("b", "BB")
174
+ cache.set("c", "CCC")
175
+ cache.get("a")
176
+ cache.get("b")
177
+ cache.set("d", "DDDD")
178
+ t.equal(cache.get("c"), undefined)
179
+ t.equal(cache.get("d"), "DDDD")
180
+ t.equal(cache.get("b"), "BB")
181
+ t.equal(cache.get("a"), "A")
182
+ t.end()
183
+ })
184
+
185
+ test("set returns proper booleans", function(t) {
186
+ var cache = new LRU({
187
+ max: 5,
188
+ length: function (item) { return item.length }
189
+ })
190
+
191
+ t.equal(cache.set("a", "A"), true)
192
+
193
+ // should return false for max exceeded
194
+ t.equal(cache.set("b", "donuts"), false)
195
+
196
+ t.equal(cache.set("b", "B"), true)
197
+ t.equal(cache.set("c", "CCCC"), true)
198
+ t.end()
199
+ })
200
+
201
+ test("drop the old items", function(t) {
202
+ var cache = new LRU({
203
+ max: 5,
204
+ maxAge: 50
205
+ })
206
+
207
+ cache.set("a", "A")
208
+
209
+ setTimeout(function () {
210
+ cache.set("b", "b")
211
+ t.equal(cache.get("a"), "A")
212
+ }, 25)
213
+
214
+ setTimeout(function () {
215
+ cache.set("c", "C")
216
+ // timed out
217
+ t.notOk(cache.get("a"))
218
+ }, 60)
219
+
220
+ setTimeout(function () {
221
+ t.notOk(cache.get("b"))
222
+ t.equal(cache.get("c"), "C")
223
+ }, 90)
224
+
225
+ setTimeout(function () {
226
+ t.notOk(cache.get("c"))
227
+ t.end()
228
+ }, 155)
229
+ })
230
+
231
+ test("disposal function", function(t) {
232
+ var disposed = false
233
+ var cache = new LRU({
234
+ max: 1,
235
+ dispose: function (k, n) {
236
+ disposed = n
237
+ }
238
+ })
239
+
240
+ cache.set(1, 1)
241
+ cache.set(2, 2)
242
+ t.equal(disposed, 1)
243
+ cache.set(3, 3)
244
+ t.equal(disposed, 2)
245
+ cache.reset()
246
+ t.equal(disposed, 3)
247
+ t.end()
248
+ })
249
+
250
+ test("disposal function on too big of item", function(t) {
251
+ var disposed = false
252
+ var cache = new LRU({
253
+ max: 1,
254
+ length: function (k) {
255
+ return k.length
256
+ },
257
+ dispose: function (k, n) {
258
+ disposed = n
259
+ }
260
+ })
261
+ var obj = [ 1, 2 ]
262
+
263
+ t.equal(disposed, false)
264
+ cache.set("obj", obj)
265
+ t.equal(disposed, obj)
266
+ t.end()
267
+ })
268
+
269
+ test("has()", function(t) {
270
+ var cache = new LRU({
271
+ max: 1,
272
+ maxAge: 10
273
+ })
274
+
275
+ cache.set('foo', 'bar')
276
+ t.equal(cache.has('foo'), true)
277
+ cache.set('blu', 'baz')
278
+ t.equal(cache.has('foo'), false)
279
+ t.equal(cache.has('blu'), true)
280
+ setTimeout(function() {
281
+ t.equal(cache.has('blu'), false)
282
+ t.end()
283
+ }, 15)
284
+ })
285
+
286
+ test("stale", function(t) {
287
+ var cache = new LRU({
288
+ maxAge: 10,
289
+ stale: true
290
+ })
291
+
292
+ cache.set('foo', 'bar')
293
+ t.equal(cache.get('foo'), 'bar')
294
+ t.equal(cache.has('foo'), true)
295
+ setTimeout(function() {
296
+ t.equal(cache.has('foo'), false)
297
+ t.equal(cache.get('foo'), 'bar')
298
+ t.equal(cache.get('foo'), undefined)
299
+ t.end()
300
+ }, 15)
301
+ })
302
+
303
+ test("lru update via set", function(t) {
304
+ var cache = LRU({ max: 2 });
305
+
306
+ cache.set('foo', 1);
307
+ cache.set('bar', 2);
308
+ cache.del('bar');
309
+ cache.set('baz', 3);
310
+ cache.set('qux', 4);
311
+
312
+ t.equal(cache.get('foo'), undefined)
313
+ t.equal(cache.get('bar'), undefined)
314
+ t.equal(cache.get('baz'), 3)
315
+ t.equal(cache.get('qux'), 4)
316
+ t.end()
317
+ })
318
+
319
+ test("least recently set w/ peek", function (t) {
320
+ var cache = new LRU(2)
321
+ cache.set("a", "A")
322
+ cache.set("b", "B")
323
+ t.equal(cache.peek("a"), "A")
324
+ cache.set("c", "C")
325
+ t.equal(cache.get("c"), "C")
326
+ t.equal(cache.get("b"), "B")
327
+ t.equal(cache.get("a"), undefined)
328
+ t.end()
329
+ })
330
+
331
+ test("pop the least used item", function (t) {
332
+ var cache = new LRU(3)
333
+ , last
334
+
335
+ cache.set("a", "A")
336
+ cache.set("b", "B")
337
+ cache.set("c", "C")
338
+
339
+ t.equal(cache.length, 3)
340
+ t.equal(cache.max, 3)
341
+
342
+ // Ensure we pop a, c, b
343
+ cache.get("b", "B")
344
+
345
+ last = cache.pop()
346
+ t.equal(last.key, "a")
347
+ t.equal(last.value, "A")
348
+ t.equal(cache.length, 2)
349
+ t.equal(cache.max, 3)
350
+
351
+ last = cache.pop()
352
+ t.equal(last.key, "c")
353
+ t.equal(last.value, "C")
354
+ t.equal(cache.length, 1)
355
+ t.equal(cache.max, 3)
356
+
357
+ last = cache.pop()
358
+ t.equal(last.key, "b")
359
+ t.equal(last.value, "B")
360
+ t.equal(cache.length, 0)
361
+ t.equal(cache.max, 3)
362
+
363
+ last = cache.pop()
364
+ t.equal(last, null)
365
+ t.equal(cache.length, 0)
366
+ t.equal(cache.max, 3)
367
+
368
+ t.end()
369
+ })