{"id":2509,"date":"2009-01-31T02:27:25","date_gmt":"2009-01-30T18:27:25","guid":{"rendered":"http:\/\/ihower.idv.tw\/blog\/?p=2509"},"modified":"2015-09-05T10:52:37","modified_gmt":"2015-09-05T02:52:37","slug":"ruby-191-%e7%99%bc%e4%bd%88","status":"publish","type":"post","link":"https:\/\/ihower.tw\/blog\/2509-ruby-191-%e7%99%bc%e4%bd%88","title":{"rendered":"Ruby 1.9.1 \u767c\u4f48"},"content":{"rendered":"<p>\u842c\u773e\u77da\u76ee\u7684 Ruby 1.9.1 \u7d42\u65bc\u767c\u4f48\u4e86\uff0c\u516c\u544a\u8a73\u898b <a href=\"http:\/\/www.ruby-forum.com\/topic\/177198\">Ruby 1.9.1 is released<\/a>\u3002\u9019\u500b\u7248\u672c\u662f 1.9 \u7cfb\u5217\u7684\u7b2c\u4e00\u500b\u7a69\u5b9a\u7248\u672c\uff0c\u5927\u5927\u63d0\u6607\u4e86 1.8 \u4ee4\u4eba\u8a6c\u75c5\u7684\u6548\u80fd (\u8acb\u898b Antonio Cangiano \u7684 <a href=\"http:\/\/antoniocangiano.com\/2008\/12\/09\/the-great-ruby-shootout-december-2008\/\">benchmarks<\/a> )\uff0c\u975e\u5e38\u4ee4\u4eba\u671f\u5f85\u5b83\u7684\u5546\u696d\u61c9\u7528\u3002<\/p>\n<p>\u8981\u5728 Mac \u4e0a\u5b89\u88dd\u8d77\u4f86\u73a9\u73a9\u770b\u7684\u8a71\uff0c\u53ef\u4ee5\u9019\u6a23\u505a\u8207\u672c\u4f86\u7684 Ruby 1.8 \u5171\u5b58 (\u53c3\u8003\u81ea<a href=\"http:\/\/wonko.com\/post\/how-to-compile-ruby-191\">How to compile and install Ruby 1.9.1 on Mac OS X Leopard<\/a>)\uff1a<\/p>\n<pre>\ncurl ftp:\/\/ftp.ruby-lang.org\/pub\/ruby\/1.9\/ruby-1.9.1-p0.tar.bz2 -o ruby-1.9.1-p0.tar.bz2\ntar xjf ruby-1.9.1-p0.tar.bz2\n\ncd ruby-1.9.1-p0\/\nautoconf\n.\/configure --program-suffix=19\nmake && sudo make install\n<\/pre>\n<p>\u9019\u6a23\u5c31\u6703\u6709 ruby19, irb19, gem19, rake19 \u7b49\u6307\u4ee4\u53ef\u4ee5\u7528\u4e86\uff08Ruby 1.9 \u5167\u5efa\u4e86 rubygems \u8ddf rake \u56c9)\u3002\u4e0d\u904e\u76ee\u524d\u9084\u5f88\u591a Gems \u6c92\u6709\u8ddf\u4e0a Ruby 1.9 \u7684\u8173\u6b65\uff0c\u5c24\u5176\u662f\u9700\u8981 native build \u7684 Library\uff08\u4f8b\u5982 mysql \u8ddf mongrel \u90fd\u88dd\u4e0d\u8d77\u4f86\uff09\u3002<\/p>\n<p>Update(2009\/4\/5) \u4f7f\u7528 Rails 2.3.2 \u5c31\u4e0d\u9700\u8981\u4ee5\u4e0b patch \u4e86\uff0c\u88dd\u8d77\u4f86\u5c31\u53ef\u4ee5\u8dd1\u4e86\u3002MySQL \u53ef\u4ee5\u6539\u88dd <a href=\"http:\/\/tmtm.org\/en\/mysql\/ruby\/\" class=\"autohyperlink\">tmtm.org\/en\/mysql\/ruby\/<\/a> \u9019\u500b Ruby 1.9.1 \u76f8\u5bb9\u7248\u672c\u3002<\/p>\n<p>\u5982\u679c\u6709\u7814\u7a76\u8208\u8da3\u60f3\u628a Ruby on Rails \u8dd1\u8d77\u4f86\uff0c\u9664\u4e86\u9700\u8981\u7528 Rails edge \u7248\u672c( 2.2.2 \u7684\u8a71\uff0c\u9700\u8981 patch active_support\/deprecation.rb 227 \u884c\u7528 begin &#8230; rescue LoadError; end \u628a\u6574\u6bb5 test \u5305\u8d77\u4f86)\uff0c\u9084\u9700\u8981\u81f3\u5c11\u88dd rack \u8ddf sqlite3-ruby gems\uff0c\u53e6\u5916 Webrick \u4e5f\u9700\u8981\u81ea\u5df1\u624b\u52d5 patch \u5982\u4e0b(\u9019\u662f\u56e0\u70ba Ruby 1.9 \u628a String #each \u62ff\u6389\u4e86)\uff1a<\/p>\n<pre>\nclass String\n  def each \n    self.split($\/).each { |e| yield e } \n  end \nend\n<\/pre>\n<p>\u6210\u679c\u662f Ruby 1.9 on Rails \u6709\u5716\u6709\u771f\u76f8\uff1a<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"2523\" data-permalink=\"https:\/\/ihower.tw\/blog\/2509-ruby-191-%e7%99%bc%e4%bd%88\/ruby19onrails\" data-orig-file=\"https:\/\/ihower.tw\/blog\/wp-content\/uploads\/2009\/01\/ruby19onrails.png\" data-orig-size=\"575,462\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"ruby19onrails\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/ihower.tw\/blog\/wp-content\/uploads\/2009\/01\/ruby19onrails-300x241.png\" data-large-file=\"https:\/\/ihower.tw\/blog\/wp-content\/uploads\/2009\/01\/ruby19onrails.png\" src=\"\/blog\/wp-content\/uploads\/2009\/01\/ruby19onrails.png\" alt=\"ruby19onrails\" title=\"ruby19onrails\" width=\"575\" height=\"462\" class=\"alignnone size-full wp-image-2523\" srcset=\"https:\/\/ihower.tw\/blog\/wp-content\/uploads\/2009\/01\/ruby19onrails.png 575w, https:\/\/ihower.tw\/blog\/wp-content\/uploads\/2009\/01\/ruby19onrails-300x241.png 300w\" sizes=\"auto, (max-width: 575px) 100vw, 575px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u842c\u773e\u77da\u76ee\u7684 Ruby 1.9.1 \u7d42\u65bc\u767c\u4f48\u4e86\uff0c\u516c\u544a\u8a73\u898b Ruby 1.9.1 is released\u3002\u9019\u500b\u7248\u672c &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/ihower.tw\/blog\/2509-ruby-191-%e7%99%bc%e4%bd%88\" class=\"more-link\">\u95b1\u8b80\u5168\u6587<span class=\"screen-reader-text\">\u3008Ruby 1.9.1 \u767c\u4f48\u3009<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[53,31],"tags":[],"class_list":["post-2509","post","type-post","status-publish","format-standard","hentry","category-rails","category-ruby","entry"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1q6tG-Et","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/posts\/2509","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/comments?post=2509"}],"version-history":[{"count":26,"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/posts\/2509\/revisions"}],"predecessor-version":[{"id":8305,"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/posts\/2509\/revisions\/8305"}],"wp:attachment":[{"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/media?parent=2509"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/categories?post=2509"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/tags?post=2509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}