From: Daniel Schierbeck Date: 2007-08-07T02:11:16+09:00 Subject: Re: yield or call? --=-z7uwzbHquwfeRYGkG4C0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-YQxuHH14Ojr7n1P91Lx5" --=-YQxuHH14Ojr7n1P91Lx5 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2007-08-07 at 01:38 +0900, Pit Capitain wrote: > 2007/8/6, James Edward Gray II : > > On Aug 6, 2007, at 10:39 AM, Phlip wrote: > > > What if the block were optional? > > > > You can use block_given? to find out if a block was provided. >=20 > Yes, but not in the helper method. In the code I've shown there's > always a block passed to the helper method. Phlip has a point here. That's very easy to solve: def x if block_given? y { yield } else y end end =20 def y if block_given? yield else "foo" end end =20 x #=3D> "foo" x { "bar" } #=3D> "bar" Cheers, Daniel Schierbeck --=-YQxuHH14Ojr7n1P91Lx5 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part Content-Transfer-Encoding: quoted-printable -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQBGt1YxE8pU4Gwf6g8RAsNXAKCP3i/h00NJ18b1MdvBQ471iVo+TQCdHA+z MmTE7RwX6U/VKnx9hK4QSrA=3D =3DWc0K -----END PGP SIGNATURE----- --=-YQxuHH14Ojr7n1P91Lx5-- --=-z7uwzbHquwfeRYGkG4C0 Content-Type: application/x-pkcs7-signature; name=smime.p7s Content-Disposition: attachment; filename=smime.p7s Content-Transfer-Encoding: base64 MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIILGjCCBYkw ggRxoAMCAQICBEOI1E4wDQYJKoZIhvcNAQEFBQAwMTELMAkGA1UEBhMCREsxDDAKBgNVBAoTA1RE QzEUMBIGA1UEAxMLVERDIE9DRVMgQ0EwHhcNMDYxMDAzMTQyNjUwWhcNMDgxMDAzMTQ1NjUwWjCB hzELMAkGA1UEBhMCREsxKTAnBgNVBAoTIEluZ2VuIG9yZ2FuaXNhdG9yaXNrIHRpbGtueXRuaW5n MU0wIwYDVQQFExxQSUQ6OTIwOC0yMDAyLTItMjE0NjU1NjY3OTQ5MCYGA1UEAxMfRGFuaWVsIExp bGllbmZlbGR0IEcgU2NoaWVyYmVjazCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAn/eGl8Nz YQLFD44FwNI1HY67xBChpjiVN9UMv4N2C5Te2EIHxDKW8zb/RXk70vHnVrCqm5PDyZWVFPBNKFXG jZwYKmHK8Yi8mzK6HMmYCWfEih+uYyvO40OewsywEmuq1pPNP4vB2f+fpS/Am64vjo0M9U2ieeSj taQwSTnTAJkCAwEAAaOCAtQwggLQMA4GA1UdDwEB/wQEAwID+DArBgNVHRAEJDAigA8yMDA2MTAw MzE0MjY1MFqBDzIwMDgxMDAzMTQ1NjUwWjCCATcGA1UdIASCAS4wggEqMIIBJgYKKoFQgSkBAQEB AzCCARYwLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2VydGlmaWthdC5kay9yZXBvc2l0b3J5MIHi BggrBgEFBQcCAjCB1TAKFgNUREMwAwIBARqBxkZvciBhbnZlbmRlbHNlIGFmIGNlcnRpZmlrYXRl dCBn5mxkZXIgT0NFUyB2aWxr5XIsIENQUyBvZyBPQ0VTIENQLCBkZXIga2FuIGhlbnRlcyBmcmEg d3d3LmNlcnRpZmlrYXQuZGsvcmVwb3NpdG9yeS4gQmVt5nJrLCBhdCBUREMgZWZ0ZXIgdmlsa+Vy ZW5lIGhhciBldCBiZWdy5m5zZXQgYW5zdmFyIGlmdC4gcHJvZmVzc2lvbmVsbGUgcGFydGVyLjBB BggrBgEFBQcBAQQ1MDMwMQYIKwYBBQUHMAGGJWh0dHA6Ly9vY3NwLmNlcnRpZmlrYXQuZGsvb2Nz cC9zdGF0dXMwJgYDVR0RBB8wHYEbZGFuaWVsLnNjaGllcmJlY2tAZ21haWwuY29tMIGEBgNVHR8E fTB7MEugSaBHpEUwQzELMAkGA1UEBhMCREsxDDAKBgNVBAoTA1REQzEUMBIGA1UEAxMLVERDIE9D RVMgQ0ExEDAOBgNVBAMTB0NSTDE0ODkwLKAqoCiGJmh0dHA6Ly9jcmwub2Nlcy5jZXJ0aWZpa2F0 LmRrL29jZXMuY3JsMB8GA1UdIwQYMBaAFGC1hexWZH4SGSdnHVAVS3OuO/kSMB0GA1UdDgQWBBQn W1eORy2ftqsfHNOokMDZxxwMbDAJBgNVHRMEAjAAMBkGCSqGSIb2fQdBAAQMMAobBFY3LjEDAgOo MA0GCSqGSIb3DQEBBQUAA4IBAQBlSmFjtTcwZS7KdIWaJD3ohWE3aNHU2KkmSHhDKgXCadG7Uyy0 BuVdkenPXSHGZIssWuRmZYo7N56dTa3FBUqNJHiaZnqxDKnGT9jHTjTiC5A9wYctCmX8hWSQeMzP 7ZyPBBDZnzLGVjfaMY3nQJZUmTAfDyrPmPDC6xhYhieUEzSU9Hq14TJlCZSMQoFpukeSVxmYHysG toqxkcmzEyHnBTN13REv3X7CYd0CNPFlE/pYxHzhjK/zjkt9cSmSk3eTF2PpcaaSMaA+FYRTVjJg S7q8ZwDVV9NI0g8u9ZqMn1zEI6uEoANOC+wj4xLp1uSkYGr8oDD2H1kW5P2ivV1mMIIFiTCCBHGg AwIBAgIEQ4jUTjANBgkqhkiG9w0BAQUFADAxMQswCQYDVQQGEwJESzEMMAoGA1UEChMDVERDMRQw EgYDVQQDEwtUREMgT0NFUyBDQTAeFw0wNjEwMDMxNDI2NTBaFw0wODEwMDMxNDU2NTBaMIGHMQsw CQYDVQQGEwJESzEpMCcGA1UEChMgSW5nZW4gb3JnYW5pc2F0b3Jpc2sgdGlsa255dG5pbmcxTTAj BgNVBAUTHFBJRDo5MjA4LTIwMDItMi0yMTQ2NTU2Njc5NDkwJgYDVQQDEx9EYW5pZWwgTGlsaWVu ZmVsZHQgRyBTY2hpZXJiZWNrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCf94aXw3NhAsUP jgXA0jUdjrvEEKGmOJU31Qy/g3YLlN7YQgfEMpbzNv9FeTvS8edWsKqbk8PJlZUU8E0oVcaNnBgq YcrxiLybMrocyZgJZ8SKH65jK87jQ57CzLASa6rWk80/i8HZ/5+lL8Cbri+OjQz1TaJ55KO1pDBJ OdMAmQIDAQABo4IC1DCCAtAwDgYDVR0PAQH/BAQDAgP4MCsGA1UdEAQkMCKADzIwMDYxMDAzMTQy NjUwWoEPMjAwODEwMDMxNDU2NTBaMIIBNwYDVR0gBIIBLjCCASowggEmBgoqgVCBKQEBAQEDMIIB FjAvBggrBgEFBQcCARYjaHR0cDovL3d3dy5jZXJ0aWZpa2F0LmRrL3JlcG9zaXRvcnkwgeIGCCsG AQUFBwICMIHVMAoWA1REQzADAgEBGoHGRm9yIGFudmVuZGVsc2UgYWYgY2VydGlmaWthdGV0IGfm bGRlciBPQ0VTIHZpbGvlciwgQ1BTIG9nIE9DRVMgQ1AsIGRlciBrYW4gaGVudGVzIGZyYSB3d3cu Y2VydGlmaWthdC5kay9yZXBvc2l0b3J5LiBCZW3mcmssIGF0IFREQyBlZnRlciB2aWxr5XJlbmUg aGFyIGV0IGJlZ3LmbnNldCBhbnN2YXIgaWZ0LiBwcm9mZXNzaW9uZWxsZSBwYXJ0ZXIuMEEGCCsG AQUFBwEBBDUwMzAxBggrBgEFBQcwAYYlaHR0cDovL29jc3AuY2VydGlmaWthdC5kay9vY3NwL3N0 YXR1czAmBgNVHREEHzAdgRtkYW5pZWwuc2NoaWVyYmVja0BnbWFpbC5jb20wgYQGA1UdHwR9MHsw S6BJoEekRTBDMQswCQYDVQQGEwJESzEMMAoGA1UEChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBD QTEQMA4GA1UEAxMHQ1JMMTQ4OTAsoCqgKIYmaHR0cDovL2NybC5vY2VzLmNlcnRpZmlrYXQuZGsv b2Nlcy5jcmwwHwYDVR0jBBgwFoAUYLWF7FZkfhIZJ2cdUBVLc647+RIwHQYDVR0OBBYEFCdbV45H LZ+2qx8c06iQwNnHHAxsMAkGA1UdEwQCMAAwGQYJKoZIhvZ9B0EABAwwChsEVjcuMQMCA6gwDQYJ KoZIhvcNAQEFBQADggEBAGVKYWO1NzBlLsp0hZokPeiFYTdo0dTYqSZIeEMqBcJp0btTLLQG5V2R 6c9dIcZkiyxa5GZlijs3np1NrcUFSo0keJpmerEMqcZP2MdONOILkD3Bhy0KZfyFZJB4zM/tnI8E ENmfMsZWN9oxjedAllSZMB8PKs+Y8MLrGFiGJ5QTNJT0erXhMmUJlIxCgWm6R5JXGZgfKwa2irGR ybMTIecFM3XdES/dfsJh3QI08WUT+ljEfOGMr/OOS31xKZKTd5MXY+lxppIxoD4VhFNWMmBLurxn ANVX00jSDy71moyfXMQjq4SgA04L7CPjEunW5KRgavygMPYfWRbk/aK9XWYxggHVMIIB0QIBATA5 MDExCzAJBgNVBAYTAkRLMQwwCgYDVQQKEwNUREMxFDASBgNVBAMTC1REQyBPQ0VTIENBAgRDiNRO MAkGBSsOAwIaBQCggfMwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcN MDcwODA2MTcxMTEzWjAjBgkqhkiG9w0BCQQxFgQUvds7qHWyKQ4pKFfvOEgwmU3brWIwSAYJKwYB BAGCNxAEMTswOTAxMQswCQYDVQQGEwJESzEMMAoGA1UEChMDVERDMRQwEgYDVQQDEwtUREMgT0NF UyBDQQIEQ4jUTjBKBgsqhkiG9w0BCRACCzE7oDkwMTELMAkGA1UEBhMCREsxDDAKBgNVBAoTA1RE QzEUMBIGA1UEAxMLVERDIE9DRVMgQ0ECBEOI1E4wDQYJKoZIhvcNAQEBBQAEgYA4IQHbNmQJltUq dGjRm+3N8f+3Xlo1jKQwlZPk2+28nsdUasyA5bnapMc5xOCBcMC8k3YgQRGpZvnUpsWc0H3KAHzU VxdV8tJ5zYe9HCnnJphP6tHY+2Mel9iBwYLSVBPlw/YL/SBndE2JQGVEuoLsLPZRYAI74TuVQNcX VnwHSAAAAAAAAA== --=-z7uwzbHquwfeRYGkG4C0--