[#402707] Require a ruby project to automatically include the modules in classes defined in the same .rb file — Marc Heiler <lists@...>

Hi.

11 messages 2013/01/03
[#402738] Re: Require a ruby project to automatically include the modules in classes defined in the same .rb file — Josh Cheek <josh.cheek@...> 2013/01/04

On Wed, Jan 2, 2013 at 9:58 PM, Marc Heiler <lists@ruby-forum.com> wrote:

[#402764] Best practice for &&, ||, and, or — sto.mar@...

Hi group,

33 messages 2013/01/05
[#402786] Re: Best practice for &&, ||, and, or — "Jan E." <lists@...> 2013/01/05

Hi,

[#402812] newbie question what am I doing wrong? — "Lee V." <lists@...>

I wrote this simple program but it won't work. What am I doing wrong?

13 messages 2013/01/07

[#402856] Ruby on Android - usb/serialport — Scott Macri <lists@...>

Hello,

12 messages 2013/01/07

[#402880] One liner for filenames — Peter Bailey <lists@...>

Hello,

18 messages 2013/01/08

[#402890] Pure Ruby Jobs — Brandon Weaver <keystonelemur@...>

One thing has been bugging me lately. I've been looking around for jobs in

15 messages 2013/01/09

[#402958] how to open pop up window table? — Arup Rakshit <lists@...>

There is `text label` on a webpage, and I am trying to click on that to

13 messages 2013/01/10

[#403015] How Ruby environment varibles work in realtime program? — Arup Rakshit <lists@...>

Hi,

11 messages 2013/01/11

[#403051] Array methods creating confusions as per their functionalities — Arup Rakshit <lists@...>

Can any one just elaborate how the below works in Ruby, by definition

10 messages 2013/01/12

[#403062] How to take information from a text file and add them to an array — Adam Kennedy <lists@...>

Hi Im trying to take a list of usernames from a text file then add them

13 messages 2013/01/12

[#403083] Can anyone tell me the computational logic of Unpack() method of string? — Arup Rakshit <lists@...>

Hi,

17 messages 2013/01/12

[#403116] Garbage Collection and Fibers — Na Na <lists@...>

Hi,

20 messages 2013/01/13

[#403127] Conversion of Ruby-code to c/c++ code :: URGENT Plz help — "Nilesh S." <lists@...>

Hi.. I urgent require to convert the following ruby-code to c/c++ code.

11 messages 2013/01/14

[#403139] Installation query — Ron Herrema <lists@...>

I'm new to Ruby and am enjoying it, but when I installed, I attempted to

19 messages 2013/01/14

[#403205] Escaped backslashes in input strings - newbie question — John Sampson <jrs.idx@...>

I am trying to find a way of removing escaped characters in input

13 messages 2013/01/16
[#403208] Re: Escaped backslashes in input strings - newbie question — Alexander McMillan <alexandermcmillan@...> 2013/01/16

[#403244] Adding file directory automatically — Adam Kennedy <lists@...>

I have a bit of code that will add an amount to an array and then print

23 messages 2013/01/17

[#403326] question about string concatenation — David Richards <lists@...>

I'm puzzled about why the following happens (I'm using v1.9.3):

11 messages 2013/01/20

[#403377] Getting error "getaddrinfo: No such host is known. (Socke tError)" with mechanize gem — Arup Rakshit <lists@...>

I tried the below code:

9 messages 2013/01/22
[#403379] Re: Getting error "getaddrinfo: No such host is known. (Socke tError)" with mechanize gem — Robert Klemme <shortcutter@...> 2013/01/22

On Tue, Jan 22, 2013 at 3:52 PM, Arup Rakshit <lists@ruby-forum.com> wrote:

[#403423] Reading and looping through Excel — cristian cristian <lists@...>

Hi all!

16 messages 2013/01/24

[#403456] Can we attach documents to excel columns using Ruby? — Arup Rakshit <lists@...>

Suppose I do have some folders in a directory. Now say directory name

12 messages 2013/01/24

[#403540] Please explain in English — jooma lavata <lists@...>

I'm learning Ruby and I'm reading some expression that I saw on the

20 messages 2013/01/28

[#403553] Learning Ruby and proving your knowledge — Nathaniel Sokoll-Ward <lists@...>

Hey all,

19 messages 2013/01/28

[#403581] newbie question.. — Zebulon Bowles <lists@...>

So I'm taking a class on Ruby and it seems as though the teacher has

12 messages 2013/01/29

[#403607] (Errno::EINVAL) occurs during the File::rename() execution — Arup Rakshit <lists@...>

Hi I wrote the below code to rename the file names. The logic is during

12 messages 2013/01/30

[#403642] How to copy the directory files only to another directory? — Arup Rakshit <lists@...>

Hi,

18 messages 2013/01/30

[#403656] Does Ruby has any default database with it? — Arup Rakshit <lists@...>

I will do webpage scraping using Ruby and required Gems. But looking for

28 messages 2013/01/30
[#403657] Re: Does Ruby has any default database with it? — Brandon Weaver <keystonelemur@...> 2013/01/30

Normally sqlite is the go to being that it's the default of rails. Check

[#403667] Re: Does Ruby has any default database with it? — Justin Collins <justincollins@...> 2013/01/30

On 01/30/2013 10:21 AM, Arup Rakshit wrote:

[#403671] Re: Does Ruby has any default database with it? — Tony Arcieri <tony.arcieri@...> 2013/01/30

On Wed, Jan 30, 2013 at 12:07 PM, Justin Collins <justincollins@ucla.edu>wrote:

[#403674] Re: Does Ruby has any default database with it? — Arup Rakshit <lists@...> 2013/01/30

Tony Arcieri wrote in post #1094436:

[#403678] Re: Does Ruby has any default database with it? — Justin Collins <justincollins@...> 2013/01/30

On 01/30/2013 12:27 PM, Arup Rakshit wrote:

[#403735] Re: Does Ruby has any default database with it? — tamouse mailing lists <tamouse.lists@...> 2013/02/01

I think the best course for a new project is to start simple, go with

[#403698] Select "columns" from multidimensional array? — Joel Pearson <lists@...>

There's probably a simpler answer to this than the ways I've come up

51 messages 2013/01/31

[#403718] Ruby Project Ideas to get someone hired... — Colby Callahan <colby.callahan@...>

I have started learning Ruby this past week and have down the basics of

15 messages 2013/01/31

Re: Enumerator usage

From: David Richards <lists@...>
Date: 2013-01-22 02:25:59 UTC
List: ruby-talk #403368
Gary Wright wrote in post #1093103:
> On Jan 21, 2013, at 2:20 PM, David Richards <lists@ruby-forum.com>
> wrote:
>> Does this inconsistency result from a parser-level layer of 'syntactic
>> sugar'? I'm also getting a sense that a 'block' is a parser-level
>> construct,
>> and a 'Proc' is an execution-level object.
>
> I don't think it is stressed enough that a block is a syntactic
> structure

But it is possible to create a block programmatically during runtime by 
creating a Proc and converting it to a block with the & operator.

> that is *always* part of a method call.

This page helped clear up a lot of my confusion:

http://eli.thegreenplace.net/2006/04/18/understanding-ruby-blocks-procs-and-methods/

Now I understand that blocks are a shorthand notation than many Ruby 
programmers avoid. Depending on the case, using blocks may make the 
program easier or harder to understand. But more than a mere matter of 
style, there are performance penalties involved, depending on which 
constructs are used:

http://www.confreaks.com/videos/427-rubyconf2010-zomg-why-is-this-code-so-slow

> When a method executes, the block associated with the method call can
> be executed implicitly via the 'yield' keyword, or explicitly reified
> into a Proc object.  Once captured within an Proc object it can be
> executed
> via the #call or #[] methods on the object (which are instance methods
> of the Proc class).

And Procs can be converted into blocks, using the '&' operator.

multiply = lambda{ |x| x*2 }
[1,2,3].map &multiply

> The reification (or capture) can be triggered via the block argument in
> a formal argument list:
>
>   def foo(arg0, &block)
>     yield("arg to the block)  # call implicit block
>     block.call("arg to block")    # call same block via Proc#call
> instance method
>     block["arg to block"]         # call same block via Proc#[] instance
> method
>   end
>
> or the reification can be triggered on demand:
>
>   def foo(arg0)
>     if some_condition)
>             captured = Proc.new    # Proc.new without explicit block
> captures current implicit block
>           else
>             yield("arg to block")  # call implicit block
>           end
>         end

Understood. Here's a cleaned-up version of your example code with 
example calls:

def foo(arg0, &block)
  yield("arg to yield")  # call implicit block
  block.call("arg to block.call")    # call same block via Proc#call 
instance method
  block["arg to block[]"]         # call same block via Proc#[] instance 
method
end

foo(nil){|x| puts(x)}

def foo2(arg0)
  if (arg0)
    captured = Proc.new    # Proc.new without explicit block captures 
current implicit block
    captured["Proc.new"]
  else
    yield("yield")  # call implicit block
  end
end

foo2(true) {|x| puts(x)}
foo2(false){|x| puts(x)}

> Proc objects can also be created via the Kernel#proc method call:
>
>   addition =         proc { |a,b| a + b }
>   multiplication =   proc { |c,d| c * d }
>
>   puts addition.call(1,2)         # => 3
>   puts multiplication.call(2,10)  # => 20
>
> In these examples, the blocks are syntactically part of the calls to to
> the proc method.
>
>   puts addition.class             # => Proc
>   puts multiplication.class       # => Proc

All understood. It's coming into focus. Thanks.

_ Dave

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

In This Thread