From: Shashank Date Date: 2006-02-23T07:15:00+09:00 Subject: Re: [ANN] lazy.rb 0.9.5 -- transparent futures! --0-1976118255-1140646484=:64848 Content-Type: multipart/alternative; boundary="0-936103348-1140646484=:64848" --0-936103348-1140646484=:64848 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Hi, I have a feature request (along with a quick-hack solution). Please ignore if this is already done or sounds crazy. :-) Problem: All the promises I make, cannot have any arguments ! ! So something like this is what I have in mind: x = promise("CUSTOMERS") { |table_name| long_running_query(table_name)} Admitedly, in this one-liner it does not make much sense. But if the block had many many lines of code and referred to the block variable at multiple places, suddenly it would be mean more to me. I have attached my hackish solution without really thinking all the way thru. Thanks, -- Shashank MenTaLguY wrote: I'd like to announce a new version of lazy.rb -- this one offering thread safety and transparent futures! Here's the web site, complete with gem and tarball downloads, plus a bit of documentation: http://moonbase.rydia.net/software/lazy.rb/ Bug reports would be very, very welcome. --------------------------------- Yahoo! Mail Use Photomail to share photos without annoying attachments. --0-936103348-1140646484=:64848 Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: 8bit
Hi,
 
I have a feature request (along with a quick-hack solution).
 
Please ignore if this is already done or sounds crazy. :-)
 
Problem: All the promises I make, cannot have any arguments ! !
 
So something like this is what I have in mind:
 
x = promise("CUSTOMERS") { |table_name|  long_running_query(table_name)}
 
Admitedly, in this one-liner it does not make much sense. But if the block had many many lines of code and referred to the block variable at multiple places, suddenly it would be mean more to me.
 
I have attached my hackish solution without really thinking all the way thru.
Thanks,
 
-- Shashank


MenTaLguY <mental@rydia.net> wrote:
I'd like to announce a new version of lazy.rb -- this one offering
thread safety and transparent futures!

Here's the web site, complete with gem and tarball downloads, plus a bit
of documentation:

http://moonbase.rydia.net/software/lazy.rb/

Bug reports would be very, very welcome.


