[#390749] Why are there so many similar/identical methods in core classes — Kassym Dorsel <k.dorsel@...>

Let's look at the Array class and start with method aliases.

14 messages 2011/12/02

[#390755] Inverse Operation of Module#include — Su Zhang <su.comp.lang.ruby@...>

Hi list,

21 messages 2011/12/02
[#390759] Re: Inverse Operation of Module#include — Ryan Davis <ryand-ruby@...> 2011/12/02

[#390764] Re: Inverse Operation of Module#include — Isaac Sanders <isaacbfsanders@...> 2011/12/02

I would suggest an Adapter pattern use here. IF there is something that has

[#390876] black magical hash element vivification — Chad Perrin <code@...>

Ruby (1.9.3p0 to be precise, installed with RVM) is not behaving as I

12 messages 2011/12/05

[#390918] WEB SURVEY about Ruby Community — Intransition <transfire@...>

Did any one else get this survey request?

14 messages 2011/12/07

[#390976] Confusing results from string multiplication — Rob Marshall <robmarshall@...>

Hi,

19 messages 2011/12/08

[#391019] How can I do h["foo"] += "bar" if h["foo"] does not exist? — "Andrew S." <andrewinfosec@...>

Hi there,

13 messages 2011/12/09

[#391027] reading from file without end-of-lines — Janko Muzykant <umrzykus@...>

hi,

20 messages 2011/12/09
[#391028] Re: reading from file without end-of-lines — Gavin Sinclair <gsinclair@...> 2011/12/09

> i'm trying to read a few text values from single file:

[#391031] Re: reading from file without end-of-lines — Robert Klemme <shortcutter@...> 2011/12/09

On Fri, Dec 9, 2011 at 9:58 AM, Gavin Sinclair <gsinclair@gmail.com> wrote:

[#391042] Re: reading from file without end-of-lines — Gavin Sinclair <gsinclair@...> 2011/12/09

On Fri, Dec 9, 2011 at 8:18 PM, Robert Klemme

[#391135] I need advice on what to do next. — Nathan Kossaeth <system_freak_2004@...>

I am new to programming. I read the ebook "Learn to Program" by Chris

23 messages 2011/12/12

[#391216] perf optimization using profile results — Chuck Remes <cremes.devlist@...>

I need some help with optimizing a set of libraries that I use. They are ffi-rzmq, zmqmachine and rzmq_brokers (all up on github).

13 messages 2011/12/13
[#391218] Re: perf optimization using profile results — Chuck Remes <cremes.devlist@...> 2011/12/13

On Dec 13, 2011, at 9:57 AM, Chuck Remes wrote:

[#391234] Re: perf optimization using profile results — Charles Oliver Nutter <headius@...> 2011/12/14

A couple quick observations.

[#391238] Re: perf optimization using profile results — Chuck Remes <cremes.devlist@...> 2011/12/14

On Dec 13, 2011, at 7:03 PM, Charles Oliver Nutter wrote:

[#391324] ruby 1.9 threading performance goes non-linear — Joel VanderWerf <joelvanderwerf@...>

12 messages 2011/12/16
[#391325] Re: ruby 1.9 threading performance goes non-linear — Eric Wong <normalperson@...> 2011/12/16

Joel VanderWerf <joelvanderwerf@gmail.com> wrote:

[#391420] Accessing class instance variables from an instance? — "Shareef J." <shareef@...>

Hi there,

26 messages 2011/12/20
[#391454] Re: Accessing class instance variables from an instance? — Khat Harr <myphatproxy@...> 2011/12/21

Actually, now that I'm thinking about it the existing behavior sort of

[#391456] Re: Accessing class instance variables from an instance? — Josh Cheek <josh.cheek@...> 2011/12/21

On Tue, Dec 20, 2011 at 9:42 PM, Khat Harr <myphatproxy@hotmail.com> wrote:

[#391545] Kernel#exit raises an exception? — Khat Harr <myphatproxy@...>

While I was working on embedding an interpreter I wrote a function to

13 messages 2011/12/24

[#391618] rvmsh: An easy installer for RVM — Bryan Dunsmore <dunsmoreb@...>

I have recently begun work on a project called [rvmsh]

12 messages 2011/12/29

[#391783] Mailspam — Gunther Diemant <g.diemant@...>

Is there a way to stop this mailspam of Luca (Mail)?

12 messages 2011/12/29

[#391790] What’s the standard way of implementing #hash for value objects in Ruby? — Nikolai Weibull <now@...>

Hi!

23 messages 2011/12/29
[#391792] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Gunther Diemant <g.diemant@...> 2011/12/29

I think you can't access instance variables from a class method, so

[#391793] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Nikolai Weibull <now@...> 2011/12/29

On Thu, Dec 29, 2011 at 15:52, Gunther Diemant <g.diemant@gmx.net> wrote:

[#391811] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Robert Klemme <shortcutter@...> 2011/12/29

On Thu, Dec 29, 2011 at 4:06 PM, Nikolai Weibull <now@bitwi.se> wrote:

[#391812] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Nikolai Weibull <now@...> 2011/12/29

On Fri, Dec 30, 2011 at 00:26, Robert Klemme <shortcutter@googlemail.com> w=

[#391816] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Josh Cheek <josh.cheek@...> 2011/12/30

On Thu, Dec 29, 2011 at 5:47 PM, Nikolai Weibull <now@bitwi.se> wrote:

[#391833] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Robert Klemme <shortcutter@...> 2011/12/30

On Fri, Dec 30, 2011 at 12:47 AM, Nikolai Weibull <now@bitwi.se> wrote:

Re: What is a good ruby tutorial / book for a beginner?

From: Josh Cheek <josh.cheek@...>
Date: 2011-12-09 03:23:53 UTC
List: ruby-talk #391014
On Thu, Dec 8, 2011 at 8:10 PM, Samuel Mensah <sasogeek@yahoo.com> wrote:

> I have been reading Chris Pine's book for a while now and I'm stuck at
> the chapter where I have to write my own sorting method. All the code I
> tried don't work and when I searched for sorting algorithms and programs
> in ruby, ALL the source code I had a look at had a couple of elements in
> it that the book I'm reading hasn't taught yet...I think something is
> missing... You guys are masters of this language and have already learnt
> it so I'd want to know how you learnt it and what books you read and if
> they are downloadable.Downloadable ebooks would be of great help to me,
> thank you. :)
>
> --
> Posted via http://www.ruby-forum.com/.
>
>
Hi, Sam :)

This is a good exercise! When I first tried to sort an array, it hurt my
brain (literally, it was physically painful) I had to look at a solution
and draw it out on paper to be able to understand it. So don't sweat it,
just realize you have to be dedicated :)

Now, when you're starting out, you'll have to deal with people using things
you haven't learned about yet. That's unfortunate, but it's a just a fact.
Don't be put off by them, try to understand what they're doing, even if you
don't understand how they're doing it. You'll learn the how in time, and
the ability to understand the "what" without the "how" will be very
powerful.

Now, in the case of hashes, they're just just a collection, like arrays,
but the difference is that you access them by some arbitrary object (called
a key, usually a symbol or a string), rather than an integer index.

I advocate playing around with some cards, pay attention to yourself when
you sort them. What do you do? Can you articulate those steps so that if
you described it to a human, they could understand them? Can you then take
those steps and write them in code so that a machine can understand them?



Anyway, here is one I just wrote. I try to use very few array methods, and
whenever I think something might be confusing (ie "why is he doing that?")
I pull it out and make it into a method whose name explains why I'm doing
it. So if you read from the bottom, the implementation should be pretty
obvious "for each element, insert it in sorted order into a new array"
That's pretty straightforward :) Of course, now we have to figure out what
"insert it in sorted order" means, so go up to the next method, see if you
can understand how it works. If you understand each of the pieces, you
understand the whole. You can also feel free to pull out the method calls
and inline them if you think that will be more helpful for you.



def can_access?(array, index)
  index < array.size
end

def make_a_hole(array, hole_index)
  current_index = array.size
  while hole_index < current_index
    array[current_index] = array[current_index-1]
    current_index -= 1
  end
end

def insert(array, add_index, to_add)
  make_a_hole(array, add_index)
  array[add_index] = to_add
end

def ordered_insert(sorted_array, to_add)
  add_index = 0
  while can_access?(sorted_array, add_index) && sorted_array[add_index] <
to_add
    add_index += 1
  end
  insert sorted_array, add_index, to_add
end

def sort(array)
  sorted = []
  array.each do |to_add|
    ordered_insert sorted, to_add
  end
  sorted
end

a = [1, 4, 2, 5, 3]
sort a  # => [1, 2, 3, 4, 5]
a # => [1, 4, 2, 5, 3]

In This Thread