[#293058] Hello, world? (#158) — Matthew D Moss <matthew.moss@...>

The three rules of Ruby Quiz 2:

41 messages 2008/03/01

[#293075] Scan HTML — Tom Arra <turtleman14789@...>

So I am new to Ruby scripting so I am not sure if this is possible or

16 messages 2008/03/01

[#293195] How do I get the server name? — "laredotornado@..." <laredotornado@...>

Hi,

13 messages 2008/03/02

[#293248] Split the string — Sijo Kg <sijo@...>

I have a string

17 messages 2008/03/03

[#293307] Normal For Loop — Cory Cory <cg821105@...>

I'm new to Ruby. Is there such thing as a C++ style (and most others)

16 messages 2008/03/03

[#293327] Class and inheritance — August0866 <august0866@...>

Hi All,

21 messages 2008/03/03

[#293399] Why is this not implemented in Ruby — Damjan Rems <d_rems@...>

16 messages 2008/03/03

[#293407] Question on the Ruby Programming Language Book — Bharat Ruparel <bruparel@...>

I have been reading The Ruby Programming Language book by David Flanagan

11 messages 2008/03/03

[#293445] Better performance than native unix commands? — Ma Sa <ntwrkd@...>

I have an issue with nfs and listing a large amount of files that I am

16 messages 2008/03/04

[#293484] jruby vs mri memory management — "Michal Suchanek" <hramrach@...>

Hello

12 messages 2008/03/04

[#293493] Re: The Ruby Programming Language - what are your thoughts? — coigner <coignerATgmail@...>

On Mon, 03 Mar 2008 22:04:55 -0500, Esmail wrote:

20 messages 2008/03/04
[#293944] Re: The Ruby Programming Language - what are your thoughts? — Clifford Heath <no@...> 2008/03/09

Esmail wrote:

[#293955] Re: The Ruby Programming Language - what are your thoughts? — Dave Thomas <dave@...> 2008/03/09

[#293982] Re: The Ruby Programming Language - what are your thoughts? — Clifford Heath <no@...> 2008/03/10

Dave Thomas wrote:

[#293994] Re: The Ruby Programming Language - what are your thoughts? — James Gray <james@...> 2008/03/10

On Mar 9, 2008, at 7:46 PM, Clifford Heath wrote:

[#293601] collect with index? — Tim Conner <plump4651@...>

simple question: how can I do a collect with index? This should be

13 messages 2008/03/05

[#293715] duplicating characters in a string — Adam Akhtar <adamtemporary@...>

If i have a string "abc" and want to make it like this "aabbcc", how do

30 messages 2008/03/06
[#293720] Re: duplicating characters in a string — Gary Wright <gwtmp01@...> 2008/03/06

[#293723] Re: duplicating characters in a string — Adam Akhtar <adamtemporary@...> 2008/03/06

[#293757] IO#Foreach -- Max line length — Tristin Davis <tristin.colby@...>

I'm trying to emulate the new feature in 1.9 that allows you to specify

13 messages 2008/03/06
[#293762] Re: IO#Foreach -- Max line length — 7stud -- <bbxx789_05ss@...> 2008/03/06

Tristin Davis wrote:

[#293809] Dynamic class thingies? (Okay, not sure how to title this one) — coigner <coignerATgmail@...>

Asking for ideas here but let me preface...

9 messages 2008/03/07

[#293927] Trac - Does it make sense to keep http://trac.edgewall.org/ticket/4315 open? — Ilias Lazaridis <ilias@...>

Response to message [1] on trac.devel (as I cannot write there, due to

13 messages 2008/03/09

[#293986] Offering to work directly for the Ruby community! — Gregory Brown <gregory.t.brown@...>

Hi folks,

21 messages 2008/03/10

[#293996] Re: Best practices for Ruby Meta-programming — John Carter <john.carter@...>

On Thu, 6 Mar 2008, harshal wrote:

10 messages 2008/03/10
[#294029] Re: Best practices for Ruby Meta-programming — "Robert Dober" <robert.dober@...> 2008/03/10

On Mon, Mar 10, 2008 at 4:06 AM, John Carter <john.carter@tait.co.nz> wrote:

[#293999] Reding unicode characters? — dare ruby <martin@...>

Hi friends,

13 messages 2008/03/10

[#294015] newbie question — Frantisek Psotka <frantisek.psotka@...>

is in ruby operator for:

15 messages 2008/03/10

[#294034] Getting files out of a .tar.gz archive — celldee <celldee@...>

Hi,

11 messages 2008/03/10

[#294059] Which is better -- method option or multiple methods? — Trans <transfire@...>

In the case of limited options, like the following example, which is

19 messages 2008/03/10

[#294081] Re: shortcut for x = [x] unless x.is_a?(Array) — Siep Korteling <s.korteling@...>

Aryk Grosz wrote:

11 messages 2008/03/10

[#294111] setting local variables via eval — ara howard <ara.t.howard@...>

16 messages 2008/03/11

[#294192] whats the error here? — Adam Akhtar <adamtemporary@...>

My IDE (aptana rails) seems to complain about syntax with this code

15 messages 2008/03/11
[#294197] Re: whats the error here? — Sebastian Hungerecker <sepp2k@...> 2008/03/11

Adam Akhtar wrote:

[#294210] Yet another Windows installer — Phillip Gawlowski <cmdjackryan@...>

Hello, list.

32 messages 2008/03/12
[#294421] Re: [ANN] Yet another Windows installer — James Tucker <jftucker@...> 2008/03/13

[#294231] sort array by some text — Ma Fe <frytaz@...>

Hi, i have array with file names

18 messages 2008/03/12
[#294233] Re: sort array by some text — "Todd Benson" <caduceass@...> 2008/03/12

On Wed, Mar 12, 2008 at 12:02 AM, Ma Fe <frytaz@gmail.com> wrote:

[#294234] Re: sort array by some text — Ma Fe <frytaz@...> 2008/03/12

well I dont know where in array i have .txt files but its sure that

[#294281] elsunless: Compiles but does not run. Standard? — Fred Talpiot <fredistic@...>

In Ruby:

10 messages 2008/03/12

[#294297] including general variables in modules — Mario Ruiz <mario@...>

I'm trying to create different scenarios so I thought to do something

14 messages 2008/03/12

[#294366] Parametric module or injecting code via class method? — Trans <transfire@...>

Which approach is better: parametric module or an injecting class

20 messages 2008/03/13
[#294474] Re: Parametric module or injecting code via class method? — ara howard <ara.t.howard@...> 2008/03/13

[#294486] Re: Parametric module or injecting code via class method? — Robert Klemme <shortcutter@...> 2008/03/13

On 13.03.2008 20:35, ara howard wrote:

[#294499] Re: Parametric module or injecting code via class method? — ara howard <ara.t.howard@...> 2008/03/13

[#294799] Re: Parametric module or injecting code via class method? — Robert Klemme <shortcutter@...> 2008/03/16

On 14.03.2008 00:42, ara howard wrote:

[#294808] Re: Parametric module or injecting code via class method? — "Sean O'Halpin" <sean.ohalpin@...> 2008/03/16

On Sun, Mar 16, 2008 at 9:30 PM, Robert Klemme

[#294481] use reqex to get the middle character and repeat it — Adam Akhtar <adamtemporary@...>

say i have the string "qxq" and i want to repeat the middle char 4 times

10 messages 2008/03/13

[#294506] What is Ruby's biggest strength ? — Tuan Minh <tanthuyhoang85@...>

I'm learning Ruby an Rails.

34 messages 2008/03/14
[#294592] Re: What is Ruby's biggest strength ? — Jeremy Henty <onepoint@...> 2008/03/14

On 2008-03-14, Avdi Grimm <avdi@avdi.org> wrote:

[#294632] Re: What is Ruby's biggest strength ? — Marc Heiler <shevegen@...> 2008/03/14

> What helps Ruby stronger than other programming languages

[#294634] Re: What is Ruby's biggest strength ? — 7stud -- <bbxx789_05ss@...> 2008/03/15

Marc Heiler wrote:

[#294522] Food Database (#159) — "Matthew Moss" <matthew.moss@...>

Note that because I am traveling tomorrow, I've posted this week's

15 messages 2008/03/14

[#294564] Robert's Ruby Riddle: Methodical Digits — "Robert Dober" <robert.dober@...>

Hi list

10 messages 2008/03/14

[#294573] How to Read Ruby API / Documentation — Chinna Karuppan <chinnakaruppan@...>

Hi,

13 messages 2008/03/14

[#294648] standard library documentation — Tom Cloyd <tomcloyd@...>

An example of a puzzle I've run into many times before -

18 messages 2008/03/15
[#294652] Re: standard library documentation — Tom Cloyd <tomcloyd@...> 2008/03/15

Tom Cloyd wrote:

[#294693] How to make net-ping thread safe? — Laurent Julliard <laurent@...>

Hi,

15 messages 2008/03/15

[#294711] WWW::Mechanize and basic_auth — "Todd A. Jacobs" <tjacobs-sndr-019fdb@...>

I'm trying to get basic authentication to work with Ruby 1.8 and

12 messages 2008/03/15

[#294746] argh! more undocumented mysteries: to_yaml — Tom Cloyd <tomcloyd@...>

Beginner woes, here, no doubt, but woes nevertheless.

29 messages 2008/03/16
[#294749] Re: argh! more undocumented mysteries: to_yaml — Stefano Crocco <stefano.crocco@...> 2008/03/16

On Sunday 16 March 2008, Tom Cloyd wrote:

[#294792] returning text between two markers without markers included — Adam Akhtar <adamtemporary@...>

12 messages 2008/03/16
[#294793] Re: returning text between two markers without markers included — Xavier Noria <fxn@...> 2008/03/16

On Mar 16, 2008, at 21:02 , Adam Akhtar wrote:

[#294794] Re: returning text between two markers without markers inclu — Adam Akhtar <adamtemporary@...> 2008/03/16

Thanks Xavier,

[#294828] For Comment: Gem Browser — "s.ross" <cwdinfo@...>

It occurred to me that the way I was finding Gems was by making notes

23 messages 2008/03/17

[#294849] Ruby "Speedup" hints? — Marc Heiler <shevegen@...>

Anyone of you has a few hints on how to speed up ruby code?

34 messages 2008/03/17
[#294888] Re: Ruby "Speedup" hints? — "Gerardo Santana Gez Garrido" <gerardo.santana@...> 2008/03/17

On Mon, Mar 17, 2008 at 12:42 PM, Marc Heiler <shevegen@linuxmail.org> wrote:

[#294894] Re: Ruby "Speedup" hints? — Paul Brannan <pbrannan@...> 2008/03/17

On Tue, Mar 18, 2008 at 02:17:22AM +0900, Gerardo Santana G?mez Garrido wrote:

[#294919] Re: Ruby "Speedup" hints? — "Gerardo Santana Gez Garrido" <gerardo.santana@...> 2008/03/18

On Mon, Mar 17, 2008 at 6:08 PM, Paul Brannan <pbrannan@atdesk.com> wrote:

[#294859] Test for Internet Connection — Cory Cory <cg821105@...>

Does anyone know a way to test to see if the computer is connected to

16 messages 2008/03/17
[#294872] Re: Test for Internet Connection — Roger Pack <rogerpack2005@...> 2008/03/17

I usually do something like this on my machine

[#295150] combine array(string) to string? — Pat Kiatchaipipat <hb.pat87@...>

str= "ABCDE"

11 messages 2008/03/20

[#295184] extending ruby with C++ — 7stud -- <bbxx789_05ss@...>

I'm using this old (2001) mini tutorial:

17 messages 2008/03/20

[#295212] including instance methods and setting an instance variable — Leon Bogaert <leon@...>

Hi all,

20 messages 2008/03/20
[#295234] Re: including instance methods and setting an instance variable — "David A. Black" <dblack@...> 2008/03/21

Hi --

[#295246] Re: including instance methods and setting an instance varia — Leon Bogaert <leon@...> 2008/03/21

Thanks for the clear explanation David!

[#295255] Re: including instance methods and setting an instance varia — Leon Bogaert <leon@...> 2008/03/21

Can I "connect" with the instance if it get's instanciated? Because I

[#295257] Re: including instance methods and setting an instance varia — Robert Klemme <shortcutter@...> 2008/03/21

On 21.03.2008 11:15, Leon Bogaert wrote:

[#295327] Re: including instance methods and setting an instance varia — Leon Bogaert <leon@...> 2008/03/21

Thanks Robert!

[#295328] Re: including instance methods and setting an instance varia — Leon Bogaert <leon@...> 2008/03/21

This guy: http://www.ruby-forum.com/topic/142444

[#295331] Re: including instance methods and setting an instance varia — "David A. Black" <dblack@...> 2008/03/21

Hi --

[#295358] Re: including instance methods and setting an instance varia — Leon Bogaert <leon@...> 2008/03/22

Ah thanks David.

[#295365] Re: including instance methods and setting an instance varia — Robert Klemme <shortcutter@...> 2008/03/22

On 22.03.2008 09:34, Leon Bogaert wrote:

[#295375] Re: including instance methods and setting an instance varia — "Robert Dober" <robert.dober@...> 2008/03/22

On Sat, Mar 22, 2008 at 11:34 AM, Robert Klemme

[#295376] Re: including instance methods and setting an instance varia — Robert Klemme <shortcutter@...> 2008/03/22

On 22.03.2008 13:43, Robert Dober wrote:

[#295288] dynamically defining a method on an instance that references vars in enclosing scope? — "Christopher J. Bottaro" <cjbottaro@...>

Hello. I want to do this.

9 messages 2008/03/21

[#295443] Sytem hook for instance names? — Jeff Patterson <jeff_patterson@...>

Is there a system hook that allows a method to get an instance's symbol

15 messages 2008/03/23

[#295468] Rich Graphic Interface with Ruby — Diego Bernardes <di3go.bernardes@...>

What is the best way to get a really nice gui in ruby?

11 messages 2008/03/24

[#295472] Bootstrapping Ruby with MinGW: selfhosted and test sandbox! — Luis Lavena <luislavena@...>

Hello List,

33 messages 2008/03/24

[#295476] functions, arguments and changing their value permantently — Adam Akhtar <adamtemporary@...>

Im coming over to Ruby from C++ after a long break from programming. One

9 messages 2008/03/24

[#295500] Beginner's question — Peter Johnsson <avokadoret@...>

This question may be a bit too "simple" for this forum which seems to

15 messages 2008/03/24

[#295591] generating unique random numbers — Jimmy Palmer <modernfossil@...>

I'm trying to generate 8 unique random numbers between 1 and 13.

15 messages 2008/03/25

[#295605] thread.rb — "Adam Bender" <abender@...>

I want to modify the Queue class in thread.rb, so I first searched for

12 messages 2008/03/25

[#295615] Why git instead of mercurial? — "John Wells" <lists@...>

It seems like the hot new thing these days in Ruby-land is to host

45 messages 2008/03/25
[#295623] Re: Why git instead of mercurial? — "Matt Todd" <chiology@...> 2008/03/25

I really don't think the internal implementation has that much

[#295736] Re: Why git instead of mercurial? — James Britt <james.britt@...> 2008/03/25

Matt Todd wrote:

[#295629] numbers of a record in an array — Bu Mihai <mihai.bulhac@...>

a have an array array=["a","b","c","a","b"]

17 messages 2008/03/25

[#295661] Pros and Cons of Ruby vs JRuby for GUI — "Victor Reyes" <victor.reyes@...>

Although I have been using Ruby for awhile, I am really a beginner as I use

11 messages 2008/03/25

[#295712] remove regex matched line question — Ikuta Lin <ikuta_lin@...>

I wrote the code to query a txt file, and tried remove matched line like

13 messages 2008/03/25

[#295714] Is possible Ruby to use CRLF instead of LF? — "Iñaki Baz Castillo" <ibc@...>

SGksIEFGQUlLIFJ1YnkgdXNlcyBMRiA9IFxuIHRvIGRldGVjdCBuZXdsaW5lLiBCdXQgbm93IEkn

11 messages 2008/03/25

[#295761] golf: tabs to bullets — "Martin DeMello" <martindemello@...>

Given:

18 messages 2008/03/25

[#295828] INTERPRETED LANGUAGE — Jitendra Rai <jitendra.vinsol@...>

IS IT NECESSARY FOR AN INTERPRETED LANGUAGE TO BE CASE SENSITIVE?

14 messages 2008/03/26

[#295854] The inject function — Shendelzare Silkwood <zerruellx@...>

I want to add together numbers in an array with the inject command. I

12 messages 2008/03/26

[#295876] "loop do IO.select([io], nil, nil)" eats 95% of CPU, any other way? — "Iñaki Baz Castillo" <ibc@...>

SGksIHdoaWNoIGlzIHRoZSBtb3N0IGVmZmljaWVudCB3YXkgb2YgcmVjZWl2aW5nIGFuZCBwcm9j

14 messages 2008/03/26

[#295881] Sun's Overview of Ruby and JRuby — Veloso <starlover@...>

A very good article

11 messages 2008/03/26

[#296063] Web-based games? — Hal Fulton <hal9000@...>

Who's interested in developing a few web-based games?

25 messages 2008/03/28
[#296090] Re: Web-based games? — "M. Edward (Ed) Borasky" <znmeb@...> 2008/03/28

Hal Fulton wrote:

[#296146] Re: Web-based games? — John Joyce <dangerwillrobinsondanger@...> 2008/03/29

[#296160] Re: Web-based games? — Marc Heiler <shevegen@...> 2008/03/29

> Be careful about intellectual property, especially trademarks,

[#296064] hrpicot - cant extract what i want from page — Adam Akhtar <adamtemporary@...>

Hi im starting to use hrpicot and im having problems extracting

9 messages 2008/03/28

[#296098] Why Ruby do not optimize code at all? — Heesob Park <phasis@...>

Hi,

29 messages 2008/03/28
[#296112] Re: Why Ruby do not optimize code at all? — "Park Heesob" <phasis68@...> 2008/03/28

SGksDQotLS0tLSBPcmlnaW5hbCBNZXNzYWdlIC0tLS0tIA0KRnJvbTogInRzIiA8ZGVjb3V4QG1v

[#296115] Re: Why Ruby do not optimize code at all? — ts <decoux@...> 2008/03/28

Park Heesob wrote:

[#296151] Is ruby is faster than all Object oriented Scripting langs — "bramu.ss@..." <bramu.ss@...>

Hello,

37 messages 2008/03/29

[#296173] Help on best way to gather/sort results [Array/Hash]? — Tony De <tonydema@...>

Greetings ruby fans,

18 messages 2008/03/29
[#296177] Re: Help on best way to gather/sort results [Array/Hash]? — "Todd Benson" <caduceass@...> 2008/03/29

On Sat, Mar 29, 2008 at 12:02 AM, Tony De <tonydema@gmail.com> wrote:

[#296179] Re: Help on best way to gather/sort results ? — Tony De <tonydema@...> 2008/03/29

Todd Benson wrote:

[#296180] Re: Help on best way to gather/sort results ? — Tony De <tonydema@...> 2008/03/29

Tony De wrote:

[#296182] Re: Help on best way to gather/sort results ? — Christian <chippersbox@...> 2008/03/29

Wouldn't you want something like @results.sort {|x, y| y[1] <=> x[1]}?

[#296200] rexml to slow — Bu Mihai <mihai.bulhac@...>

I have an xml file and sometimes i call the find_first_recursive method;

19 messages 2008/03/29
[#296325] Re: rexml to slow — Robert Klemme <shortcutter@...> 2008/03/30

On 29.03.2008 08:46, Bu Mihai wrote:

[#296364] Re: rexml to slow — Bu Mihai <mihai.bulhac@...> 2008/03/30

Robert Klemme wrote:

[#296371] Re: rexml to slow — Robert Klemme <shortcutter@...> 2008/03/30

On 30.03.2008 20:23, Bu Mihai wrote:

[#296379] Re: rexml to slow — Bu Mihai <mihai.bulhac@...> 2008/03/30

Robert Klemme wrote:

[#296205] RubyGems 1.1.0 — Eric Hodel <drbrain@...7.net>

= Announce: RubyGems Release 1.1.0

22 messages 2008/03/29

[#296306] inject's pathological case... — "Just Another Victim of the Ambient Morality" <ihatespam@...>

I'm not sure how I feel about inject's pathological case. What do you

28 messages 2008/03/30
[#296309] Re: inject's pathological case... — 7stud -- <bbxx789_05ss@...> 2008/03/30

Just Another Victim... wrote:

[#296311] Re: inject's pathological case... — 7stud -- <bbxx789_05ss@...> 2008/03/30

Oh, yeah:

[#296331] Re: inject's pathological case... — "Rick DeNatale" <rick.denatale@...> 2008/03/30

On 3/30/08, 7stud -- <bbxx789_05ss@yahoo.com> wrote:

[#296375] GC help — "Joey Marino" <joey.da3rd@...>

I am still running out of memory with my ruby application. For some reason,

15 messages 2008/03/30
[#296376] Re: GC help — Tim Hunter <TimHunter@...> 2008/03/30

Joey Marino wrote:

[#296477] Primes in P? — Charles Zheng <snarles2@...>

There is an algorithm that tests primes with a polynomial running time:

13 messages 2008/03/31

[ANN] fattr-1.0.2

From: ara howard <ara.t.howard@...>
Date: 2008-03-08 04:08:39 UTC
List: ruby-talk #293864
NAME
   fattr.rb

INSTALL
   gem install fattrs

URIS
   http://codeforpeople.com/lib/ruby
   http://rubyforge.org/projects/codeforpeople/
   http://codeforpeople.rubyforge.org/svn/

SYNOPSIS
   fattr.rb is a "fatter attr" for ruby.

   fattr.rb supercedes attributes.rb as that library, even though it  
added only
   one method to the global namespace, collided too frequently with  
user code -
   in particular rails' code.

   the implementation of fattr.rb borrows many of the best ideas from  
the
   metakoans.rb ruby quiz

     http://www.rubyquiz.com/quiz67.html

   in particular the solutions of Christian Neukirchen and Florian  
Gross along
   with concepts from the original traits.rb lib

   key features provided by fattrs are

     - ability to specify default values for attrs and definition  
time.  values
       can be literal objects or blocks, which are evaluated in the  
context of
       self to initialize the variable

     - classes remember which fattrs they've defined and this  
information is
      available to client code

     - a whole suite of methods is defined by calls to #fattrs including
      getter, setter, query (var?) and banger (var! - which forces
      re-initialization from the default value/block)

     - ability to define multiple fattrs at once using key => value  
pairs

     - fast lookup of whether or not a class has defined a certain fattr

     - fattrs can be defined on objects on a per singleton basis

     - getters acts as setters if an argument is given to them

     - block caching, calling an fattr with a block sets the instance
       variable to that block

     - shortcuts for adding class/module level fattrs

   all this in < 100 lines of code

HISTORY
   1.0.2:
     added Fattr shortcut for adding class/module level fattrs

       class C
         Fattr 'children' => []

         def C.inherited other
           (children << other).uniq!
           super
         end
       end

       class B < C
       end

       p C.children #=> B

   1.0.0:
     port from attributes.rb retaining all the same features of that  
version of
     attributes.rb

SAMPLES

   <========< samples/a.rb >========>

   ~ > cat samples/a.rb

     #
     # basic usage is like attr, but note that fattr defines a suite  
of methods
     #
       require 'fattr'

       class C
         fattr 'a'
       end

       c = C.new

       c.a = 42
       p c.a                 #=> 42
       p 'forty-two' if c.a? #=> 'forty-two'

     #
     # fattrs works on object too
     #
       o = Object.new
       o.fattr 'answer' => 42
       p o.answer           #=> 42

   ~ > ruby samples/a.rb

     42
     "forty-two"
     42


   <========< samples/b.rb >========>

   ~ > cat samples/b.rb

     #
     # default values may be given either directly or as a block which  
will be
     # evaluated in the context of self.  in both cases (value or  
block) the
     # default is set only once and only if needed - it's a lazy  
evaluation.  the
     # 'banger' method can be used to re-initialize a variable at any  
point whether
     # or not it's already been initialized.
     #
       require 'fattr'

       class C
         fattr :a => 42
         fattr(:b){ Float a }
       end

       c = C.new
       p c.a #=> 42
       p c.b #=> 42.0

       c.a = 43
       p c.a #=> 43
       c.a!
       p c.a #=> 42

   ~ > ruby samples/b.rb

     42
     42.0
     43
     42


   <========< samples/c.rb >========>

   ~ > cat samples/c.rb

     #
     # multiple values may by given, plain names and key/val pairs may  
be mixed.
     #
       require 'fattr'

       class C
         fattrs 'x', 'y' => 0b101000, 'z' => 0b10
       end

       c = C.new
       c.x = c.y + c.z
       p c.x #=> 42

   ~ > ruby samples/c.rb

     42


   <========< samples/d.rb >========>

   ~ > cat samples/d.rb

     #
     # a nice feature is that all fattrs are enumerated in the class.   
this,
     # combined with the fact that the getter method is defined so as  
to delegate
     # to the setter when an argument is given, means bulk  
initialization and/or
     # fattr traversal is very easy.
     #
       require 'fattr'

       class C
         fattrs %w( x y z )

         def fattrs
           self.class.fattrs
         end

         def initialize
           fattrs.each_with_index{|a,i| send a, i}
         end

         def to_hash
           fattrs.inject({}){|h,a| h.update a => send(a)}
         end

         def inspect
           to_hash.inspect
         end
       end

       c = C.new
       p c.fattrs
       p c

       c.x 'forty-two'
       p c.x

   ~ > ruby samples/d.rb

     ["x", "y", "z"]
     {"x"=>0, "y"=>1, "z"=>2}
     "forty-two"


   <========< samples/e.rb >========>

   ~ > cat samples/e.rb

     #
     # my favourite element of fattrs is that getters can also be  
setters.
     # this allows incredibly clean looking code like
     #
       require 'fattr'

       class Config
         fattrs %w( host port)
         def initialize(&block) instance_eval &block end
       end

       conf = Config.new{
         host 'codeforpeople.org'

         port 80
       }

       p conf

   ~ > ruby samples/e.rb

     #<Config:0x224d4 @port=80, @host="codeforpeople.org">


   <========< samples/f.rb >========>

   ~ > cat samples/f.rb

     #
     # of course fattrs works as well at class/module level as at  
instance
     # level
     #
       require 'fattr'

       module Logging
         Level_names = {
           0 => 'INFO',
           # ...
           42 => 'DEBUG',
         }

         class << self
           fattr 'level' => 42
           fattr('level_name'){ Level_names[level] }
         end
       end

     p Logging.level
     p Logging.level_name

   ~ > ruby samples/f.rb

     42
     "DEBUG"


   <========< samples/g.rb >========>

   ~ > cat samples/g.rb

     #
     # you can add class/module fattrs the 'normal' way or using the  
provided
     # shortcut method
     #
       require 'fattr'

       class C
         class << self
           fattr 'a' => 4
         end

         Fattr 'b' => 2
       end

       p [ C.a, C.b ].join

   ~ > ruby samples/g.rb

     "42"


enjoy!

a @ http://codeforpeople.com/
--
share your knowledge.  it's a way to achieve immortality.
h.h. the 14th dalai lama



In This Thread

Prev Next