<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.objclt.ca/wiki/index.php?action=history&amp;feed=atom&amp;title=Ruby_First_Step</id>
	<title>Ruby First Step - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.objclt.ca/wiki/index.php?action=history&amp;feed=atom&amp;title=Ruby_First_Step"/>
	<link rel="alternate" type="text/html" href="http://wiki.objclt.ca/wiki/index.php?title=Ruby_First_Step&amp;action=history"/>
	<updated>2026-04-28T17:45:30Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>http://wiki.objclt.ca/wiki/index.php?title=Ruby_First_Step&amp;diff=144&amp;oldid=prev</id>
		<title>Nicolas Rollin: Created page with &quot;== First Step == === Call Ruby command line === &lt;pre&gt;irb&lt;/pre&gt;  === Methode === * Define a methode &quot;m&quot; &lt;pre&gt;def m(name = &quot;World&quot;) puts &quot;Hello Mr #{name.capitalize}!&quot; end&lt;/pre&gt;...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.objclt.ca/wiki/index.php?title=Ruby_First_Step&amp;diff=144&amp;oldid=prev"/>
		<updated>2014-11-13T18:02:05Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== First Step == === Call Ruby command line === &amp;lt;pre&amp;gt;irb&amp;lt;/pre&amp;gt;  === Methode === * Define a methode &amp;quot;m&amp;quot; &amp;lt;pre&amp;gt;def m(name = &amp;quot;World&amp;quot;) puts &amp;quot;Hello Mr #{name.capitalize}!&amp;quot; end&amp;lt;/pre&amp;gt;...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== First Step ==&lt;br /&gt;
