Ruby Two's Day (27 jun 13)
http://www.ruby-lang.org/en/news/2013/02/24/ruby-2-0-0-p0-is-released/
Also, Rails Four:
http://edgeguides.rubyonrails.org/4_0_release_notes.html
Ruby 2.0 |
module Strings refine String do def bang "#{self}!" end end end begin s = "hello" puts s.bang rescue Exception => x puts "s.bang caused an error: "+x.message puts "trying s.bang, using module with bang in it first" using Strings puts s.bang end class Foo SYMBOLS = %I{ foo bar } def bar(one: "First argument", two: "") puts two + " " + one puts SYMBOLS.map( &:to_s ).join( ' ' ) puts __dir__ end end foo = Foo.new foo.bar foo.bar( two: "Second argument" ) Bar = Struct.new( :bar, :foo ) do # nothing end bar = Bar.new("FOO", "BAR").to_h bar.each { |k,v| print "#{k}=>#{v} " } puts module Prepender def bar(one: "1st argument", two: "") puts one + " " + two # the correct order end end class Prepended prepend Prepender def bar(one: "argument 1", two: "argument 2") puts two + " " + one # the incorrect order end end pre = Prepended.new # the method is overridden by the one in Prepender, but arguments are as below pre.bar( two: "2nd argument", one: "1st argument" ) # listed in incorrect order, printed in correct order class Who def whose_there_using_locations caller_locations(1,1).size.times { |t| puts "#{t + 1}. #{ caller_locations(1,1)[t].label }" } end end class There def who who = Who.new who.whose_there_using_locations end end There.new.who # http://blog.marc-andre.ca/2013/02/23/ruby-2-by-example puts "Thanks Marc André from whom most of this was copied ❤" # utf-8
By the way, it's more difficult to install Ruby 2.0.0 on Mac than on Windows! You run 'brew update'
and it tells you to get Xcode, which you have to get from Apple...
$ brew update
[You have to get the latest Xcode from the Apple website]
$ rvm install ruby-2.0.0
Install of ruby-2.0.0-p247 - #complete
'rvm_codesign_identity' is not set so RVM can't sign ruby
Set it in ~/.rvmrc after reading the following about OS X code signing:
https://developer.apple.com/library/mac/
#documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html
$ rvm use 2.0.0-p247
Using ~/.rvm/gems/ruby-2.0.0-p247
$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin11.4.2]
$ gem install rails --version 4.0.0 --no-ri --no-rdoc
$ bundle update
$ rails server&
[2013-06-30 13:33:04] INFO WEBrick 1.3.1
[2013-06-30 13:33:04] INFO ruby 2.0.0 (2013-06-27) [x86_64-darwin11.4.2]
[2013-06-30 13:33:04] INFO WEBrick::HTTPServer#start: pid=47210 port=3000
Gemfile:
source 'https://rubygems.org'
gem 'rails', '4.0.0'
gem 'sqlite3'
gem 'jquery-rails'
gem 'sass'
gem 'coffee-rails'
group :assets do
gem 'uglifier', '>= 1.0.3'
end
More about the complexity of using Apple computers for Rails here:
http://rodmclaughlin.com/why-do-rails-developers-use-macs-