smoke 0.5.17 → 0.5.19
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +5 -5
- data/Rakefile +1 -0
- data/VERSION.yml +2 -2
- data/lib/core_ext/array.rb +12 -0
- data/lib/smoke.rb +24 -13
- data/lib/smoke/cache.rb +4 -4
- data/lib/smoke/origin.rb +6 -11
- data/lib/smoke/request.rb +5 -14
- data/lib/smoke/transformer.rb +7 -0
- data/lib/smoke/transformers/json.rb +15 -0
- data/lib/smoke/transformers/ruby.rb +11 -0
- data/lib/smoke/{output → transformers}/xml.rb +12 -6
- data/lib/smoke/transformers/yaml.rb +15 -0
- data/spec/smoke/origin_spec.rb +4 -0
- data/spec/smoke/request_spec.rb +7 -0
- data/spec/smoke/{output → transformers}/xml_spec.rb +4 -6
- data/spec/smoke/transformers_spec.rb +35 -0
- data/spec/smoke_spec.rb +18 -10
- data/spec/supports/twitter_timeline.json +22 -0
- metadata +23 -30
- data/rdoc/classes/Smoke.html +0 -260
- data/rdoc/classes/Smoke/Origin.html +0 -340
- data/rdoc/classes/Smoke/Source/Data.html +0 -126
- data/rdoc/classes/Smoke/Source/Feed.html +0 -117
- data/rdoc/classes/Smoke/Source/YQL.html +0 -223
- data/rdoc/created.rid +0 -1
- data/rdoc/files/README_markdown.html +0 -180
- data/rdoc/files/lib/core_ext/hash_rb.html +0 -49
- data/rdoc/files/lib/smoke/origin_rb.html +0 -49
- data/rdoc/files/lib/smoke/request_rb.html +0 -49
- data/rdoc/files/lib/smoke/source/data_rb.html +0 -49
- data/rdoc/files/lib/smoke/source/feed_rb.html +0 -49
- data/rdoc/files/lib/smoke/source/join_rb.html +0 -49
- data/rdoc/files/lib/smoke/source/yql_rb.html +0 -49
- data/rdoc/files/lib/smoke_rb.html +0 -65
- data/rdoc/fr_class_index.html +0 -21
- data/rdoc/fr_file_index.html +0 -28
- data/rdoc/fr_method_index.html +0 -4459
- data/rdoc/index.html +0 -15
- data/rdoc/rdoc-style.css +0 -319
- data/spec/smoke/input/xls_spec.rb +0 -15
- data/spec/smoke/shared_spec.rb +0 -182
- data/spec/supports/gov_act_toliets.xls +0 -0
@@ -0,0 +1,22 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Date: Sat, 28 Nov 2009 01:33:50 GMT
|
3
|
+
Server: hi
|
4
|
+
X-RateLimit-Limit: 150
|
5
|
+
X-Transaction: 1259372030-50268-4776
|
6
|
+
Status: 200 OK
|
7
|
+
ETag: "dab154fd04bc336722629efd9ef194e2"
|
8
|
+
Last-Modified: Sat, 28 Nov 2009 01:33:50 GMT
|
9
|
+
X-RateLimit-Remaining: 147
|
10
|
+
X-Runtime: 0.03547
|
11
|
+
Content-Type: application/json; charset=utf-8
|
12
|
+
Pragma: no-cache
|
13
|
+
Content-Length: 25267
|
14
|
+
Cache-Control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0
|
15
|
+
Expires: Tue, 31 Mar 1981 05:00:00 GMT
|
16
|
+
X-Revision: DEV
|
17
|
+
X-RateLimit-Reset: 1259375590
|
18
|
+
Set-Cookie: _twitter_sess=BAh7CDoRdHJhbnNfcHJvbXB0MDoHaWQiJTFlYWRlZTBhZjA0NThkNDEwMmU4%250ANzBjN2I1YWJlOTk0IgpmbGFzaElDOidBY3Rpb25Db250cm9sbGVyOjpGbGFz%250AaDo6Rmxhc2hIYXNoewAGOgpAdXNlZHsA--f87ff35e493f3d1e48325a1b470a61533ea92fc3; domain=.twitter.com; path=/
|
19
|
+
Vary: Accept-Encoding
|
20
|
+
Connection: close
|
21
|
+
|
22
|
+
[{"in_reply_to_user_id":7840362,"in_reply_to_status_id":6104493462,"truncated":false,"source":"<a href=\"http://www.atebits.com/\" rel=\"nofollow\">Tweetie</a>","favorited":false,"geo":null,"user":{"profile_sidebar_fill_color":"FFFFFF","description":"Interaction designer, Wannabe programmer, American expat living in Sydney, Father of three. Tired.","screen_name":"philoye","followers_count":329,"following":false,"statuses_count":3049,"time_zone":"Sydney","profile_sidebar_border_color":"999999","friends_count":350,"notifications":false,"favourites_count":418,"profile_text_color":"333333","url":"http://philoye.com/","profile_background_image_url":"http://s.twimg.com/a/1259091217/images/themes/theme1/bg.png","geo_enabled":false,"profile_link_color":"FF0000","protected":false,"profile_background_tile":false,"created_at":"Tue Nov 06 20:05:03 +0000 2007","location":"Sydney, Australia","name":"Phil Oye","verified":false,"profile_background_color":"666666","profile_image_url":"http://a1.twimg.com/profile_images/35669362/philoye-bw-square48_normal.jpg","id":10008832,"utc_offset":36000},"in_reply_to_screen_name":"snapperwolf","created_at":"Fri Nov 27 21:44:07 +0000 2009","id":6123426298,"text":"@snapperwolf nice! Do you have their gps app as well?"},{"in_reply_to_user_id":19786014,"in_reply_to_status_id":6110678056,"truncated":false,"source":"<a href=\"http://www.atebits.com/\" rel=\"nofollow\">Tweetie</a>","favorited":false,"geo":null,"user":{"notifications":false,"favourites_count":416,"profile_sidebar_fill_color":"FFFFFF","description":"Interaction designer, Wannabe programmer, American expat living in Sydney, Father of three. Tired.","screen_name":"philoye","following":false,"statuses_count":3048,"time_zone":"Sydney","profile_sidebar_border_color":"999999","geo_enabled":false,"profile_text_color":"333333","url":"http://philoye.com/","verified":false,"profile_background_image_url":"http://s.twimg.com/a/1258570280/images/themes/theme1/bg.png","profile_link_color":"FF0000","followers_count":330,"protected":false,"profile_background_tile":false,"created_at":"Tue Nov 06 20:05:03 +0000 2007","location":"Sydney, Australia","name":"Phil Oye","friends_count":350,"profile_background_color":"666666","profile_image_url":"http://a1.twimg.com/profile_images/35669362/philoye-bw-square48_normal.jpg","id":10008832,"utc_offset":36000},"in_reply_to_screen_name":"MonsterQuads","created_at":"Fri Nov 27 12:42:00 +0000 2009","id":6110808497,"text":"@MonsterQuads Sure I can!"},{"in_reply_to_user_id":14336868,"in_reply_to_status_id":6110521499,"truncated":false,"source":"<a href=\"http://www.atebits.com/\" rel=\"nofollow\">Tweetie</a>","favorited":false,"geo":null,"user":{"profile_sidebar_fill_color":"FFFFFF","description":"Interaction designer, Wannabe programmer, American expat living in Sydney, Father of three. Tired.","screen_name":"philoye","friends_count":350,"following":false,"time_zone":"Sydney","profile_sidebar_border_color":"999999","notifications":false,"favourites_count":416,"statuses_count":3047,"profile_text_color":"333333","url":"http://philoye.com/","profile_background_image_url":"http://s.twimg.com/a/1258570280/images/themes/theme1/bg.png","geo_enabled":false,"profile_link_color":"FF0000","protected":false,"profile_background_tile":false,"created_at":"Tue Nov 06 20:05:03 +0000 2007","location":"Sydney, Australia","name":"Phil Oye","verified":false,"profile_background_color":"666666","profile_image_url":"http://a1.twimg.com/profile_images/35669362/philoye-bw-square48_normal.jpg","id":10008832,"utc_offset":36000,"followers_count":330},"in_reply_to_screen_name":"muser74","created_at":"Fri Nov 27 12:41:50 +0000 2009","id":6110805691,"text":"@muser74 Good question. Must follow through on the decision first..."},{"in_reply_to_user_id":null,"in_reply_to_status_id":null,"truncated":false,"source":"<a href=\"http://www.atebits.com/\" rel=\"nofollow\">Tweetie</a>","favorited":false,"geo":null,"user":{"profile_sidebar_fill_color":"FFFFFF","followers_count":330,"description":"Interaction designer, Wannabe programmer, American expat living in Sydney, Father of three. Tired.","screen_name":"philoye","following":null,"time_zone":"Sydney","friends_count":350,"profile_sidebar_border_color":"999999","geo_enabled":false,"notifications":null,"profile_text_color":"333333","url":"http://philoye.com/","verified":false,"statuses_count":3046,"profile_background_image_url":"http://s.twimg.com/a/1258570280/images/themes/theme1/bg.png","profile_link_color":"FF0000","protected":false,"profile_background_tile":false,"created_at":"Tue Nov 06 20:05:03 +0000 2007","location":"Sydney, Australia","name":"Phil Oye","profile_background_color":"666666","profile_image_url":"http://a1.twimg.com/profile_images/35669362/philoye-bw-square48_normal.jpg","id":10008832,"utc_offset":36000,"favourites_count":416},"in_reply_to_screen_name":null,"created_at":"Fri Nov 27 12:13:41 +0000 2009","id":6110295670,"text":"Just made a big decision. This is going to be good."},{"in_reply_to_user_id":11661,"in_reply_to_status_id":6109621341,"truncated":false,"source":"<a href=\"http://www.atebits.com/\" rel=\"nofollow\">Tweetie</a>","favorited":false,"geo":null,"user":{"profile_sidebar_fill_color":"FFFFFF","description":"Interaction designer, Wannabe programmer, American expat living in Sydney, Father of three. Tired.","screen_name":"philoye","friends_count":350,"following":null,"statuses_count":3045,"time_zone":"Sydney","profile_sidebar_border_color":"999999","notifications":null,"favourites_count":416,"geo_enabled":false,"profile_text_color":"333333","url":"http://philoye.com/","profile_background_image_url":"http://s.twimg.com/a/1258570280/images/themes/theme1/bg.png","verified":false,"profile_link_color":"FF0000","protected":false,"profile_background_tile":false,"created_at":"Tue Nov 06 20:05:03 +0000 2007","location":"Sydney, Australia","name":"Phil Oye","profile_background_color":"666666","profile_image_url":"http://a1.twimg.com/profile_images/35669362/philoye-bw-square48_normal.jpg","id":10008832,"utc_offset":36000,"followers_count":330},"in_reply_to_screen_name":"Hicksdesign","created_at":"Fri Nov 27 12:12:34 +0000 2009","id":6110277351,"text":"@Hicksdesign I keep client work forever. Hard drives keep getting bigger, why purge?"},{"in_reply_to_user_id":5446832,"in_reply_to_status_id":6108889292,"truncated":false,"source":"<a href=\"http://www.atebits.com/\" rel=\"nofollow\">Tweetie</a>","favorited":false,"geo":null,"user":{"profile_sidebar_fill_color":"FFFFFF","description":"Interaction designer, Wannabe programmer, American expat living in Sydney, Father of three. Tired.","screen_name":"philoye","notifications":false,"favourites_count":416,"following":true,"time_zone":"Sydney","profile_sidebar_border_color":"999999","statuses_count":3044,"geo_enabled":false,"profile_text_color":"333333","url":"http://philoye.com/","profile_background_image_url":"http://s.twimg.com/a/1258570280/images/themes/theme1/bg.png","verified":false,"profile_link_color":"FF0000","protected":false,"profile_background_tile":false,"created_at":"Tue Nov 06 20:05:03 +0000 2007","followers_count":330,"location":"Sydney, Australia","name":"Phil Oye","profile_background_color":"666666","profile_image_url":"http://a1.twimg.com/profile_images/35669362/philoye-bw-square48_normal.jpg","id":10008832,"utc_offset":36000,"friends_count":350},"in_reply_to_screen_name":"chrislloyd","created_at":"Fri Nov 27 12:11:17 +0000 2009","id":6110255379,"text":"@chrislloyd I'm much more subtle than that... bastard."},{"in_reply_to_user_id":5446832,"in_reply_to_status_id":6103238619,"truncated":false,"source":"<a href=\"http://www.atebits.com/\" rel=\"nofollow\">Tweetie</a>","favorited":false,"geo":null,"user":{"profile_sidebar_fill_color":"FFFFFF","description":"Interaction designer, Wannabe programmer, American expat living in Sydney, Father of three. Tired.","screen_name":"philoye","followers_count":330,"following":null,"statuses_count":3043,"time_zone":"Sydney","profile_sidebar_border_color":"999999","friends_count":350,"notifications":null,"favourites_count":416,"profile_text_color":"333333","url":"http://philoye.com/","profile_background_image_url":"http://s.twimg.com/a/1258570280/images/themes/theme1/bg.png","geo_enabled":false,"profile_link_color":"FF0000","protected":false,"profile_background_tile":false,"created_at":"Tue Nov 06 20:05:03 +0000 2007","location":"Sydney, Australia","name":"Phil Oye","verified":false,"profile_background_color":"666666","profile_image_url":"http://a1.twimg.com/profile_images/35669362/philoye-bw-square48_normal.jpg","id":10008832,"utc_offset":36000},"in_reply_to_screen_name":"chrislloyd","created_at":"Fri Nov 27 10:26:19 +0000 2009","id":6108595344,"text":"@chrislloyd That hurts."},{"in_reply_to_user_id":59282163,"in_reply_to_status_id":6102227194,"truncated":false,"source":"<a href=\"http://www.atebits.com/\" rel=\"nofollow\">Tweetie</a>","favorited":false,"geo":null,"user":{"profile_sidebar_fill_color":"FFFFFF","followers_count":330,"description":"Interaction designer, Wannabe programmer, American expat living in Sydney, Father of three. Tired.","screen_name":"philoye","following":null,"time_zone":"Sydney","friends_count":350,"profile_sidebar_border_color":"999999","geo_enabled":false,"notifications":null,"profile_text_color":"333333","url":"http://philoye.com/","verified":false,"statuses_count":3042,"profile_background_image_url":"http://s.twimg.com/a/1258570280/images/themes/theme1/bg.png","profile_link_color":"FF0000","protected":false,"profile_background_tile":false,"created_at":"Tue Nov 06 20:05:03 +0000 2007","location":"Sydney, Australia","name":"Phil Oye","profile_background_color":"666666","profile_image_url":"http://a1.twimg.com/profile_images/35669362/philoye-bw-square48_normal.jpg","id":10008832,"utc_offset":36000,"favourites_count":416},"in_reply_to_screen_name":"lstoll","created_at":"Fri Nov 27 04:00:32 +0000 2009","id":6102246599,"text":"@lstoll LIES, now, do a ladle of Ciroc."},{"in_reply_to_user_id":59282163,"in_reply_to_status_id":6102121249,"truncated":false,"source":"<a href=\"http://www.atebits.com/\" rel=\"nofollow\">Tweetie</a>","favorited":false,"geo":null,"user":{"profile_sidebar_fill_color":"FFFFFF","description":"Interaction designer, Wannabe programmer, American expat living in Sydney, Father of three. Tired.","screen_name":"philoye","followers_count":330,"following":null,"statuses_count":3041,"time_zone":"Sydney","profile_sidebar_border_color":"999999","friends_count":350,"notifications":null,"favourites_count":416,"profile_text_color":"333333","url":"http://philoye.com/","profile_background_image_url":"http://s.twimg.com/a/1258570280/images/themes/theme1/bg.png","geo_enabled":false,"profile_link_color":"FF0000","protected":false,"profile_background_tile":false,"created_at":"Tue Nov 06 20:05:03 +0000 2007","location":"Sydney, Australia","name":"Phil Oye","verified":false,"profile_background_color":"666666","profile_image_url":"http://a1.twimg.com/profile_images/35669362/philoye-bw-square48_normal.jpg","id":10008832,"utc_offset":36000},"in_reply_to_screen_name":"lstoll","created_at":"Fri Nov 27 03:58:44 +0000 2009","id":6102204206,"text":"@lstoll Missed out on a spot? There was an open spot on the RSVP list... https://jellynyc.pbworks.com/RSVP-for-Jelly-%40-AR"},{"in_reply_to_user_id":59282163,"in_reply_to_status_id":6102099614,"truncated":false,"source":"<a href=\"http://www.atebits.com/\" rel=\"nofollow\">Tweetie</a>","favorited":false,"geo":null,"user":{"profile_sidebar_fill_color":"FFFFFF","description":"Interaction designer, Wannabe programmer, American expat living in Sydney, Father of three. Tired.","screen_name":"philoye","friends_count":350,"following":true,"statuses_count":3040,"time_zone":"Sydney","profile_sidebar_border_color":"999999","notifications":false,"favourites_count":416,"geo_enabled":false,"profile_text_color":"333333","url":"http://philoye.com/","profile_background_image_url":"http://s.twimg.com/a/1258570280/images/themes/theme1/bg.png","verified":false,"profile_link_color":"FF0000","protected":false,"profile_background_tile":false,"created_at":"Tue Nov 06 20:05:03 +0000 2007","location":"Sydney, Australia","name":"Phil Oye","profile_background_color":"666666","profile_image_url":"http://a1.twimg.com/profile_images/35669362/philoye-bw-square48_normal.jpg","id":10008832,"utc_offset":36000,"followers_count":330},"in_reply_to_screen_name":"lstoll","created_at":"Fri Nov 27 03:55:54 +0000 2009","id":6102141908,"text":"@lstoll It *is* a public holiday in the US... I felt it only appropriate."},{"in_reply_to_user_id":59282163,"in_reply_to_status_id":6102056992,"truncated":false,"source":"<a href=\"http://www.atebits.com/\" rel=\"nofollow\">Tweetie</a>","favorited":false,"geo":null,"user":{"profile_sidebar_fill_color":"FFFFFF","followers_count":330,"description":"Interaction designer, Wannabe programmer, American expat living in Sydney, Father of three. Tired.","screen_name":"philoye","following":false,"time_zone":"Sydney","friends_count":350,"profile_sidebar_border_color":"999999","geo_enabled":false,"notifications":false,"profile_text_color":"333333","url":"http://philoye.com/","verified":false,"statuses_count":3039,"profile_background_image_url":"http://s.twimg.com/a/1258570280/images/themes/theme1/bg.png","profile_link_color":"FF0000","protected":false,"profile_background_tile":false,"created_at":"Tue Nov 06 20:05:03 +0000 2007","location":"Sydney, Australia","name":"Phil Oye","profile_background_color":"666666","profile_image_url":"http://a1.twimg.com/profile_images/35669362/philoye-bw-square48_normal.jpg","id":10008832,"utc_offset":36000,"favourites_count":416},"in_reply_to_screen_name":"lstoll","created_at":"Fri Nov 27 03:53:18 +0000 2009","id":6102085428,"text":"@lstoll Way ahead of you..."},{"in_reply_to_user_id":4928781,"in_reply_to_status_id":6079632837,"truncated":false,"source":"<a href=\"http://www.atebits.com/\" rel=\"nofollow\">Tweetie</a>","favorited":false,"geo":null,"user":{"geo_enabled":false,"profile_sidebar_fill_color":"FFFFFF","description":"Interaction designer, Wannabe programmer, American expat living in Sydney, Father of three. Tired.","screen_name":"philoye","following":null,"verified":false,"time_zone":"Sydney","profile_sidebar_border_color":"999999","followers_count":329,"friends_count":351,"profile_text_color":"333333","url":"http://philoye.com/","profile_background_image_url":"http://s.twimg.com/a/1258570280/images/themes/theme1/bg.png","notifications":null,"favourites_count":414,"profile_link_color":"FF0000","protected":false,"profile_background_tile":false,"created_at":"Tue Nov 06 20:05:03 +0000 2007","location":"Sydney, Australia","name":"Phil Oye","statuses_count":3038,"profile_background_color":"666666","profile_image_url":"http://a1.twimg.com/profile_images/35669362/philoye-bw-square48_normal.jpg","id":10008832,"utc_offset":36000},"in_reply_to_screen_name":"twalve","created_at":"Thu Nov 26 12:14:35 +0000 2009","id":6079747937,"text":"@twalve What a shame..."},{"in_reply_to_user_id":null,"in_reply_to_status_id":null,"truncated":false,"source":"<a href=\"http://www.atebits.com/\" rel=\"nofollow\">Tweetie</a>","favorited":false,"geo":null,"user":{"profile_sidebar_fill_color":"FFFFFF","description":"Interaction designer, Wannabe programmer, American expat living in Sydney, Father of three. Tired.","screen_name":"philoye","followers_count":329,"following":true,"statuses_count":3037,"time_zone":"Sydney","profile_sidebar_border_color":"999999","friends_count":351,"notifications":false,"favourites_count":414,"profile_text_color":"333333","url":"http://philoye.com/","profile_background_image_url":"http://s.twimg.com/a/1258570280/images/themes/theme1/bg.png","geo_enabled":false,"profile_link_color":"FF0000","protected":false,"profile_background_tile":false,"created_at":"Tue Nov 06 20:05:03 +0000 2007","location":"Sydney, Australia","name":"Phil Oye","verified":false,"profile_background_color":"666666","profile_image_url":"http://a1.twimg.com/profile_images/35669362/philoye-bw-square48_normal.jpg","id":10008832,"utc_offset":36000},"in_reply_to_screen_name":null,"created_at":"Thu Nov 26 12:11:51 +0000 2009","id":6079702262,"text":"Cockroaches are big and plentiful in this country."},{"in_reply_to_user_id":null,"in_reply_to_status_id":null,"truncated":false,"source":"<a href=\"http://www.atebits.com/\" rel=\"nofollow\">Tweetie</a>","favorited":false,"geo":null,"user":{"profile_sidebar_fill_color":"FFFFFF","description":"Interaction designer, Wannabe programmer, American expat living in Sydney, Father of three. Tired.","screen_name":"philoye","friends_count":351,"following":true,"statuses_count":3036,"time_zone":"Sydney","profile_sidebar_border_color":"999999","notifications":false,"favourites_count":414,"geo_enabled":false,"profile_text_color":"333333","url":"http://philoye.com/","profile_background_image_url":"http://s.twimg.com/a/1258570280/images/themes/theme1/bg.png","verified":false,"profile_link_color":"FF0000","protected":false,"profile_background_tile":false,"created_at":"Tue Nov 06 20:05:03 +0000 2007","location":"Sydney, Australia","name":"Phil Oye","profile_background_color":"666666","profile_image_url":"http://a1.twimg.com/profile_images/35669362/philoye-bw-square48_normal.jpg","id":10008832,"utc_offset":36000,"followers_count":329},"in_reply_to_screen_name":null,"created_at":"Thu Nov 26 11:44:30 +0000 2009","id":6079249122,"text":"Hey @mrspeaker, are you iPhone equipped? This looks like right up your alley: http://mrgan.tumblr.com/post/257187093/pie-guy"},{"in_reply_to_user_id":null,"in_reply_to_status_id":null,"truncated":false,"source":"<a href=\"http://www.atebits.com/\" rel=\"nofollow\">Tweetie</a>","favorited":false,"geo":null,"user":{"profile_sidebar_fill_color":"FFFFFF","description":"Interaction designer, Wannabe programmer, American expat living in Sydney, Father of three. Tired.","screen_name":"philoye","followers_count":329,"following":null,"statuses_count":3035,"time_zone":"Sydney","profile_sidebar_border_color":"999999","friends_count":355,"notifications":null,"favourites_count":413,"profile_text_color":"333333","url":"http://philoye.com/","profile_background_image_url":"http://s.twimg.com/a/1258570280/images/themes/theme1/bg.png","geo_enabled":false,"profile_link_color":"FF0000","protected":false,"profile_background_tile":false,"created_at":"Tue Nov 06 20:05:03 +0000 2007","location":"Sydney, Australia","name":"Phil Oye","verified":false,"profile_background_color":"666666","profile_image_url":"http://a1.twimg.com/profile_images/35669362/philoye-bw-square48_normal.jpg","id":10008832,"utc_offset":36000},"in_reply_to_screen_name":null,"created_at":"Wed Nov 25 22:16:59 +0000 2009","id":6062855190,"text":"I am thankful that @simonoye, @felixoye, and @jessicaoye all slept in to 6:30 this morning."},{"in_reply_to_user_id":735633,"in_reply_to_status_id":6044206457,"truncated":false,"source":"<a href=\"http://www.atebits.com/\" rel=\"nofollow\">Tweetie</a>","favorited":false,"geo":null,"user":{"profile_sidebar_fill_color":"FFFFFF","description":"Interaction designer, Wannabe programmer, American expat living in Sydney, Father of three. Tired.","screen_name":"philoye","friends_count":356,"following":null,"statuses_count":3034,"time_zone":"Sydney","profile_sidebar_border_color":"999999","notifications":null,"favourites_count":413,"geo_enabled":false,"profile_text_color":"333333","url":"http://philoye.com/","profile_background_image_url":"http://s.twimg.com/a/1258570280/images/themes/theme1/bg.png","verified":false,"profile_link_color":"FF0000","protected":false,"profile_background_tile":false,"created_at":"Tue Nov 06 20:05:03 +0000 2007","location":"Sydney, Australia","name":"Phil Oye","profile_background_color":"666666","profile_image_url":"http://a1.twimg.com/profile_images/35669362/philoye-bw-square48_normal.jpg","id":10008832,"utc_offset":36000,"followers_count":330},"in_reply_to_screen_name":"mrspeaker","created_at":"Wed Nov 25 08:22:19 +0000 2009","id":6044618481,"text":". @mrspeaker that is a hot design. Who knew that google could be supplanted so easily?"},{"in_reply_to_user_id":null,"in_reply_to_status_id":null,"truncated":false,"source":"<a href=\"http://www.atebits.com/\" rel=\"nofollow\">Tweetie</a>","favorited":false,"geo":null,"user":{"profile_sidebar_fill_color":"FFFFFF","description":"Interaction designer, Wannabe programmer, American expat living in Sydney, Father of three. Tired.","screen_name":"philoye","notifications":false,"favourites_count":413,"following":false,"time_zone":"Sydney","profile_sidebar_border_color":"999999","statuses_count":3033,"geo_enabled":false,"profile_text_color":"333333","url":"http://philoye.com/","profile_background_image_url":"http://s.twimg.com/a/1258570280/images/themes/theme1/bg.png","verified":false,"profile_link_color":"FF0000","protected":false,"profile_background_tile":false,"created_at":"Tue Nov 06 20:05:03 +0000 2007","followers_count":330,"location":"Sydney, Australia","name":"Phil Oye","profile_background_color":"666666","profile_image_url":"http://a1.twimg.com/profile_images/35669362/philoye-bw-square48_normal.jpg","id":10008832,"utc_offset":36000,"friends_count":356},"in_reply_to_screen_name":null,"created_at":"Wed Nov 25 00:47:43 +0000 2009","id":6035090091,"text":"Sending stuff to press is always a scary proposition."},{"in_reply_to_user_id":15267581,"in_reply_to_status_id":6022757970,"truncated":false,"source":"<a href=\"http://www.atebits.com/\" rel=\"nofollow\">Tweetie</a>","favorited":false,"geo":null,"user":{"profile_sidebar_fill_color":"FFFFFF","description":"Interaction designer, Wannabe programmer, American expat living in Sydney, Father of three. Tired.","screen_name":"philoye","friends_count":356,"following":null,"time_zone":"Sydney","profile_sidebar_border_color":"999999","notifications":null,"favourites_count":413,"statuses_count":3032,"profile_text_color":"333333","url":"http://philoye.com/","profile_background_image_url":"http://s.twimg.com/a/1258570280/images/themes/theme1/bg.png","geo_enabled":false,"profile_link_color":"FF0000","protected":false,"profile_background_tile":false,"created_at":"Tue Nov 06 20:05:03 +0000 2007","location":"Sydney, Australia","name":"Phil Oye","verified":false,"profile_background_color":"666666","profile_image_url":"http://a1.twimg.com/profile_images/35669362/philoye-bw-square48_normal.jpg","id":10008832,"utc_offset":36000,"followers_count":330},"in_reply_to_screen_name":"jontobey","created_at":"Wed Nov 25 00:19:25 +0000 2009","id":6024366331,"text":"@jontobey So they can send you a nice official offer in the mail for the job you are most certainly going to get."},{"in_reply_to_screen_name":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"source":"<a href=\"http://www.atebits.com/\" rel=\"nofollow\">Tweetie</a>","truncated":false,"user":{"profile_background_tile":false,"followers_count":330,"description":"Interaction designer, Wannabe programmer, American expat living in Sydney, Father of three. Tired.","profile_background_color":"666666","profile_image_url":"http://a1.twimg.com/profile_images/35669362/philoye-bw-square48_normal.jpg","following":null,"friends_count":356,"profile_sidebar_fill_color":"FFFFFF","screen_name":"philoye","notifications":null,"favourites_count":413,"time_zone":"Sydney","profile_sidebar_border_color":"999999","url":"http://philoye.com/","statuses_count":3031,"protected":false,"geo_enabled":false,"created_at":"Tue Nov 06 20:05:03 +0000 2007","profile_text_color":"333333","location":"Sydney, Australia","name":"Phil Oye","profile_background_image_url":"http://s.twimg.com/a/1258570280/images/themes/theme1/bg.png","id":10008832,"verified":false,"utc_offset":36000,"profile_link_color":"FF0000"},"created_at":"Tue Nov 24 22:55:33 +0000 2009","favorited":false,"id":6022089657,"geo":null,"text":"Hey @johndevanney, this one is for you: http://www.youtube.com/watch?v=tgbNymZ7vqY"},{"in_reply_to_screen_name":"jontobey","in_reply_to_user_id":15267581,"in_reply_to_status_id":6021422405,"source":"<a href=\"http://www.atebits.com/\" rel=\"nofollow\">Tweetie</a>","truncated":false,"user":{"profile_background_tile":false,"description":"Interaction designer, Wannabe programmer, American expat living in Sydney, Father of three. Tired.","profile_background_color":"666666","profile_image_url":"http://a1.twimg.com/profile_images/35669362/philoye-bw-square48_normal.jpg","following":false,"followers_count":330,"profile_sidebar_fill_color":"FFFFFF","screen_name":"philoye","friends_count":356,"statuses_count":3031,"time_zone":"Sydney","profile_sidebar_border_color":"999999","url":"http://philoye.com/","notifications":false,"favourites_count":413,"protected":false,"geo_enabled":false,"created_at":"Tue Nov 06 20:05:03 +0000 2007","profile_text_color":"333333","location":"Sydney, Australia","name":"Phil Oye","profile_background_image_url":"http://s.twimg.com/a/1258570280/images/themes/theme1/bg.png","id":10008832,"verified":false,"utc_offset":36000,"profile_link_color":"FF0000"},"created_at":"Tue Nov 24 22:52:43 +0000 2009","favorited":false,"id":6022013916,"geo":null,"text":"@jontobey Uh, perhaps to see if the person is local to the company and (easily) hireable?"}]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smoke
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Schwarz
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-01-24 00:00:00 +11:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -82,6 +82,16 @@ dependencies:
|
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: 1.3.2
|
84
84
|
version:
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: registry
|
87
|
+
type: :runtime
|
88
|
+
version_requirement:
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - ">="
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 0.1.2
|
94
|
+
version:
|
85
95
|
description:
|
86
96
|
email: ben.schwarz@gmail.com
|
87
97
|
executables: []
|
@@ -96,60 +106,44 @@ files:
|
|
96
106
|
- README.markdown
|
97
107
|
- Rakefile
|
98
108
|
- VERSION.yml
|
109
|
+
- lib/core_ext/array.rb
|
99
110
|
- lib/core_ext/hash.rb
|
100
111
|
- lib/core_ext/string.rb
|
101
112
|
- lib/smoke.rb
|
102
113
|
- lib/smoke/cache.rb
|
103
114
|
- lib/smoke/origin.rb
|
104
|
-
- lib/smoke/output/xml.rb
|
105
115
|
- lib/smoke/request.rb
|
106
116
|
- lib/smoke/source/data.rb
|
107
117
|
- lib/smoke/source/feed.rb
|
108
118
|
- lib/smoke/source/join.rb
|
109
119
|
- lib/smoke/source/yql.rb
|
110
|
-
-
|
111
|
-
-
|
112
|
-
-
|
113
|
-
-
|
114
|
-
-
|
115
|
-
- rdoc/created.rid
|
116
|
-
- rdoc/files/README_markdown.html
|
117
|
-
- rdoc/files/lib/core_ext/hash_rb.html
|
118
|
-
- rdoc/files/lib/smoke/origin_rb.html
|
119
|
-
- rdoc/files/lib/smoke/request_rb.html
|
120
|
-
- rdoc/files/lib/smoke/source/data_rb.html
|
121
|
-
- rdoc/files/lib/smoke/source/feed_rb.html
|
122
|
-
- rdoc/files/lib/smoke/source/join_rb.html
|
123
|
-
- rdoc/files/lib/smoke/source/yql_rb.html
|
124
|
-
- rdoc/files/lib/smoke_rb.html
|
125
|
-
- rdoc/fr_class_index.html
|
126
|
-
- rdoc/fr_file_index.html
|
127
|
-
- rdoc/fr_method_index.html
|
128
|
-
- rdoc/index.html
|
129
|
-
- rdoc/rdoc-style.css
|
120
|
+
- lib/smoke/transformer.rb
|
121
|
+
- lib/smoke/transformers/json.rb
|
122
|
+
- lib/smoke/transformers/ruby.rb
|
123
|
+
- lib/smoke/transformers/xml.rb
|
124
|
+
- lib/smoke/transformers/yaml.rb
|
130
125
|
- spec/core_ext/hash_spec.rb
|
131
126
|
- spec/smoke/cache_spec.rb
|
132
|
-
- spec/smoke/input/xls_spec.rb
|
133
127
|
- spec/smoke/origin_spec.rb
|
134
|
-
- spec/smoke/output/xml_spec.rb
|
135
128
|
- spec/smoke/request_spec.rb
|
136
|
-
- spec/smoke/shared_spec.rb
|
137
129
|
- spec/smoke/source/data_spec.rb
|
138
130
|
- spec/smoke/source/feed_spec.rb
|
139
131
|
- spec/smoke/source/join_spec.rb
|
140
132
|
- spec/smoke/source/yql_spec.rb
|
133
|
+
- spec/smoke/transformers/xml_spec.rb
|
134
|
+
- spec/smoke/transformers_spec.rb
|
141
135
|
- spec/smoke_spec.rb
|
142
136
|
- spec/spec.opts
|
143
137
|
- spec/spec_helper.rb
|
144
138
|
- spec/supports/amc_pacer.json.yql
|
145
139
|
- spec/supports/datatables.yql
|
146
140
|
- spec/supports/flickr-photo.json
|
147
|
-
- spec/supports/gov_act_toliets.xls
|
148
141
|
- spec/supports/gzip_response.txt
|
149
142
|
- spec/supports/search-web.json.yql
|
150
143
|
- spec/supports/search-web.xml.yql
|
151
144
|
- spec/supports/slashdot.xml
|
152
145
|
- spec/supports/test_source.rb
|
146
|
+
- spec/supports/twitter_timeline.json
|
153
147
|
has_rdoc: true
|
154
148
|
homepage: http://github.com/benschwarz/smoke
|
155
149
|
licenses: []
|
@@ -181,15 +175,14 @@ summary: smoke is a Ruby based DSL that allows you to query web services such as
|
|
181
175
|
test_files:
|
182
176
|
- spec/core_ext/hash_spec.rb
|
183
177
|
- spec/smoke/cache_spec.rb
|
184
|
-
- spec/smoke/input/xls_spec.rb
|
185
178
|
- spec/smoke/origin_spec.rb
|
186
|
-
- spec/smoke/output/xml_spec.rb
|
187
179
|
- spec/smoke/request_spec.rb
|
188
|
-
- spec/smoke/shared_spec.rb
|
189
180
|
- spec/smoke/source/data_spec.rb
|
190
181
|
- spec/smoke/source/feed_spec.rb
|
191
182
|
- spec/smoke/source/join_spec.rb
|
192
183
|
- spec/smoke/source/yql_spec.rb
|
184
|
+
- spec/smoke/transformers/xml_spec.rb
|
185
|
+
- spec/smoke/transformers_spec.rb
|
193
186
|
- spec/smoke_spec.rb
|
194
187
|
- spec/spec_helper.rb
|
195
188
|
- spec/supports/test_source.rb
|
data/rdoc/classes/Smoke.html
DELETED
@@ -1,260 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
-
<html lang='en'>
|
3
|
-
<head>
|
4
|
-
<title>: Smoke [smoke]</title>
|
5
|
-
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
|
6
|
-
<link href='../rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
|
7
|
-
<script type='text/javascript'>
|
8
|
-
//<![CDATA[
|
9
|
-
function popupCode(url) {
|
10
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
11
|
-
}
|
12
|
-
|
13
|
-
function toggleCode(id) {
|
14
|
-
var code = document.getElementById(id)
|
15
|
-
|
16
|
-
code.style.display = code.style.display != 'block' ? 'block' : 'none'
|
17
|
-
return true
|
18
|
-
}
|
19
|
-
|
20
|
-
// Make codeblocks hidden by default
|
21
|
-
document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
|
22
|
-
//]]>
|
23
|
-
</script>
|
24
|
-
</head>
|
25
|
-
<body class='page'>
|
26
|
-
<div class='class' id='wrapper'>
|
27
|
-
<div class='header'>
|
28
|
-
<h1 class='name'>
|
29
|
-
<span class='type'>Module</span>
|
30
|
-
Smoke
|
31
|
-
</h1>
|
32
|
-
<ol class='paths'>
|
33
|
-
<li>
|
34
|
-
<a href="../files/lib/smoke/request_rb.html">lib/smoke/request.rb</a>
|
35
|
-
</li>
|
36
|
-
<li class='other'>
|
37
|
-
<a href="../files/lib/smoke/origin_rb.html">lib/smoke/origin.rb</a>
|
38
|
-
</li>
|
39
|
-
<li class='other'>
|
40
|
-
<a href="../files/lib/smoke/source/data_rb.html">lib/smoke/source/data.rb</a>
|
41
|
-
</li>
|
42
|
-
<li class='other'>
|
43
|
-
<a href="../files/lib/smoke/source/feed_rb.html">lib/smoke/source/feed.rb</a>
|
44
|
-
</li>
|
45
|
-
<li class='other'>
|
46
|
-
<a href="../files/lib/smoke/source/join_rb.html">lib/smoke/source/join.rb</a>
|
47
|
-
</li>
|
48
|
-
<li class='other'>
|
49
|
-
<a href="../files/lib/smoke/source/yql_rb.html">lib/smoke/source/yql.rb</a>
|
50
|
-
</li>
|
51
|
-
<li class='other'>
|
52
|
-
<a href="../files/lib/smoke_rb.html">lib/smoke.rb</a>
|
53
|
-
</li>
|
54
|
-
<li>
|
55
|
-
<a class='show' href='#' onclick='this.parentNode.parentNode.className += " expanded"; this.parentNode.removeChild(this); return false'>show all</a>
|
56
|
-
</li>
|
57
|
-
</ol>
|
58
|
-
</div>
|
59
|
-
<div id='content'>
|
60
|
-
<div id='text'>
|
61
|
-
<div id='method-list'>
|
62
|
-
<h2>Methods</h2>
|
63
|
-
<h3>public class</h3>
|
64
|
-
<ol>
|
65
|
-
<li><a href="#M000001">[]</a></li>
|
66
|
-
<li><a href="#M000002">activate</a></li>
|
67
|
-
<li><a href="#M000003">active_sources</a></li>
|
68
|
-
<li><a href="#M000007">data</a></li>
|
69
|
-
<li><a href="#M000008">feed</a></li>
|
70
|
-
<li><a href="#M000009">join</a></li>
|
71
|
-
<li><a href="#M000005">log</a></li>
|
72
|
-
<li><a href="#M000004">rename</a></li>
|
73
|
-
<li><a href="#M000006">yql</a></li>
|
74
|
-
</ol>
|
75
|
-
</div>
|
76
|
-
<div id='section'>
|
77
|
-
<div id='class-list'>
|
78
|
-
<h2>Classes and Modules</h2>
|
79
|
-
Class <a href="Smoke/Origin.html" class="link">Smoke::Origin</a><br />
|
80
|
-
</div>
|
81
|
-
<div id='attribute-list'>
|
82
|
-
<h2 class='section-bar'>Attributes</h2>
|
83
|
-
<div class='name-list'>
|
84
|
-
<table>
|
85
|
-
<tr class='top-aligned-row context-row'>
|
86
|
-
<td class='context-item-name'>active_sources</td>
|
87
|
-
<td class='context-item-value'>[R]</td>
|
88
|
-
<td class='context-item-desc'></td>
|
89
|
-
</tr>
|
90
|
-
</table>
|
91
|
-
</div>
|
92
|
-
</div>
|
93
|
-
<div id='methods'>
|
94
|
-
<h2>Public class methods</h2>
|
95
|
-
<div class='public-class method' id='method-M000001'>
|
96
|
-
<a name='M000001'> </a>
|
97
|
-
<div class='synopsis'>
|
98
|
-
<span class='name'>[]</span>
|
99
|
-
<span class='arguments'>(source)</span>
|
100
|
-
</div>
|
101
|
-
<div class='description'>
|
102
|
-
<p>
|
103
|
-
Access registered smoke source instances
|
104
|
-
</p>
|
105
|
-
<p>
|
106
|
-
Usage:
|
107
|
-
</p>
|
108
|
-
<pre>Smoke.yql(:ruby) do ....

