[#393742] Getting the class of an object. — Ralph Shnelvar <ralphs@...32.com>

Consider;

14 messages 2012/03/06

[#393815] arcadia IDE requires tcl/tk and ruby-tk — Thufir Hawat <hawat.thufir@...>

which or where tcl and tk does arcadia require? Is this a gem which I

13 messages 2012/03/13

[#393952] What’s the best way to check if a feature/class has been loaded? — Nikolai Weibull <now@...>

Hi!

18 messages 2012/03/21
[#393953] Re: What’s the best way to check if a feature/class has been loaded? — Xavier Noria <fxn@...> 2012/03/21

Active Support has recently added qualified_const_* methods to Module

[#393954] Re: What’s the best way to check if a feature/class has been loaded? — Xavier Noria <fxn@...> 2012/03/21

Ah, that won't work in 1.8.

[#393959] Re: What’s the best way to check if a feature/class has been loaded? — Nikolai Weibull <now@...> 2012/03/21

On Wed, Mar 21, 2012 at 16:43, Xavier Noria <fxn@hashref.com> wrote:

[#393960] Re: What’s the best way to check if a feature/class has been loaded? — Xavier Noria <fxn@...> 2012/03/21

On Wed, Mar 21, 2012 at 8:17 PM, Nikolai Weibull <now@bitwi.se> wrote:

[#393961] Re: What’s the best way to check if a feature/class has been loaded? — Nikolai Weibull <now@...> 2012/03/21

On Wed, Mar 21, 2012 at 20:48, Xavier Noria <fxn@hashref.com> wrote:

[#393962] Re: What’s the best way to check if a feature/class has been loaded? — Xavier Noria <fxn@...> 2012/03/21

On Wed, Mar 21, 2012 at 9:51 PM, Nikolai Weibull <now@bitwi.se> wrote:

[#393967] Re: What’s the best way to check if a feature/class has been loaded? — Nikolai Weibull <now@...> 2012/03/22

On Wed, Mar 21, 2012 at 22:11, Xavier Noria <fxn@hashref.com> wrote:

[#393969] Re: What’s the best way to check if a feature/class has been loaded? — Xavier Noria <fxn@...> 2012/03/22

On Thu, Mar 22, 2012 at 6:15 AM, Nikolai Weibull <now@bitwi.se> wrote:

[#394154] uninitialized constant SOCKSSocket — Resident Moron <lists@...>

I am running ruby 1.9.3 on a linux box. I would like to use

10 messages 2012/03/29

[#394160] Why z = Complex(1,2) rather than z = Complex.new(1,2)? — Ori Ben-Dor <lists@...>

What's this syntax, z = Complex(1,2), as opposed to z =

14 messages 2012/03/29

[#394175] shoes no such file to load -- rubygems — Mr theperson <lists@...>

I have installed shoes to develop GUI applications but when I try and

13 messages 2012/03/29

[#394201] Can't open url with a subdomain with an underscore — Jeroen van Ingen <lists@...>

I try to open the following URL: http://auto_diversen.marktplaza.nl/

10 messages 2012/03/30

[#394222] Ruby openssl ECC help plz — no name <lists@...>

I am confused on how to properly export public ECC key. I can see it

13 messages 2012/03/31

Re: Problem replacing $data[abc] with $data['abc'] using gsub

From: Brian Candler <b.candler@...>
Date: 2012-03-13 20:27:09 UTC
List: ruby-talk #393826
Jan E. wrote in post #1051180:
> The part ".*?" of the regular expression is very inefficient

Is it? Have you measured it?

>, because it
> will at first consume every character until the end of the line and then
> try to find the minimum of characters needed.

Does it? There are many implementations of ruby, which particular one(s) 
are you referring to?

Your argument suggests that

    /(.+?)(.+?)(.+?)(.+?)(.+?)/ =~ "a"*1_000_000

would be extremely inefficient, but actually it runs very fast for me.

So let's demonstrate if you are right or wrong:

require 'benchmark'

LONGSTR = ("a" * 1_000_000).freeze

Benchmark.bmbm do |x|
  x.report("chars") { 1_000_000.times { /aaaaa/ =~ LONGSTR } }
  x.report("non-greedy") { 1_000_000.times { /.*?.*?.*?.*?.*?/ =~ 
LONGSTR } }
end

And the results for me, using ruby 1.8.7 under Mac OSX Lion on a Macbook 
Air i7:

Rehearsal ----------------------------------------------
chars        0.520000   0.000000   0.520000 (  0.516861)
non-greedy   0.510000   0.000000   0.510000 (  0.511089)
------------------------------------- total: 1.030000sec

                 user     system      total        real
chars        0.510000   0.000000   0.510000 (  0.505664)
non-greedy   0.510000   0.000000   0.510000 (  0.511662)

I see no difference there.

> Also you don't need the block version of gsub. You can simple use a
> substitute string and refer to the parenthesized subexpression by \1:

You can, but the block version is often clearer, especially if you are 
doing things like backslash-escaping strings:

# clear
a.gsub(/(.)/) { "\\#{$1}" }

# same result but horrible
a.gsub(/(.)/), "\\\\\\1")

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

In This Thread