=== Call Ruby command line ===&lt;br /&gt;
&amp;lt;pre&amp;gt;irb&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Methode ===&lt;br /&gt;
* Define a methode &amp;quot;m&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;def m(name = &amp;quot;World&amp;quot;)&lt;br /&gt;
puts &amp;quot;Hello Mr #{name.capitalize}!&amp;quot;&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Execute &lt;br /&gt;
&amp;lt;pre&amp;gt;m(&amp;quot;nicolas&amp;quot;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Hello Mr Nicolas!&lt;br /&gt;
=&amp;gt; nil&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Class ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class Greeter&lt;br /&gt;
  def initialize(name = &amp;quot;World&amp;quot;)&lt;br /&gt;
   @name = name&lt;br /&gt;
  end&lt;br /&gt;
  def say_hi&lt;br /&gt;
    puts &amp;quot;Hi #{@name}!&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
  def say_bye&lt;br /&gt;
    puts &amp;quot;Bye #{@name}, come back soon.&amp;quot;&lt;br /&gt;
   end&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
* class define a new class&lt;br /&gt;
* @name is a variable d&amp;#039;instance&lt;br /&gt;
===Object===&lt;br /&gt;
&amp;lt;pre&amp;gt;irb&amp;gt;o = Greeter.new(&amp;quot;Nicolas&amp;quot;)&lt;br /&gt;
=&amp;gt; #&amp;lt;Greeter:0x00000002579a48 @name=&amp;quot;Nicolas&amp;quot;&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;irb&amp;gt;o.say_hi&lt;br /&gt;
Hi Nicolas!&lt;br /&gt;
=&amp;gt; nil&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;irb&amp;gt; o.say_bye&lt;br /&gt;
Bye Nicolas, come back soon.&lt;br /&gt;
=&amp;gt; nil&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Methodes of a particular Object====&lt;br /&gt;
* Current Object and parent&lt;br /&gt;
&amp;lt;pre&amp;gt;irb&amp;gt;Greeter.instance_methods&lt;br /&gt;
=&amp;gt; [:say_hi, :say_bye, :m, :nil?, :===, :=~, :!~, :eql?, :hash, :&amp;lt;=&amp;gt;, :class, :singleton_class, :clone, :dup, :initialize_dup, :initialize_clone, :taint, :tainted?, :untaint, :untrust, :untrusted?, :trust, :freeze, :frozen?, :to_s, :inspect, :methods, :singleton_methods, :protected_methods, :private_methods, :public_methods, :instance_variables, :instance_variable_get, :instance_variable_set, :instance_variable_defined?, :instance_of?, :kind_of?, :is_a?, :tap, :send, :public_send, :respond_to?, :respond_to_missing?, :extend, :display, :method, :public_method, :define_singleton_method, :object_id, :to_enum, :enum_for, :==, :equal?, :!, :!=, :instance_eval, :instance_exec, :__send__, :__id__]&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Current Object only&lt;br /&gt;
&amp;lt;pre&amp;gt;irb&amp;gt;Greeter.instance_methods(false)&lt;br /&gt;
=&amp;gt; [:say_hi, :say_bye]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Validate Object Methode ====&lt;br /&gt;
&amp;lt;pre&amp;gt;irb&amp;gt;o.respond_to?(&amp;quot;name&amp;quot;)&lt;br /&gt;
=&amp;gt; false&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;o.respond_to?(&amp;quot;say_hi&amp;quot;)&lt;br /&gt;
=&amp;gt; true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;o.respond_to?(&amp;quot;to_s&amp;quot;)&lt;br /&gt;
=&amp;gt; true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Change Class Attribut====&lt;br /&gt;
&amp;lt;pre&amp;gt;irb&amp;gt;class Greeter&lt;br /&gt;
attr_accessor :name&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o = Greeter.new(&amp;quot;MySelf&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o.respond_to?(&amp;quot;name&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o.respond_to?(&amp;quot;name=&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o.say_hi&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o.name=&amp;quot;Betty&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o.name&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o.say_hi&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* attr_accessor add tow methods &amp;quot;name&amp;quot; and &amp;quot;&amp;quot;name=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Create a batch file====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env ruby&lt;br /&gt;
&lt;br /&gt;
class MegaGreeter&lt;br /&gt;
  attr_accessor :names&lt;br /&gt;
&lt;br /&gt;
  # Création d&amp;#039;un objet&lt;br /&gt;
  def initialize(names = &amp;quot;World&amp;quot;)&lt;br /&gt;
    @names = names&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  # Saluer tout le monde&lt;br /&gt;
  def say_hi&lt;br /&gt;
    if @names.nil?&lt;br /&gt;
      puts &amp;quot;...&amp;quot;&lt;br /&gt;
    elsif @names.respond_to?(&amp;quot;each&amp;quot;)&lt;br /&gt;
      # @names est une liste de noms : traitons-les uns par uns&lt;br /&gt;
      @names.each do |name|&lt;br /&gt;
        puts &amp;quot;Hello #{name}!&amp;quot;&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      puts &amp;quot;Coucou #{@names}!&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  # Dire au revoir à tout le monde&lt;br /&gt;
  def say_bye&lt;br /&gt;
    if @names.nil?&lt;br /&gt;
      puts &amp;quot;...&amp;quot;&lt;br /&gt;
    elsif @names.respond_to?(&amp;quot;join&amp;quot;)&lt;br /&gt;
      # Grouper les différents noms de la liste par des virgules&lt;br /&gt;
      puts &amp;quot;Goodbye #{@names.join(&amp;quot;, &amp;quot;)}.  Come back soon!&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
      puts &amp;quot;Ciao #{@names}.  Come back soon!&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __FILE__ == $0&lt;br /&gt;
  mg = MegaGreeter.new&lt;br /&gt;
  mg.say_hi&lt;br /&gt;
  mg.say_bye&lt;br /&gt;
&lt;br /&gt;
  # Modifier le nom en Zeke&lt;br /&gt;
  mg.names = &amp;quot;Zeke&amp;quot;&lt;br /&gt;
  mg.say_hi&lt;br /&gt;
  mg.say_bye&lt;br /&gt;
&lt;br /&gt;
  # Changer le nom pour un tableau (une liste de noms)&lt;br /&gt;
  mg.names = [&amp;quot;Albert&amp;quot;, &amp;quot;Brenda&amp;quot;, &amp;quot;Charles&amp;quot;,&lt;br /&gt;
    &amp;quot;Dave&amp;quot;, &amp;quot;Engelbert&amp;quot;]&lt;br /&gt;
  mg.say_hi&lt;br /&gt;
  mg.say_bye&lt;br /&gt;
&lt;br /&gt;
  # Maintenant, le nom n&amp;#039;est plus...&lt;br /&gt;
  mg.names = nil&lt;br /&gt;
  mg.say_hi&lt;br /&gt;
  mg.say_bye&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Execute&lt;br /&gt;
&amp;lt;pre&amp;gt;ruby helloworl.rb&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Coucou World!&lt;br /&gt;
Ciao World.  Come back soon!&lt;br /&gt;
Coucou Zeke!&lt;br /&gt;
Ciao Zeke.  Come back soon!&lt;br /&gt;
Hello Albert!&lt;br /&gt;
Hello Brenda!&lt;br /&gt;
Hello Charles!&lt;br /&gt;
Hello Dave!&lt;br /&gt;
Hello Engelbert!&lt;br /&gt;
Goodbye Albert, Brenda, Charles, Dave, Engelbert.  Come back soon!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Structure===&lt;br /&gt;
&lt;br /&gt;
====Comment====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# This is a comment&amp;lt;/pre&amp;gt;&lt;br /&gt;
====If====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# If null&lt;br /&gt;
  if @names.nil?&lt;br /&gt;
    puts &amp;quot;...&amp;quot;&lt;br /&gt;
  elsif @names.respond_to?(&amp;quot;join&amp;quot;)&lt;br /&gt;
    # Grouper les noms par des virgules&lt;br /&gt;
    puts &amp;quot;Goodbye #{@names.join(&amp;quot;, &amp;quot;)}.  Come back soon!&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    puts &amp;quot;Goodbye #{@names}.  Come back soon!&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Iteration====&lt;br /&gt;
&amp;lt;pre&amp;gt;@names.each do |name|&lt;br /&gt;
  puts &amp;quot;Hello #{name}!&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Control====&lt;br /&gt;
* __FILE__ contains the current file name.&lt;br /&gt;
* $0 The name of the used to run the current file&lt;br /&gt;
&amp;lt;pre&amp;gt;if __FILE__ == $0&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nicolas Rollin</name></author>
	</entry>
</feed>