Smoke[:ruby]
=> #<Smoke::Source::YQL::0x18428d4...</pre>
|
109
|
-
</div>
|
110
|
-
<div class='source'>
|
111
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000001-source'); return false">
|
112
|
-
[show source]
|
113
|
-
</a>
|
114
|
-
<pre id='M000001-source'> <span class="ruby-comment cmt"># File lib/smoke.rb, line 26</span>
26: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">source</span>)
27: <span class="ruby-identifier">active_sources</span>[<span class="ruby-identifier">source</span>]
28: <span class="ruby-keyword kw">end</span></pre>
|
115
|
-
</div>
|
116
|
-
</div>
|
117
|
-
<div class='public-class method' id='method-M000002'>
|
118
|
-
<a name='M000002'> </a>
|
119
|
-
<div class='synopsis'>
|
120
|
-
<span class='name'>activate</span>
|
121
|
-
<span class='arguments'>(name, source)</span>
|
122
|
-
</div>
|
123
|
-
<div class='description'>
|
124
|
-
<p>
|
125
|
-
Activates new instances of sources Source instances are stored within the
|
126
|
-
@@<a href="Smoke.html#M000003">active_sources</a> class variable for later
|
127
|
-
use
|
128
|
-
</p>
|
129
|
-
</div>
|
130
|
-
<div class='source'>
|
131
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000002-source'); return false">
|
132
|
-
[show source]
|
133
|
-
</a>
|
134
|
-
<pre id='M000002-source'> <span class="ruby-comment cmt"># File lib/smoke.rb, line 33</span>
33: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">activate</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">source</span>)
34: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">active_sources</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">name</span>)
35: <span class="ruby-constant">Smoke</span>.<span class="ruby-identifier">log</span>.<span class="ruby-identifier">warn</span> <span class="ruby-value str">"Smoke source activation: Source with idential name already initialized"</span> 
36: <span class="ruby-keyword kw">end</span>
37: <span class="ruby-identifier">active_sources</span>.<span class="ruby-identifier">update</span>({ <span class="ruby-identifier">name</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">source</span> })
38: <span class="ruby-keyword kw">end</span></pre>
|
135
|
-
</div>
|
136
|
-
</div>
|
137
|
-
<div class='public-class method' id='method-M000003'>
|
138
|
-
<a name='M000003'> </a>
|
139
|
-
<div class='synopsis'>
|
140
|
-
<span class='name'>active_sources</span>
|
141
|
-
<span class='arguments'>()</span>
|
142
|
-
</div>
|
143
|
-
<div class='description'>
|
144
|
-
<p>
|
145
|
-
Returns all activated smoke sources
|
146
|
-
</p>
|
147
|
-
</div>
|
148
|
-
<div class='source'>
|
149
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000003-source'); return false">
|
150
|
-
[show source]
|
151
|
-
</a>
|
152
|
-
<pre id='M000003-source'> <span class="ruby-comment cmt"># File lib/smoke.rb, line 41</span>
41: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">active_sources</span>
42: <span class="ruby-ivar">@@active_sources</span>
43: <span class="ruby-keyword kw">end</span></pre>
|
153
|
-
</div>
|
154
|
-
</div>
|
155
|
-
<div class='public-class method' id='method-M000007'>
|
156
|
-
<a name='M000007'> </a>
|
157
|
-
<div class='synopsis'>
|
158
|
-
<span class='name'>data</span>
|
159
|
-
<span class='arguments'>(name, &block)</span>
|
160
|
-
</div>
|
161
|
-
<div class='source'>
|
162
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000007-source'); return false">
|
163
|
-
[show source]
|
164
|
-
</a>
|
165
|
-
<pre id='M000007-source'> <span class="ruby-comment cmt"># File lib/smoke.rb, line 65</span>
65: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">data</span>(<span class="ruby-identifier">name</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>); <span class="ruby-constant">Smoke</span><span class="ruby-operator">::</span><span class="ruby-constant">Source</span><span class="ruby-operator">::</span><span class="ruby-constant">Data</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>); <span class="ruby-keyword kw">end</span></pre>
|
166
|
-
</div>
|
167
|
-
</div>
|
168
|
-
<div class='public-class method' id='method-M000008'>
|
169
|
-
<a name='M000008'> </a>
|
170
|
-
<div class='synopsis'>
|
171
|
-
<span class='name'>feed</span>
|
172
|
-
<span class='arguments'>(name, &block)</span>
|
173
|
-
</div>
|
174
|
-
<div class='source'>
|
175
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000008-source'); return false">
|
176
|
-
[show source]
|
177
|
-
</a>
|
178
|
-
<pre id='M000008-source'> <span class="ruby-comment cmt"># File lib/smoke.rb, line 66</span>
66: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">feed</span>(<span class="ruby-identifier">name</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>); <span class="ruby-constant">Smoke</span><span class="ruby-operator">::</span><span class="ruby-constant">Source</span><span class="ruby-operator">::</span><span class="ruby-constant">Feed</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>); <span class="ruby-keyword kw">end</span></pre>
|
179
|
-
</div>
|
180
|
-
</div>
|
181
|
-
<div class='public-class method' id='method-M000009'>
|
182
|
-
<a name='M000009'> </a>
|
183
|
-
<div class='synopsis'>
|
184
|
-
<span class='name'>join</span>
|
185
|
-
<span class='arguments'>(*names, &block)</span>
|
186
|
-
</div>
|
187
|
-
<div class='description'>
|
188
|
-
<p>
|
189
|
-
Join multiple sources together into a single feed Usage:
|
190
|
-
</p>
|
191
|
-
<pre>Smoke.join(:delicious, :twitter, :flickr) do
 name :stream
 path :photos, :photo
end</pre>
|
192
|
-
</div>
|
193
|
-
<div class='source'>
|
194
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000009-source'); return false">
|
195
|
-
[show source]
|
196
|
-
</a>
|
197
|
-
<pre id='M000009-source'> <span class="ruby-comment cmt"># File lib/smoke.rb, line 74</span>
74: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">join</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">names</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>); <span class="ruby-constant">Smoke</span><span class="ruby-operator">::</span><span class="ruby-constant">Source</span><span class="ruby-operator">::</span><span class="ruby-constant">Join</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">names</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>); <span class="ruby-keyword kw">end</span></pre>
|
198
|
-
</div>
|
199
|
-
</div>
|
200
|
-
<div class='public-class method' id='method-M000005'>
|
201
|
-
<a name='M000005'> </a>
|
202
|
-
<div class='synopsis'>
|
203
|
-
<span class='name'>log</span>
|
204
|
-
<span class='arguments'>()</span>
|
205
|
-
</div>
|
206
|
-
<div class='description'>
|
207
|
-
<p>
|
208
|
-
Log for info, debug, error and warn with:
|
209
|
-
</p>
|
210
|
-
<pre>Smoke.log.info "message"
Smoke.log.debug "message"
Smoke.log.error "message"
Smoke.log.warn "message"</pre>
|
211
|
-
</div>
|
212
|
-
<div class='source'>
|
213
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000005-source'); return false">
|
214
|
-
[show source]
|
215
|
-
</a>
|
216
|
-
<pre id='M000005-source'> <span class="ruby-comment cmt"># File lib/smoke.rb, line 60</span>
60: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">log</span>
61: <span class="ruby-ivar">@@log</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">Logger</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">$stdout</span>)
62: <span class="ruby-keyword kw">end</span></pre>
|
217
|
-
</div>
|
218
|
-
</div>
|
219
|
-
<div class='public-class method' id='method-M000004'>
|
220
|
-
<a name='M000004'> </a>
|
221
|
-
<div class='synopsis'>
|
222
|
-
<span class='name'>rename</span>
|
223
|
-
<span class='arguments'>(candidates)</span>
|
224
|
-
</div>
|
225
|
-
<div class='description'>
|
226
|
-
<p>
|
227
|
-
Rename a source
|
228
|
-
</p>
|
229
|
-
</div>
|
230
|
-
<div class='source'>
|
231
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000004-source'); return false">
|
232
|
-
[show source]
|
233
|
-
</a>
|
234
|
-
<pre id='M000004-source'> <span class="ruby-comment cmt"># File lib/smoke.rb, line 46</span>
46: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rename</span>(<span class="ruby-identifier">candidates</span>)
47: <span class="ruby-identifier">candidates</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">o</span>, <span class="ruby-identifier">n</span><span class="ruby-operator">|</span> 
48: <span class="ruby-identifier">active_sources</span>[<span class="ruby-identifier">o</span>].<span class="ruby-identifier">name</span> = <span class="ruby-identifier">n</span>.<span class="ruby-identifier">to_s</span>
49: <span class="ruby-identifier">active_sources</span>.<span class="ruby-identifier">rename</span>(<span class="ruby-identifier">o</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">n</span>)
50: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">active_sources</span>[<span class="ruby-identifier">n</span>]
51: <span class="ruby-keyword kw">end</span>
52: <span class="ruby-keyword kw">end</span></pre>
|
235
|
-
</div>
|
236
|
-
</div>
|
237
|
-
<div class='public-class method' id='method-M000006'>
|
238
|
-
<a name='M000006'> </a>
|
239
|
-
<div class='synopsis'>
|
240
|
-
<span class='name'>yql</span>
|
241
|
-
<span class='arguments'>(name, &block)</span>
|
242
|
-
</div>
|
243
|
-
<div class='source'>
|
244
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000006-source'); return false">
|
245
|
-
[show source]
|
246
|
-
</a>
|
247
|
-
<pre id='M000006-source'> <span class="ruby-comment cmt"># File lib/smoke.rb, line 64</span>
64: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">yql</span>(<span class="ruby-identifier">name</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>); <span class="ruby-constant">Smoke</span><span class="ruby-operator">::</span><span class="ruby-constant">Source</span><span class="ruby-operator">::</span><span class="ruby-constant">YQL</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>); <span class="ruby-keyword kw">end</span></pre>
|
248
|
-
</div>
|
249
|
-
</div>
|
250
|
-
</div>
|
251
|
-
</div>
|
252
|
-
</div>
|
253
|
-
</div>
|
254
|
-
<div id='footer-push'></div>
|
255
|
-
</div>
|
256
|
-
<div id='footer'>
|
257
|
-
<a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
|
258
|
-
</div>
|
259
|
-
</body>
|
260
|
-
</html>
|
@@ -1,340 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
-
<html lang='en'>
|
3
|
-
<head>
|
4
|
-
<title>: Smoke::Origin [smoke]</title>
|
5
|
-
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
|
6
|
-
<link href='../../rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
|
7
|
-
<script type='text/javascript'>
|
8
|
-
//<![CDATA[
|
9
|
-
function popupCode(url) {
|
10
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
11
|
-
}
|
12
|
-
|
13
|
-
function toggleCode(id) {
|
14
|
-
var code = document.getElementById(id)
|
15
|
-
|
16
|
-
code.style.display = code.style.display != 'block' ? 'block' : 'none'
|
17
|
-
return true
|
18
|
-
}
|
19
|
-
|
20
|
-
// Make codeblocks hidden by default
|
21
|
-
document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
|
22
|
-
//]]>
|
23
|
-
</script>
|
24
|
-
</head>
|
25
|
-
<body class='page'>
|
26
|
-
<div class='class' id='wrapper'>
|
27
|
-
<div class='header'>
|
28
|
-
<h1 class='name'>
|
29
|
-
<span class='type'>Class</span>
|
30
|
-
Smoke::Origin
|
31
|
-
</h1>
|
32
|
-
<ol class='paths'>
|
33
|
-
<li>
|
34
|
-
<a href="../../files/lib/smoke/origin_rb.html">lib/smoke/origin.rb</a>
|
35
|
-
</li>
|
36
|
-
</ol>
|
37
|
-
<div class='parent'>
|
38
|
-
Parent:
|
39
|
-
<strong>Object</strong>
|
40
|
-
</div>
|
41
|
-
</div>
|
42
|
-
<div id='content'>
|
43
|
-
<div id='text'>
|
44
|
-
<div id='method-list'>
|
45
|
-
<h2>Methods</h2>
|
46
|
-
<h3>public class</h3>
|
47
|
-
<ol>
|
48
|
-
<li><a href="#M000020">new</a></li>
|
49
|
-
</ol>
|
50
|
-
<h3>public instance</h3>
|
51
|
-
<ol>
|
52
|
-
<li><a href="#M000028">discard</a></li>
|
53
|
-
<li><a href="#M000023">emit</a></li>
|
54
|
-
<li><a href="#M000027">keep</a></li>
|
55
|
-
<li><a href="#M000025">method_missing</a></li>
|
56
|
-
<li><a href="#M000021">output</a></li>
|
57
|
-
<li><a href="#M000022">path</a></li>
|
58
|
-
<li><a href="#M000024">prepare</a></li>
|
59
|
-
<li><a href="#M000029">rename</a></li>
|
60
|
-
<li><a href="#M000026">sort</a></li>
|
61
|
-
<li><a href="#M000030">truncate</a></li>
|
62
|
-
</ol>
|
63
|
-
</div>
|
64
|
-
<div id='section'>
|
65
|
-
<div id='attribute-list'>
|
66
|
-
<h2 class='section-bar'>Attributes</h2>
|
67
|
-
<div class='name-list'>
|
68
|
-
<table>
|
69
|
-
<tr class='top-aligned-row context-row'>
|
70
|
-
<td class='context-item-name'>items</td>
|
71
|
-
<td class='context-item-value'>[R]</td>
|
72
|
-
<td class='context-item-desc'></td>
|
73
|
-
</tr>
|
74
|
-
<tr class='top-aligned-row context-row'>
|
75
|
-
<td class='context-item-name'>name</td>
|
76
|
-
<td class='context-item-value'>[RW]</td>
|
77
|
-
<td class='context-item-desc'></td>
|
78
|
-
</tr>
|
79
|
-
</table>
|
80
|
-
</div>
|
81
|
-
</div>
|
82
|
-
<div id='methods'>
|
83
|
-
<h2>Public class methods</h2>
|
84
|
-
<div class='public-class method' id='method-M000020'>
|
85
|
-
<a name='M000020'> </a>
|
86
|
-
<div class='synopsis'>
|
87
|
-
<span class='name'>new</span>
|
88
|
-
<span class='arguments'>(name, &block)</span>
|
89
|
-
</div>
|
90
|
-
<div class='source'>
|
91
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000020-source'); return false">
|
92
|
-
[show source]
|
93
|
-
</a>
|
94
|
-
<pre id='M000020-source'> <span class="ruby-comment cmt"># File lib/smoke/origin.rb, line 6</span>
 6: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">name</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
 7: <span class="ruby-identifier">raise</span> <span class="ruby-constant">StandardError</span>, <span class="ruby-value str">"Sources must have a name"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">name</span>
 8: <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>
 9: <span class="ruby-ivar">@items</span>, <span class="ruby-ivar">@prepare</span>, <span class="ruby-ivar">@transformation</span> = [], [], []
10: 
11: <span class="ruby-identifier">activate!</span>
12: <span class="ruby-identifier">instance_eval</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
13: <span class="ruby-keyword kw">end</span></pre>
|
95
|
-
</div>
|
96
|
-
</div>
|
97
|
-
<h2>Public instance methods</h2>
|
98
|
-
<div class='public-instance method' id='method-M000028'>
|
99
|
-
<a name='M000028'> </a>
|
100
|
-
<div class='synopsis'>
|
101
|
-
<span class='name'>discard</span>
|
102
|
-
<span class='arguments'>(key, matcher)</span>
|
103
|
-
</div>
|
104
|
-
<div class='description'>
|
105
|
-
<p>
|
106
|
-
Discard items that do not match the regex
|
107
|
-
</p>
|
108
|
-
<p>
|
109
|
-
Usage (chained):
|
110
|
-
</p>
|
111
|
-
<pre>Smoke[:ruby].discard(:title, /tuesday/i)</pre>
|
112
|
-
<p>
|
113
|
-
Usage (block, during initialization):
|
114
|
-
</p>
|
115
|
-
<pre>Smoke.yql(:ruby) do
 ...
 discard(:title, /tuesday/i)
end</pre>
|
116
|
-
</div>
|
117
|
-
<div class='source'>
|
118
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000028-source'); return false">
|
119
|
-
[show source]
|
120
|
-
</a>
|
121
|
-
<pre id='M000028-source'> <span class="ruby-comment cmt"># File lib/smoke/origin.rb, line 140</span>
140: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">discard</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">matcher</span>)
141: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">reject!</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> (<span class="ruby-identifier">i</span>[<span class="ruby-identifier">key</span>] <span class="ruby-operator">=~</span> <span class="ruby-identifier">matcher</span>) <span class="ruby-operator">?</span> <span class="ruby-keyword kw">true</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">false</span> }
142: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>
143: <span class="ruby-keyword kw">end</span></pre>
|
122
|
-
</div>
|
123
|
-
</div>
|
124
|
-
<div class='public-instance method' id='method-M000023'>
|
125
|
-
<a name='M000023'> </a>
|
126
|
-
<div class='synopsis'>
|
127
|
-
<span class='name'>emit</span>
|
128
|
-
<span class='arguments'>(&block)</span>
|
129
|
-
</div>
|
130
|
-
<div class='description'>
|
131
|
-
<p>
|
132
|
-
Transform each item
|
133
|
-
</p>
|
134
|
-
<p>
|
135
|
-
Usage:
|
136
|
-
</p>
|
137
|
-
<pre>emit do
 rename(:href => :link)
