[#395238] rubygem: ispunity (unite all your internet connections) — Arun Tomar <tomar.arun@...>

Dear friends,

12 messages 2012/05/01

[#395250] Overwriting one Ruby array or arrays with another — Craig Law <lists@...>

Hi

14 messages 2012/05/02

[#395258] array of strings - finding letter combinations — "Sebastjan H." <lists@...>

Hi All,

16 messages 2012/05/02

[#395357] Why Enumerator#next does not return more than one value? — Földes László <lists@...>

If I have an Enumerator which yields elements of a mathematical series

10 messages 2012/05/07

[#395373] How to use Data_Wrap_Struct to assign the DATA VALUE to an exsiting Ruby object? — Iñaki Baz Castillo <ibc@...>

Hi, my code receives an arbitrary klass name (provided by the user)

8 messages 2012/05/07

[#395429] passing via instance variable or regular () — sam jam <lists@...>

def first

10 messages 2012/05/10

[#395463] I'm looking for a Metaprogramming Project — Phil Stone <lists@...>

Hello,

19 messages 2012/05/11

[#395548] A million reasons why Encoding was a mistake — Marc Heiler <lists@...>

Newcomer wants to try Ruby.

15 messages 2012/05/15
[#395561] Re: A million reasons why Encoding was a mistake — Ryan Davis <ryand-ruby@...> 2012/05/15

[#395595] Re: A million reasons why Encoding was a mistake — Brian Candler <lists@...> 2012/05/16

I will add that the OP is not entirely alone in his opinion.

[#395551] How to ensure that a block runs entirely after other threads? (Thread.exclusive does not "work") — Iñaki Baz Castillo <ibc@...>

Hi, I expected that in the following example code, thread t1 would not

8 messages 2012/05/15

[#395575] GUI with ruby on windows — David Acosta <lists@...>

hello friends, i am a begginer and i have a litlle question, how can i

17 messages 2012/05/16

[#395604] what is going wrong here? — roob noob <lists@...>

Notice the initialization of both classes in each of the examples, if

20 messages 2012/05/16

[#395646] rb_gc_register_address() or rb_gc_mark()? — Iñaki Baz Castillo <ibc@...>

Hi, I've bad experiences with rb_gc_register_address(), it does never

16 messages 2012/05/17

[#395686] reading from and writing to a Unicode encoded file — "Sebastjan H." <lists@...>

Hi,

19 messages 2012/05/18
[#395694] Re: reading from and writing to a Unicode encoded file — Regis d'Aubarede <lists@...> 2012/05/18

Hello,

[#395697] Re: reading from and writing to a Unicode encoded file — "Sebastjan H." <lists@...> 2012/05/18

Regis d'Aubarede wrote in post #1061272:

[#395698] Re: reading from and writing to a Unicode encoded file — Regis d'Aubarede <lists@...> 2012/05/18

Sebastjan H. wrote in post #1061276:

[#395699] Re: reading from and writing to a Unicode encoded file — "Sebastjan H." <lists@...> 2012/05/18

Regis d'Aubarede wrote in post #1061277:

[#395750] Re: reading from and writing to a Unicode encoded file - issues when using Shoes — "Sebastjan H." <lists@...> 2012/05/21

Hi,

[#395754] Re: reading from and writing to a Unicode encoded file - issues when using Shoes — "Sebastjan H." <lists@...> 2012/05/21

Sebastjan H. wrote in post #1061483:

[#395740] ? Ruby through CGI and Rails — Shaun Lloyd <list@...>

Hi everybody,

22 messages 2012/05/21
[#395764] Re: Ruby through CGI and Rails — Brian Candler <lists@...> 2012/05/21

Shaun Lloyd wrote in post #1061455:

[#395786] Re: Ruby through CGI and Rails — Shaun Lloyd <list@...> 2012/05/22

On 22/05/12 03:37, Brian Candler wrote:

[#395838] Re: Ruby through CGI and Rails — Brian Candler <lists@...> 2012/05/23

Shaun Lloyd wrote in post #1061602:

[#395787] Changing self class from inside a method?? — David Madison <lists@...>

Let's start off with the assumption I want a method that allows an

10 messages 2012/05/22

[#395841] Memory-efficient set of Fixnums — George Dupre <lists@...>

Hi,

25 messages 2012/05/23

[#395883] looking for a ruby idiom : r=foo; return r if r — botp <botpena@...>

Hi All,

11 messages 2012/05/24

[#395966] Am I justified to use a global variable if it must be used in all scopes? — Phil Stone <lists@...>

Hello,

12 messages 2012/05/27

[#396010] does this leak more than the size of the string via timing side channels — rooby shoez <lists@...>

string1 = "string"

16 messages 2012/05/29

[#396038] Is it possible to avoid longjmp in exceptions, Thread#kill, exit(), signals? — Iñaki Baz Castillo <ibc@...>

Hi, my Ruby C extension runs a C loop (libuv) without GVL. At some

8 messages 2012/05/29

Re: what is going wrong here? The case of the noob not understanding initialize

From: "Jan E." <lists@...>
Date: 2012-05-17 01:13:26 UTC
List: ruby-talk #395626
roob noob wrote in post #1061072:
> use OFB instead of CTR please you need the cutting edge version of
> OpenSSL for CTR to work

OFB gives me the right output for all three variants:

whatever
�a�xtT��
�a�xtT��
whatever



> the method is *always* dependent on outer variables regardless of if
> they are passed with @ or with ().

No, without the instance variables, the method will always return the 
same value for the same arguments. Its behaviour doesn't depend on outer 
variables.

Compare these two methods:

$z = 10
def add(x, y)
  x + y
end
def add2(x, y)
  x + y + $z
end

The first method doesn't use instance variables. add(1, 1) will always 
return 2, no matter how the outer world looks like. But add2(1, 1) may 
yield different results, depending on the value of $z.

Another important difference is that "() methods" have a clean 
interface: all input comes from the arguments, and all output is in the 
return value. There are no "magical" values from the outside involved. 
This is much easier to track and test, especially if you haven't written 
the code yourself.



> I do agree that
> .instance_variable_get() is ugly though and I am going through my code
> and removing it where possible, making the called methods end on what I
> want to get from them. In some cases I need to get multiple instance
> variables though, maybe I should split it up into many smaller methods
> in these cases? How else am I supposed to get multiple instance
> variables from a method in one class to a method in another class?

Methods can also return hashes or arrays. This way you can pass multiple 
values.

For example:


# this methods calculates the minimum, maximum and average
# of a list of numbers

def min_max_avg(values)
  {
    min: values.min,
    max: values.max,
    avg: values.reduce(:+).to_f/values.length
  }
end



> I can't use () in these cases without greatly decreasing the flexibility
> of my code, since () assumes that I have a class/method to send the
> resulting variables to and .instance_variable_get() only assumes that I
> have the variables to get. What if in some cases I want the resulting
> variables to go one place and in other cases I want them to go somewhere
> else? "Pulling" from the calling method with .instance_variable_get
> makes more sense than "pushing" from the called method with () in these
> cases.

I do understand the purpose of this idea, and it may even be technically 
efficient. But it's still bad style, because how the methods works is 
obscure. Imagine you're a programmer using this code from somebody else. 
What do you find easier to use:

"encrypt(message) returns the AES-256 encryption of message"

or

"Set the @message variable in an instance of Encrypt and call the 
encrypt() method. After this, get the result from the @ciphertext 
variable. Be careful not to change the variables in between."

By the way, you shouldn't use "instance_variable_get" at all. This is 
simply the wrong method for your purpose. Define getter methods for the 
variables (via attr_reader) and call them.

-- 
Posted via http://www.ruby-forum.com/.

In This Thread