wankel 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/LICENSE +20 -0
  4. data/README.md +43 -0
  5. data/Rakefile +63 -0
  6. data/benchmark/subjects/item.json +1 -0
  7. data/benchmark/subjects/ohai.json +1216 -0
  8. data/benchmark/subjects/twitter_search.json +1 -0
  9. data/benchmark/subjects/twitter_stream.json +430 -0
  10. data/ext/wankel/extconf.rb +15 -0
  11. data/ext/wankel/wankel.c +50 -0
  12. data/ext/wankel/wankel.h +17 -0
  13. data/ext/wankel/wankel_encoder.c +232 -0
  14. data/ext/wankel/wankel_encoder.h +13 -0
  15. data/ext/wankel/wankel_parser.c +345 -0
  16. data/ext/wankel/wankel_parser.h +26 -0
  17. data/ext/wankel/wankel_sax_encoder.c +290 -0
  18. data/ext/wankel/wankel_sax_encoder.h +13 -0
  19. data/ext/wankel/wankel_sax_parser.c +232 -0
  20. data/ext/wankel/wankel_sax_parser.h +23 -0
  21. data/ext/wankel/yajl_helpers.c +124 -0
  22. data/ext/wankel/yajl_helpers.h +22 -0
  23. data/lib/wankel/ex_sax_parser.rb +75 -0
  24. data/lib/wankel.rb +19 -0
  25. data/logo.png +0 -0
  26. data/test/encoding/encoding_test.rb +230 -0
  27. data/test/encoding/sax_encoder_test.rb +89 -0
  28. data/test/parsing/active_support_test.rb +66 -0
  29. data/test/parsing/fixtures/fail.15.json +1 -0
  30. data/test/parsing/fixtures/fail.16.json +1 -0
  31. data/test/parsing/fixtures/fail.17.json +1 -0
  32. data/test/parsing/fixtures/fail.26.json +1 -0
  33. data/test/parsing/fixtures/fail11.json +1 -0
  34. data/test/parsing/fixtures/fail12.json +1 -0
  35. data/test/parsing/fixtures/fail13.json +1 -0
  36. data/test/parsing/fixtures/fail14.json +1 -0
  37. data/test/parsing/fixtures/fail19.json +1 -0
  38. data/test/parsing/fixtures/fail20.json +1 -0
  39. data/test/parsing/fixtures/fail21.json +1 -0
  40. data/test/parsing/fixtures/fail22.json +1 -0
  41. data/test/parsing/fixtures/fail23.json +1 -0
  42. data/test/parsing/fixtures/fail24.json +1 -0
  43. data/test/parsing/fixtures/fail25.json +1 -0
  44. data/test/parsing/fixtures/fail27.json +2 -0
  45. data/test/parsing/fixtures/fail28.json +2 -0
  46. data/test/parsing/fixtures/fail3.json +1 -0
  47. data/test/parsing/fixtures/fail4.json +1 -0
  48. data/test/parsing/fixtures/fail5.json +1 -0
  49. data/test/parsing/fixtures/fail6.json +1 -0
  50. data/test/parsing/fixtures/fail9.json +1 -0
  51. data/test/parsing/fixtures/pass.array.json +6 -0
  52. data/test/parsing/fixtures/pass.codepoints_from_unicode_org.json +1 -0
  53. data/test/parsing/fixtures/pass.contacts.json +1 -0
  54. data/test/parsing/fixtures/pass.db100.xml.json +1 -0
  55. data/test/parsing/fixtures/pass.db1000.xml.json +1 -0
  56. data/test/parsing/fixtures/pass.dc_simple_with_comments.json +11 -0
  57. data/test/parsing/fixtures/pass.deep_arrays.json +1 -0
  58. data/test/parsing/fixtures/pass.difficult_json_c_test_case.json +1 -0
  59. data/test/parsing/fixtures/pass.difficult_json_c_test_case_with_comments.json +1 -0
  60. data/test/parsing/fixtures/pass.doubles.json +1 -0
  61. data/test/parsing/fixtures/pass.empty_array.json +1 -0
  62. data/test/parsing/fixtures/pass.empty_string.json +1 -0
  63. data/test/parsing/fixtures/pass.escaped_bulgarian.json +4 -0
  64. data/test/parsing/fixtures/pass.escaped_foobar.json +1 -0
  65. data/test/parsing/fixtures/pass.item.json +1 -0
  66. data/test/parsing/fixtures/pass.json-org-sample1.json +23 -0
  67. data/test/parsing/fixtures/pass.json-org-sample2.json +11 -0
  68. data/test/parsing/fixtures/pass.json-org-sample3.json +26 -0
  69. data/test/parsing/fixtures/pass.json-org-sample4-nows.json +88 -0
  70. data/test/parsing/fixtures/pass.json-org-sample4.json +89 -0
  71. data/test/parsing/fixtures/pass.json-org-sample5.json +27 -0
  72. data/test/parsing/fixtures/pass.map-spain.xml.json +1 -0
  73. data/test/parsing/fixtures/pass.ns-invoice100.xml.json +1 -0
  74. data/test/parsing/fixtures/pass.ns-soap.xml.json +1 -0
  75. data/test/parsing/fixtures/pass.numbers-fp-4k.json +6 -0
  76. data/test/parsing/fixtures/pass.numbers-fp-64k.json +61 -0
  77. data/test/parsing/fixtures/pass.numbers-int-4k.json +11 -0
  78. data/test/parsing/fixtures/pass.numbers-int-64k.json +154 -0
  79. data/test/parsing/fixtures/pass.twitter-search.json +1 -0
  80. data/test/parsing/fixtures/pass.twitter-search2.json +1 -0
  81. data/test/parsing/fixtures/pass.unicode.json +3315 -0
  82. data/test/parsing/fixtures/pass.yelp.json +1 -0
  83. data/test/parsing/fixtures/pass1.json +56 -0
  84. data/test/parsing/fixtures/pass2.json +1 -0
  85. data/test/parsing/fixtures/pass3.json +6 -0
  86. data/test/parsing/fixtures_test.rb +43 -0
  87. data/test/parsing/multiple_values_test.rb +100 -0
  88. data/test/parsing/one_off_test.rb +65 -0
  89. data/test/parsing/sax_parser_test.rb +125 -0
  90. data/test/performance.rb +135 -0
  91. data/test/test_helper.rb +36 -0
  92. data/test/wankel_test.rb +53 -0
  93. data/wankel.gemspec +23 -0
  94. metadata +259 -0