end</pre>
|
138
|
-
</div>
|
139
|
-
<div class='source'>
|
140
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000023-source'); return false">
|
141
|
-
[show source]
|
142
|
-
</a>
|
143
|
-
<pre id='M000023-source'> <span class="ruby-comment cmt"># File lib/smoke/origin.rb, line 72</span>
72: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">emit</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
73: <span class="ruby-ivar">@transformation</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">block</span>
74: <span class="ruby-keyword kw">end</span></pre>
|
144
|
-
</div>
|
145
|
-
</div>
|
146
|
-
<div class='public-instance method' id='method-M000027'>
|
147
|
-
<a name='M000027'> </a>
|
148
|
-
<div class='synopsis'>
|
149
|
-
<span class='name'>keep</span>
|
150
|
-
<span class='arguments'>(key, matcher)</span>
|
151
|
-
</div>
|
152
|
-
<div class='description'>
|
153
|
-
<p>
|
154
|
-
Keep items that match the regex
|
155
|
-
</p>
|
156
|
-
<p>
|
157
|
-
Usage (chained):
|
158
|
-
</p>
|
159
|
-
<pre>Smoke[:ruby].keep(:title, /tuesday/i)</pre>
|
160
|
-
<p>
|
161
|
-
Usage (block, during initialization):
|
162
|
-
</p>
|
163
|
-
<pre>Smoke.yql(:ruby) do
 ...
 keep(:title, /tuesday/i)
