<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Acessando o Twitter via Interactive Ruby Shell (irb)</title>
	<atom:link href="http://valeriofarias.com/twitter-via-irb-ruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://valeriofarias.com/twitter-via-irb-ruby/</link>
	<description>(Tecnologia + Negócios) = :)</description>
	<lastBuildDate>Wed, 17 Aug 2011 21:05:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Valério Farias</title>
		<link>http://valeriofarias.com/twitter-via-irb-ruby/comment-page-1/#comment-36</link>
		<dc:creator>Valério Farias</dc:creator>
		<pubDate>Fri, 03 Jul 2009 16:08:00 +0000</pubDate>
		<guid isPermaLink="false">http://geyserway.com/?p=127#comment-36</guid>
		<description>Mauricio. Eu fiz os testes aqui e detectei que tanto faz o meu jeito ou o seu.
O resultado é o mesmo. (se você tiver outro exemplo de código pode mandar :) )

Digite os seguintes comandos no irb:
# Object.class.superclass             # =&gt; Module
# Object.class.superclass.superclass  # =&gt; Object  -&gt; Topo da hierarquia

Já deu pra perceber que a &lt;a href=&quot;http://www.google.com.br/search?q=hierarquia+das+classes+no+ruby&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=com.ubuntu:pt-BR:unofficial&amp;client=firefox-a&quot; rel=&quot;nofollow&quot;&gt;hierarquia de classes no ruby&lt;/a&gt; segue o padrão:
Object -&gt; Module -&gt; Class

Isso indica que tudo herda a configuração da classe Object.

Se você digita self.class no irb aparece:

[code=&#039;Ruby&#039;]self.class
=&gt; Object[/code]

Isso quer dizer que tanto faz eu digitar no irb somente os métodos:

[code=&#039;Ruby&#039;]def say
 &quot;hello&quot;
end[/code]

Ou incluir o método literalmente na classe object:

[code=&#039;Ruby&#039;]
class Object
	def say
		&quot;hello&quot;
	end
end[/code]

Nos dois exemplos acima o método say estará incluído na classe Object e qualquer outra classe herdará esse método, já que tudo herda de Object.

O Problema do meu exemplo inicial é que o método twitter_config utiliza variáveis de instância e eu inicializo no arquivo .irbrc como uma instância da classe Object

[code=&#039;Ruby&#039;]twitter_config(&#039;username&#039;, &#039;password&#039;)[/code]

Para usar 1.twit como você sugere, no meu exemplo eu tenho que iniciar uma instância da classe inteiro:

[code=&#039;Ruby&#039;]1.twitter_config(&#039;username&#039;, &#039;password&#039;)[/code]

Mas tenho outra sugestão para deixar o código do jeito que você quer. É só mudar as variáveis de instância para variáveis de classe. Pois, apesar dos valores do usuário e senha serem armazenados inicialmente na classe Object, qualquer instância de qualquer classe poderá ter acesso a esses valores: string, integer, etc.

O código final utilizando variáveis de classe é o seguinte

[code=&#039;Ruby&#039;]def twitter_config(username, password)
     @@username = username
     @@password = password
end[/code]

No método twitter é só modificar a linha 19 para:
[code=&#039;Ruby&#039;]req.basic_auth(@@username, @@password) # só acrescentei outro arroba para usar variáveis de classe ao invés de instância.[/code]

Agora é só brincar!

Mauricio, pode enviar mais sugestões. Só aprendi tudo isso hoje graças ao seu exemplo. O propósito aqui é experimentar, trocar idéias e aprender cada vez mais em conjunto.

Um grande abraço.</description>
		<content:encoded><![CDATA[<p>Mauricio. Eu fiz os testes aqui e detectei que tanto faz o meu jeito ou o seu.<br />
O resultado é o mesmo. (se você tiver outro exemplo de código pode mandar <img src='http://valeriofarias.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<p>Digite os seguintes comandos no irb:<br />
# Object.class.superclass             # => Module<br />
# Object.class.superclass.superclass  # => Object  -> Topo da hierarquia</p>
<p>Já deu pra perceber que a <a href="http://www.google.com.br/search?q=hierarquia+das+classes+no+ruby&#038;ie=utf-8&#038;oe=utf-8&#038;aq=t&#038;rls=com.ubuntu:pt-BR:unofficial&#038;client=firefox-a" rel="nofollow">hierarquia de classes no ruby</a> segue o padrão:<br />
Object -> Module -> Class</p>
<p>Isso indica que tudo herda a configuração da classe Object.</p>
<p>Se você digita self.class no irb aparece:</p>
<pre class="brush: ruby; ">
self.class
=&gt; Object
</pre>
<p>Isso quer dizer que tanto faz eu digitar no irb somente os métodos:</p>
<pre class="brush: ruby; ">
def say
 &quot;hello&quot;
end
</pre>
<p>Ou incluir o método literalmente na classe object:</p>
<pre class="brush: ruby; ">

class Object
	def say
		&quot;hello&quot;
	end
end
</pre>
<p>Nos dois exemplos acima o método say estará incluído na classe Object e qualquer outra classe herdará esse método, já que tudo herda de Object.</p>
<p>O Problema do meu exemplo inicial é que o método twitter_config utiliza variáveis de instância e eu inicializo no arquivo .irbrc como uma instância da classe Object</p>
<pre class="brush: ruby; ">
twitter_config(&#039;username&#039;, &#039;password&#039;)
</pre>
<p>Para usar 1.twit como você sugere, no meu exemplo eu tenho que iniciar uma instância da classe inteiro:</p>
<pre class="brush: ruby; ">
1.twitter_config(&#039;username&#039;, &#039;password&#039;)
</pre>
<p>Mas tenho outra sugestão para deixar o código do jeito que você quer. É só mudar as variáveis de instância para variáveis de classe. Pois, apesar dos valores do usuário e senha serem armazenados inicialmente na classe Object, qualquer instância de qualquer classe poderá ter acesso a esses valores: string, integer, etc.</p>
<p>O código final utilizando variáveis de classe é o seguinte</p>
<pre class="brush: ruby; ">
def twitter_config(username, password)
     @@username = username
     @@password = password
end
</pre>
<p>No método twitter é só modificar a linha 19 para:</p>
<pre class="brush: ruby; ">
req.basic_auth(@@username, @@password) # só acrescentei outro arroba para usar variáveis de classe ao invés de instância.
</pre>
<p>Agora é só brincar!</p>
<p>Mauricio, pode enviar mais sugestões. Só aprendi tudo isso hoje graças ao seu exemplo. O propósito aqui é experimentar, trocar idéias e aprender cada vez mais em conjunto.</p>
<p>Um grande abraço.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Valério Farias</title>
		<link>http://valeriofarias.com/twitter-via-irb-ruby/comment-page-1/#comment-35</link>
		<dc:creator>Valério Farias</dc:creator>
		<pubDate>Fri, 03 Jul 2009 14:36:45 +0000</pubDate>
		<guid isPermaLink="false">http://geyserway.com/?p=127#comment-35</guid>
		<description>Beleza Maurício, Valeu pela dica! Vou testar aqui.</description>
		<content:encoded><![CDATA[<p>Beleza Maurício, Valeu pela dica! Vou testar aqui.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mauricio</title>
		<link>http://valeriofarias.com/twitter-via-irb-ruby/comment-page-1/#comment-34</link>
		<dc:creator>Mauricio</dc:creator>
		<pubDate>Fri, 03 Jul 2009 03:01:28 +0000</pubDate>
		<guid isPermaLink="false">http://geyserway.com/?p=127#comment-34</guid>
		<description>Ao invés de colocar os métodos dentro da classe Object, é melhor definir eles fora da classe... pq dessa forma, vc permite coisas malucas tipo

&quot;&quot;.twit &quot;Uma Mensagem&quot;
1.twit &quot;Outra mensagem&quot;</description>
		<content:encoded><![CDATA[<p>Ao invés de colocar os métodos dentro da classe Object, é melhor definir eles fora da classe&#8230; pq dessa forma, vc permite coisas malucas tipo</p>
<p>&#8220;&#8221;.twit &#8220;Uma Mensagem&#8221;<br />
1.twit &#8220;Outra mensagem&#8221;</p>
]]></content:encoded>
	</item>
</channel>
</rss>