@@ -0,0 +1 @@
1
+ {"results":[{"text":"RT @tmornini: Engine Yard Express = perfect way to test merb or rails deployment - http:\/\/express.engineyard.com\/","to_user_id":null,"from_user":"seanhealy","id":1429979943,"from_user_id":4485910,"iso_language_code":"en","source":"<a href="http:\/\/iconfactory.com\/software\/twitterrific">twitterrific<\/a>","profile_image_url":"https:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/62254150\/irish_noir_normal.jpg","created_at":"Wed, 01 Apr 2009 07:06:16 +0000"},{"text":"RT: Engine Yard Express = perfect way to test merb or rails deployment - http:\/\/express.engineyard.com\/ (via @digsby)","to_user_id":null,"from_user":"tmornini","id":1429966620,"from_user_id":168963,"iso_language_code":"en","source":"<a href="http:\/\/twitter.com\/">web<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/49018042\/Tom_Icon_64x64_normal.png","created_at":"Wed, 01 Apr 2009 07:02:00 +0000"},{"text":"Engine Yard Express = perfect way to test merb or rails deployment - http:\/\/express.engineyard.com\/","to_user_id":null,"from_user":"richardholland","id":1428644441,"from_user_id":1608628,"iso_language_code":"en","source":"<a href="http:\/\/www.digsby.com\/">digsby<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/63723025\/mesarah_normal.jpg","created_at":"Wed, 01 Apr 2009 02:07:30 +0000"},{"text":"RT @wycats: How to survive monster attacks. Some tips from your friends at EngineYard http:\/\/twitpic.com\/2nl7x","to_user_id":null,"from_user":"AmandaMorin","id":1427373261,"from_user_id":1756964,"iso_language_code":"en","source":"<a href="http:\/\/www.tweetdeck.com\/">TweetDeck<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/67971839\/avatar_normal.jpg","created_at":"Tue, 31 Mar 2009 22:19:29 +0000"},{"text":"engineyard added jarnold to mongrel: \n\n \n \n \n mongrel is at engineyard\/mongrel http:\/\/tinyurl.com\/dm7ldz","to_user_id":null,"from_user":"_snax","id":1427357028,"from_user_id":118386,"iso_language_code":"en","source":"<a href="http:\/\/twitterfeed.com">twitterfeed<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/19934062\/logo_large_normal.gif","created_at":"Tue, 31 Mar 2009 22:16:38 +0000"},{"text":"RT: LOL! RT @wycats:How to survive monster attacks. Some tips from your friends at EngineYard http:\/\/twitpic... http:\/\/tinyurl.com\/cgs2hj","to_user_id":null,"from_user":"howtotweets","id":1427228937,"from_user_id":3437258,"iso_language_code":"en","source":"<a href="http:\/\/twitterfeed.com">twitterfeed<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/81039760\/images_normal.jpg","created_at":"Tue, 31 Mar 2009 21:54:32 +0000"},{"text":"LOL! RT @wycats:How to survive monster attacks. Some tips from your friends at EngineYard http:\/\/twitpic.com\/2nl7x","to_user_id":null,"from_user":"tsykoduk","id":1427225099,"from_user_id":71236,"iso_language_code":"en","source":"<a href="http:\/\/www.nambu.com">Nambu<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/63278451\/Photo_33_normal.jpg","created_at":"Tue, 31 Mar 2009 21:53:52 +0000"},{"text":"RT @wycats: How to survive monster attacks. Some tips from your friends at EngineYard http:\/\/twitpic.com\/2nl7x","to_user_id":null,"from_user":"bratta","id":1427177698,"from_user_id":8376,"iso_language_code":"en","source":"<a href="http:\/\/thecosmicmachine.com\/eventbox\/">EventBox<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/80333638\/photo_normal.jpg","created_at":"Tue, 31 Mar 2009 21:45:46 +0000"},{"text":"additional infos on the engineyard outage: http:\/\/tinyurl.com\/cbhbkn","to_user_id":null,"from_user":"aentos","id":1427149457,"from_user_id":6459508,"iso_language_code":"en","source":"<a href="http:\/\/twitterfox.net\/">TwitterFox<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/66789130\/aentos_a_normal.png","created_at":"Tue, 31 Mar 2009 21:40:47 +0000"},{"text":"http:\/\/twitpic.com\/2nl9z - Surviving monster attacks. A PSA from your friends @engineyard","to_user_id":null,"from_user":"carllerche","id":1427108503,"from_user_id":880629,"iso_language_code":"en","source":"<a href="http:\/\/twitpic.com\/">TwitPic<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/56520194\/fry_coffee2_normal.jpg","created_at":"Tue, 31 Mar 2009 21:33:38 +0000"},{"text":"How to survive monster attacks. Some tips from your friends at EngineYard http:\/\/twitpic.com\/2nl7x","to_user_id":null,"from_user":"wycats","id":1427099726,"from_user_id":18414,"iso_language_code":"en","source":"<a href="http:\/\/twitterfon.net\/">TwitterFon<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/51747258\/Yehuda_-_Looking_at_Sky_normal.jpg","created_at":"Tue, 31 Mar 2009 21:32:07 +0000"},{"text":"RT @engineyard: Our CEO posted an update on yesterday's outage: http:\/\/bit.ly\/yA4p5 Good job keeping people in the loop!","to_user_id":null,"from_user":"fatnutz","id":1426857591,"from_user_id":706358,"iso_language_code":"en","source":"<a href="http:\/\/www.tweetdeck.com\/">TweetDeck<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/55573179\/snipe_normal.jpg","created_at":"Tue, 31 Mar 2009 20:50:21 +0000"},{"text":"loving our @entryway @engineyard solo instance, we built an integrity server in mins flat with @atmos lovely chef scripts: http:\/\/is.gd\/pVXw","to_user_id":null,"from_user":"gustin","id":1426653742,"from_user_id":3736601,"iso_language_code":"en","source":"<a href="http:\/\/83degrees.com\/to\/powertwitter">Power Twitter<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/116498033\/face_normal.png","created_at":"Tue, 31 Mar 2009 20:16:36 +0000"},{"text":"RT: Our CEO posted an update on yesterday's outage: http:\/\/bit.ly\/yA4p5 (via @engineyard)","to_user_id":null,"from_user":"tmornini","id":1426483075,"from_user_id":168963,"iso_language_code":"en","source":"<a href="http:\/\/twitter.com\/">web<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/49018042\/Tom_Icon_64x64_normal.png","created_at":"Tue, 31 Mar 2009 19:47:00 +0000"},{"text":"#engineyard #github very impressive - both the reason and the response - I must have missed the blog sorry","to_user_id":null,"from_user":"rickwindham","id":1426328592,"from_user_id":1819414,"iso_language_code":"en","source":"<a href="http:\/\/www.tweetdeck.com\/">TweetDeck<\/a>","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/73617189\/me_new_normal.jpg","created_at":"Tue, 31 Mar 2009 19:16:30 +0000"}],"since_id":1386843259,"max_id":1429979943,"refresh_url":"?since_id=1429979943&q=engineyard","results_per_page":15,"next_page":"?page=2&max_id=1429979943&since_id=1386843259&q=engineyard","warning":"adjusted since_id, it was older than allowed","completed_in":0.037275,"page":1,"query":"engineyard"}