end</pre>
|
164
|
-
</div>
|
165
|
-
<div class='source'>
|
166
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000027-source'); return false">
|
167
|
-
[show source]
|
168
|
-
</a>
|
169
|
-
<pre id='M000027-source'> <span class="ruby-comment cmt"># File lib/smoke/origin.rb, line 126</span>
126: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">keep</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">matcher</span>)
127: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">reject!</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> (<span class="ruby-identifier">i</span>[<span class="ruby-identifier">key</span>] <span class="ruby-operator">=~</span> <span class="ruby-identifier">matcher</span>) <span class="ruby-operator">?</span> <span class="ruby-keyword kw">false</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">true</span> }
128: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>
129: <span class="ruby-keyword kw">end</span></pre>
|
170
|
-
</div>
|
171
|
-
</div>
|
172
|
-
<div class='public-instance method' id='method-M000025'>
|
173
|
-
<a name='M000025'> </a>
|
174
|
-
<div class='synopsis'>
|
175
|
-
<span class='name'>method_missing</span>
|
176
|
-
<span class='arguments'>(symbol, *args, &block)</span>
|
177
|
-
</div>
|
178
|
-
<div class='source'>
|
179
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000025-source'); return false">
|
180
|
-
[show source]
|
181
|
-
</a>
|
182
|
-
<pre id='M000025-source'> <span class="ruby-comment cmt"># File lib/smoke/origin.rb, line 96</span>
 96: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">symbol</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
 97: <span class="ruby-identifier">ivar</span> = <span class="ruby-node">"@#{symbol}"</span>
 98: 
 99: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">empty?</span>
