smoke 0.5.17 → 0.5.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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>
|