Yahoo! Mail
Use Photomail to share photos without annoying attachments. --0-936103348-1140646484=:64848-- --0-1976118255-1140646484=:64848 Content-Type: application/octet-stream; name="my_lazy.rb" Content-Transfer-Encoding: base64 Content-Description: 141040506-my_lazy.rb Content-Disposition: attachment; filename="my_lazy.rb" IyA9IGxhenkucmIgLS0gTGF6eSBldmFsdWF0aW9uIGluIFJ1YnkNCiMNCiMg QXV0aG9yOjogTWVuVGFMZ3VZDQojDQojIENvcHlyaWdodCAyMDA1LTIwMDYg IE1lblRhTGd1WSA8bWVudGFsQHJ5ZGlhLm5ldD4NCiMNCiMgWW91IG1heSBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgc2Ft ZSB0ZXJtcyBhcyBSdWJ5Lg0KIw0KDQptb2R1bGUgTGF6eQ0KDQojIFJhaXNl ZCB3aGVuIGEgZGVtYW5kZWQgY29tcHV0YXRpb24gZGl2ZXJnZXMgKGUuZy4g aWYgaXQgdHJpZXMgdG8gZGlyZWN0bHkNCiMgdXNlIGl0cyBvd24gcmVzdWx0 KQ0KIw0KY2xhc3MgRGl2ZXJnZW5jZUVycm9yIDwgRXhjZXB0aW9uDQogIGRl ZiBpbml0aWFsaXplKCBtZXNzYWdlPSJDb21wdXRhdGlvbiBkaXZlcmdlcyIg KQ0KICAgIHN1cGVyKCBtZXNzYWdlICkNCiAgZW5kDQplbmQNCg0KIyBXcmFw cyBhbiBleGNlcHRpb24gcmFpc2VkIGJ5IGEgbGF6eSBjb21wdXRhdGlvbi4N CiMNCiMgVGhlIHJlYXNvbiB3ZSB3cmFwIHN1Y2ggZXhjZXB0aW9ucyBpbiBM YXp5RXhjZXB0aW9uIGlzIHRoYXQgdGhleSBuZWVkIHRvDQojIGJlIGRpc3Rp bmd1aXNoYWJsZSBmcm9tIHNpbWlsYXIgZXhjZXB0aW9ucyB3aGljaCBtaWdo dCBub3JtYWxseSBiZSByYWlzZWQNCiMgYnkgd2hhdGV2ZXIgc3RyaWN0IGNv ZGUgd2UgaGFwcGVuIHRvIGJlIGluIGF0IHRoZSB0aW1lLg0KIw0KY2xhc3Mg TGF6eUV4Y2VwdGlvbiA8IERpdmVyZ2VuY2VFcnJvcg0KICAjIHRoZSBvcmln aW5hbCBleGNlcHRpb24NCiAgYXR0cl9yZWFkZXIgOnJlYXNvbg0KDQogIGRl ZiBpbml0aWFsaXplKCByZWFzb24gKQ0KICAgIEByZWFzb24gPSByZWFzb24N CiAgICBzdXBlciggIkV4Y2VwdGlvbiBpbiBsYXp5IGNvbXB1dGF0aW9uOiAj eyByZWFzb24gfSAoI3sgcmVhc29uLmNsYXNzIH0pIiApDQogICAgc2V0X2Jh Y2t0cmFjZSggcmVhc29uLmJhY2t0cmFjZS5kdXAgKSBpZiByZWFzb24NCiAg ZW5kDQplbmQNCg0KIyBBIGhhbmRsZSBmb3IgYSBwcm9taXNlZCBjb21wdXRh dGlvbi4gIFRoZXkgYXJlIHRyYW5zcGFyZW50LCBzbyB0aGF0IGluDQojIG1v c3QgY2FzZXMsIGEgcHJvbWlzZSBjYW4gYmUgdXNlZCBhcyBhIHByb3h5IGZv ciB0aGUgY29tcHV0YXRpb24ncyByZXN1bHQNCiMgb2JqZWN0LiAgVGhlIG9u ZSBleGNlcHRpb24gaXMgdHJ1dGggdGVzdGluZyAtLSBhIHByb21pc2Ugd2ls bCBhbHdheXMgbG9vaw0KIyB0cnVlIHRvIFJ1YnksIGV2ZW4gaWYgdGhlIGFj dHVhbCByZXN1bHQgb2JqZWN0IGlzIG5pbCBvciBmYWxzZS4NCiMNCiMgSWYg eW91IHdhbnQgdG8gdGVzdCB0aGUgcmVzdWx0IGZvciB0cnV0aCwgZ2V0IHRo ZSB1bndyYXBwZWQgcmVzdWx0IG9iamVjdA0KIyB2aWEgS2VybmVsLmRlbWFu ZC4NCiMNCmNsYXNzIFByb21pc2UNCiAgYWxpYXMgX19jbGFzc19fIGNsYXNz ICM6bm9kb2M6DQogIGluc3RhbmNlX21ldGhvZHMuZWFjaCB7IHxtfCB1bmRl Zl9tZXRob2QgbSB1bmxlc3MgbSA9fiAvXl9fLyB9DQoNCiAgZGVmIGluaXRp YWxpemUoKmFyZ3MsJmNvbXB1dGF0aW9uICkgIzpub2RvYzoNCiAgICBAbXlf YXJncyA9ICphcmdzDQogICAgQGNvbXB1dGF0aW9uID0gY29tcHV0YXRpb24N CiAgZW5kDQogIGRlZiBfX3N5bmNocm9uaXplX18gIzpub2RvYzoNCiAgICB5 aWVsZA0KICBlbmQNCg0KICAjIGNyZWF0ZSB0aGlzIG9uY2UgaGVyZSwgcmF0 aGVyIHRoYW4gY3JlYXRpbmcgYSBwcm9jIG9iamVjdCBmb3INCiAgIyBldmVy eSBldmFsdWF0aW9uDQogIERJVkVSR0VTID0gbGFtYmRhIHsgcmFpc2UgRGl2 ZXJnZW5jZUVycm9yLm5ldyB9ICM6bm9kb2M6DQogIGRlZiBESVZFUkdFUy5p bnNwZWN0ICM6bm9kb2M6DQogICAgIkRJVkVSR0VTIg0KICBlbmQNCg0KICBk ZWYgX19yZXN1bHRfXyAjOm5vZG9jOg0KICAgIF9fc3luY2hyb25pemVfXyBk bw0KICAgICAgaWYgQGNvbXB1dGF0aW9uDQogICAgICAgIHJhaXNlIExhenlF eGNlcHRpb24ubmV3KCBAZXhjZXB0aW9uICkgaWYgQGV4Y2VwdGlvbg0KDQog ICAgICAgIGNvbXB1dGF0aW9uID0gQGNvbXB1dGF0aW9uDQogICAgICAgIEBj b21wdXRhdGlvbiA9IERJVkVSR0VTICMgdHJhcCBkaXZlcmdlbmNlIGR1ZSB0 byBvdmVyLWVhZ2VyIHJlY3Vyc2lvbg0KDQogICAgICAgIGJlZ2luDQogICAg ICAgICAgQHJlc3VsdCA9IChAbXlfYXJncyA/IGRlbWFuZCggY29tcHV0YXRp b24uY2FsbCggQG15X2FyZ3MgKSApIDogZGVtYW5kKCBjb21wdXRhdGlvbi5j YWxsKCBzZWxmICkgKSApDQogICAgICAgICAgQGNvbXB1dGF0aW9uID0gbmls DQogICAgICAgIHJlc2N1ZSBEaXZlcmdlbmNlRXJyb3INCiAgICAgICAgICBy YWlzZQ0KICAgICAgICByZXNjdWUgRXhjZXB0aW9uID0+IGV4Y2VwdGlvbg0K ICAgICAgICAgICMgaGFuZGxlIGV4Y2VwdGlvbnMNCiAgICAgICAgICBAZXhj ZXB0aW9uID0gZXhjZXB0aW9uDQogICAgICAgICAgcmFpc2UgTGF6eUV4Y2Vw dGlvbi5uZXcoIEBleGNlcHRpb24gKQ0KICAgICAgICBlbmQNCiAgICAgIGVu ZA0KDQogICAgICBAcmVzdWx0DQogICAgZW5kDQogIGVuZA0KDQogIGRlZiBp bnNwZWN0ICM6bm9kb2M6DQogICAgX19zeW5jaHJvbml6ZV9fIGRvDQogICAg ICBpZiBAY29tcHV0YXRpb24NCiAgICAgICAgIiM8I3sgX19jbGFzc19fIH0g Y29tcHV0YXRpb249I3sgQGNvbXB1dGF0aW9uLmluc3BlY3QgfT4iDQogICAg ICBlbHNlDQogICAgICAgIEByZXN1bHQuaW5zcGVjdA0KICAgICAgZW5kDQog ICAgZW5kDQogIGVuZA0KDQogIGRlZiByZXNwb25kX3RvPyggbWVzc2FnZSAp ICM6bm9kb2M6DQogICAgbWVzc2FnZSA9IG1lc3NhZ2UudG9fc3ltDQogICAg bWVzc2FnZSA9PSA6X19yZXN1bHRfXyBvcg0KICAgIG1lc3NhZ2UgPT0gOmlu c3BlY3Qgb3INCiAgICBfX3Jlc3VsdF9fLnJlc3BvbmRfdG8/IG1lc3NhZ2UN CiAgZW5kDQoNCiAgZGVmIG1ldGhvZF9taXNzaW5nKCAqYXJncywgJmJsb2Nr ICkgIzpub2RvYzoNCiAgICBfX3Jlc3VsdF9fLl9fc2VuZF9fKCAqYXJncywg JmJsb2NrICkNCiAgZW5kDQplbmQNCg0KZW5kDQoNCm1vZHVsZSBLZXJuZWwN Cg0KIyBUaGUgcHJvbWlzZSgpIGZ1bmN0aW9uIGlzIHVzZWQgdG9nZXRoZXIg d2l0aCBkZW1hbmQoKSB0byBpbXBsZW1lbnQNCiMgbGF6eSBldmFsdWF0aW9u LiAgSXQgcmV0dXJucyBhIHByb21pc2UgdG8gZXZhbHVhdGUgdGhlIHByb3Zp ZGVkDQojIGJsb2NrIGF0IGEgZnV0dXJlIHRpbWUuICBFdmFsdWF0aW9uIGNh biBiZSBkZW1hbmRlZCBhbmQgdGhlIGJsb2NrJ3MNCiMgcmVzdWx0IG9idGFp bmVkIHZpYSB0aGUgZGVtYW5kKCkgZnVuY3Rpb24uDQojDQojIEltcGxpY2l0 IGV2YWx1YXRpb24gaXMgYWxzbyBzdXBwb3J0ZWQ6IHRoZSBmaXJzdCBtZXNz YWdlIHNlbnQgdG8gaXQgd2lsbA0KIyBkZW1hbmQgZXZhbHVhdGlvbiwgYWZ0 ZXIgd2hpY2ggdGhhdCBtZXNzYWdlIGFuZCBhbnkgc3Vic2VxdWVudCBtZXNz YWdlcw0KIyB3aWxsIGJlIGZvcndhcmRlZCB0byB0aGUgcmVzdWx0IG9iamVj dC4NCiMNCiMgQXMgYW4gYWlkIHRvIGNpcmN1bGFyIHByb2dyYW1taW5nLCB0 aGUgYmxvY2sgd2lsbCBiZSBwYXNzZWQgYSBwcm9taXNlDQojIGZvciBpdHMg b3duIHJlc3VsdCB3aGVuIGl0IGlzIGV2YWx1YXRlZC4gIEJlIGNhcmVmdWwg bm90IHRvIGZvcmNlDQojIHRoYXQgcHJvbWlzZSBkdXJpbmcgdGhlIGNvbXB1 dGF0aW9uLCBsZXN0IHRoZSBjb21wdXRhdGlvbiBkaXZlcmdlLg0KIw0KZGVm IHByb21pc2UoKmFyZ3MsICZjb21wdXRhdGlvbiApICM6eWllbGRzOiByZXN1 bHQNCiAgTGF6eTo6UHJvbWlzZS5uZXcgKmFyZ3MsJmNvbXB1dGF0aW9uDQpl bmQNCg0KIyBGb3JjZXMgdGhlIHJlc3VsdCBvZiBhIHByb21pc2UgdG8gYmUg Y29tcHV0ZWQgKGlmIG5lY2Vzc2FyeSkgYW5kIHJldHVybnMNCiMgdGhlIGJh cmUgcmVzdWx0IG9iamVjdC4gIE9uY2UgZXZhbHVhdGVkLCB0aGUgcmVzdWx0 IG9mIHRoZSBwcm9taXNlIHdpbGwNCiMgYmUgY2FjaGVkLiAgTmVzdGVkIHBy b21pc2VzIHdpbGwgYmUgZXZhbHVhdGVkIHRvZ2V0aGVyLCB1bnRpbCB0aGUg Zmlyc3QNCiMgbm9uLXByb21pc2UgcmVzdWx0Lg0KIw0KIyBJZiBjYWxsZWQg b24gYSB2YWx1ZSB0aGF0IGlzIG5vdCBhIHByb21pc2UsIGl0IHdpbGwgc2lt cGx5IHJldHVybiBpdC4NCiMNCmRlZiBkZW1hbmQoIHByb21pc2UgKQ0KICBp ZiBwcm9taXNlLnJlc3BvbmRfdG8/IDpfX3Jlc3VsdF9fDQogICAgcHJvbWlz ZS5fX3Jlc3VsdF9fDQogIGVsc2UgIyBub3QgcmVhbGx5IGEgcHJvbWlzZQ0K ICAgIHByb21pc2UNCiAgZW5kDQplbmQNCg0KZW5kDQo= --0-1976118255-1140646484=:64848--