100: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-identifier">ivar</span>) <span class="ruby-operator">||</span> <span class="ruby-keyword kw">super</span> 
101: <span class="ruby-keyword kw">else</span>
102: <span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-identifier">ivar</span>, <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>)
103: <span class="ruby-keyword kw">end</span>
104: 
105: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>
106: <span class="ruby-keyword kw">end</span></pre>
|
183
|
-
</div>
|
184
|
-
</div>
|
185
|
-
<div class='public-instance method' id='method-M000021'>
|
186
|
-
<a name='M000021'> </a>
|
187
|
-
<div class='synopsis'>
|
188
|
-
<span class='name'>output</span>
|
189
|
-
<span class='arguments'>(type = :ruby)</span>
|
190
|
-
</div>
|
191
|
-
<div class='description'>
|
192
|
-
<p>
|
193
|
-
Output your items in a range of formats (:ruby, :json and :yaml currently)
|
194
|
-
Ruby is the default format and will automagically yielded from your source
|
195
|
-
</p>
|
196
|
-
<p>
|
197
|
-
Usage
|
198
|
-
</p>
|
199
|
-
<pre>output(:json)
=> "[{title: \"Ray\"}, {title: \"Peace\"}]"</pre>
|
200
|
-
</div>
|
201
|
-
<div class='source'>
|
202
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000021-source'); return false">
|
203
|
-
[show source]
|
204
|
-
</a>
|
205
|
-
<pre id='M000021-source'> <span class="ruby-comment cmt"># File lib/smoke/origin.rb, line 22</span>
22: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">output</span>(<span class="ruby-identifier">type</span> = <span class="ruby-identifier">:ruby</span>)
23: <span class="ruby-identifier">prepare!</span>
24: <span class="ruby-identifier">dispatch</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:dispatch</span>
25: <span class="ruby-identifier">output</span> = (<span class="ruby-ivar">@items</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>) <span class="ruby-operator">?</span> <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">first</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@items</span>
26: 
27: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span>
28: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:json</span>
29: <span class="ruby-keyword kw">return</span> <span class="ruby-operator">::</span><span class="ruby-constant">JSON</span>.<span class="ruby-identifier">generate</span>(<span class="ruby-identifier">output</span>)
30: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:yaml</span>
31: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">dump</span>(<span class="ruby-identifier">output</span>)
32: <span class="ruby-keyword kw">else</span>
33: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">output</span>
34: <span class="ruby-keyword kw">end</span> 
35: <span class="ruby-keyword kw">end</span></pre>
|
206
|
-
</div>
|
207
|
-
</div>
|
208
|
-
<div class='public-instance method' id='method-M000022'>
|
209
|
-
<a name='M000022'> </a>
|
210
|
-
<div class='synopsis'>
|
211
|
-
<span class='name'>path</span>
|
212
|
-
<span class='arguments'>(*path)</span>
|
213
|
-
</div>
|
214
|
-
<div class='description'>
|
215
|
-
<p>
|
216
|
-
Path allows you to traverse the tree of a the items returned to only give
|
217
|
-
you access to what you’re interested in.
|
218
|
-
</p>
|
219
|
-
<p>
|
220
|
-
Usage: path :down, :to, :the, :data
|
221
|
-
</p>
|
222
|
-
<p>
|
223
|
-
Will traverse through a tree as follows:
|
224
|
-
</p>
|
225
|
-
<pre>{
 :down => {
 :to => {
 :the => {
 :data => []
 }
 }
 }
}</pre>
|
226
|
-
<p>
|
227
|
-
You will need to help smoke find an array of items that you’re
|
228
|
-
interested in.
|
229
|
-
</p>
|
230
|
-
</div>
|
231
|
-
<div class='source'>
|
232
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000022-source'); return false">
|
233
|
-
[show source]
|
234
|
-
</a>
|
235
|
-
<pre id='M000022-source'> <span class="ruby-comment cmt"># File lib/smoke/origin.rb, line 62</span>
62: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">path</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">path</span>)
63: <span class="ruby-ivar">@path</span> = <span class="ruby-identifier">path</span>
64: <span class="ruby-keyword kw">end</span></pre>
|
236
|
-
</div>
|
237
|
-
</div>
|
238
|
-
<div class='public-instance method' id='method-M000024'>
|
239
|
-
<a name='M000024'> </a>
|
240
|
-
<div class='synopsis'>
|
241
|
-
<span class='name'>prepare</span>
|
242
|
-
<span class='arguments'>(&block)</span>
|
243
|
-
</div>
|
244
|
-
<div class='description'>
|
245
|
-
<p>
|
246
|
-
Prepare is used when you’d like to provision for arguments /
|
247
|
-
variables to be set after the source definition. Eg, create a source
|
248
|
-
definition for twitter, omitting the “username”. Set the
|
249
|
-
username using chaining later.
|
250
|
-
</p>
|
251
|
-
<p>
|
252
|
-
Usage:
|
253
|
-
</p>
|
254
|
-
<pre># Definition
Smoke.feed :twitter do
 prepare do
 url "http://twitter.com/#{username}/rss"
 end
end

# End use
Smoke[:twitter].username(:benschwarz).output</pre>
|
255
|
-
</div>
|
256
|
-
<div class='source'>
|
257
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000024-source'); return false">
|
258
|
-
[show source]
|
259
|
-
</a>
|
260
|
-
<pre id='M000024-source'> <span class="ruby-comment cmt"># File lib/smoke/origin.rb, line 91</span>
91: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">prepare</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
92: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">"requires a block"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">block_given?</span>
93: <span class="ruby-ivar">@prepare</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">block</span>
94: <span class="ruby-keyword kw">end</span></pre>
|
261
|
-
</div>
|
262
|
-
</div>
|
263
|
-
<div class='public-instance method' id='method-M000029'>
|
264
|
-
<a name='M000029'> </a>
|
265
|
-
<div class='synopsis'>
|
266
|
-
<span class='name'>rename</span>
|
267
|
-
<span class='arguments'>(*args)</span>
|
268
|
-
</div>
|
269
|
-
<div class='description'>
|
270
|
-
<p>
|
271
|
-
Rename one or many keys at a time Suggested that you run it within an each
|
272
|
-
block, but it makes no difference other than readability
|
273
|
-
</p>
|
274
|
-
<p>
|
275
|
-
Usage
|
276
|
-
</p>
|
277
|
-
<pre># Renames all items with a key of href to link
rename(:href => :link)</pre>
|
278
|
-
<p>
|
279
|
-
or
|
280
|
-
</p>
|
281
|
-
<pre>rename(:href => :link, :description => :excerpt)</pre>
|
282
|
-
</div>
|
283
|
-
<div class='source'>
|
284
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000029-source'); return false">
|
285
|
-
[show source]
|
286
|
-
</a>
|
287
|
-
<pre id='M000029-source'> <span class="ruby-comment cmt"># File lib/smoke/origin.rb, line 154</span>
154: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rename</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
155: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">item</span><span class="ruby-operator">|</span> <span class="ruby-identifier">item</span>.<span class="ruby-identifier">rename</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>) }
156: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>
157: <span class="ruby-keyword kw">end</span></pre>
|
288
|
-
</div>
|
289
|
-
</div>
|
290
|
-
<div class='public-instance method' id='method-M000026'>
|
291
|
-
<a name='M000026'> </a>
|
292
|
-
<div class='synopsis'>
|
293
|
-
<span class='name'>sort</span>
|
294
|
-
<span class='arguments'>(key)</span>
|
295
|
-
</div>
|
296
|
-
<div class='description'>
|
297
|
-
<p>
|
298
|
-
Re-sort items by a particular key
|
299
|
-
</p>
|
300
|
-
</div>
|
301
|
-
<div class='source'>
|
302
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000026-source'); return false">
|
303
|
-
[show source]
|
304
|
-
</a>
|
305
|
-
<pre id='M000026-source'> <span class="ruby-comment cmt"># File lib/smoke/origin.rb, line 109</span>
109: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sort</span>(<span class="ruby-identifier">key</span>)
110: <span class="ruby-ivar">@items</span> = <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">sort_by</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">i</span>[<span class="ruby-identifier">key</span>] }
111: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">NoMethodError</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
112: <span class="ruby-constant">Smoke</span>.<span class="ruby-identifier">log</span>.<span class="ruby-identifier">info</span> <span class="ruby-node">"You're trying to sort by \"#{key}\" but it does not exist in your item set"</span>
113: <span class="ruby-keyword kw">ensure</span>
114: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>
115: <span class="ruby-keyword kw">end</span></pre>
|
306
|
-
</div>
|
307
|
-
</div>
|
308
|
-
<div class='public-instance method' id='method-M000030'>
|
309
|
-
<a name='M000030'> </a>
|
310
|
-
<div class='synopsis'>
|
311
|
-
<span class='name'>truncate</span>
|
312
|
-
<span class='arguments'>(length)</span>
|
313
|
-
</div>
|
314
|
-
<div class='description'>
|
315
|
-
<p>
|
316
|
-
Truncate your result set to this many objects
|
317
|
-
</p>
|
318
|
-
<p>
|
319
|
-
Usage
|
320
|
-
</p>
|
321
|
-
<pre>truncate(3).output
=> [{title => "Canon"}, {:title => "Nikon"}, {:title => "Pentax"}]</pre>
|
322
|
-
</div>
|
323
|
-
<div class='source'>
|
324
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000030-source'); return false">
|
325
|
-
[show source]
|
326
|
-
</a>
|
327
|
-
<pre id='M000030-source'> <span class="ruby-comment cmt"># File lib/smoke/origin.rb, line 165</span>
165: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">truncate</span>(<span class="ruby-identifier">length</span>)
166: <span class="ruby-ivar">@items</span> = <span class="ruby-ivar">@items</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span>(<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)]
167: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>
168: <span class="ruby-keyword kw">end</span></pre>
|
328
|
-
</div>
|
329
|
-
</div>
|
330
|
-
</div>
|
331
|
-
</div>
|
332
|
-
</div>
|
333
|
-
</div>
|
334
|
-
<div id='footer-push'></div>
|
335
|
-
</div>
|
336
|
-
<div id='footer'>
|
337
|
-
<a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
|
338
|
-
</div>
|
339
|
-
</body>
|
340
|
-
</html>
|