[#394281] Can someone throw me a bone — Bob Baird <lists@...>

Hi all,

14 messages 2012/04/02

[#394311] using hash as database? Secure databases with ruby? — ruby rocks <lists@...>

I am new to programming and am learning ruby as my first language. I

16 messages 2012/04/03
[#394315] Re: using hash as database? Secure databases with ruby? — Hassan Schroeder <hassan.schroeder@...> 2012/04/03

On Tue, Apr 3, 2012 at 10:30 AM, ruby rocks <lists@ruby-forum.com> wrote:

[#394318] Re: using hash as database? Secure databases with ruby? — ruby rocks <lists@...> 2012/04/03

Hassan Schroeder wrote in post #1054862:

[#394320] Re: using hash as database? Secure databases with ruby? — Florian Gilcher <flo@...> 2012/04/03

[#394321] Re: using hash as database? Secure databases with ruby? — ruby rocks <lists@...> 2012/04/03

Florian Gilcher wrote in post #1054875:

[#394375] Call for comments - Structure — Hal Fulton <rubyhacker@...>

Greetings, fellow Rubyists...

14 messages 2012/04/04

[#394390] Design pattern question — James French <James.French@...>

Hi group,

15 messages 2012/04/05

[#394471] How to pull out specific part of a variable and set to another variable? — "Charlie B." <lists@...>

I have a variable that is a long string. The variable looks like this:

9 messages 2012/04/09

[#394492] New to Ruby, tutorial gives wrong example. — Roger McDonald <lists@...>

I am just starting with Ruby with intention to learn and perhaps use it

11 messages 2012/04/10

[#394533] A Beginner's Question about Metaprogramming — Phil Stone <lists@...>

Hey guys, have a question about Ruby programming and found this forum

20 messages 2012/04/10

[#394616] How to test if array element exists? — Soul Surf <lists@...>

I'm new to Ruby and just want to test if an array element exists. Here's

11 messages 2012/04/13

[#394642] how to avoid escaping special chars after backslah in string — Lucky Nl <lists@...>

Hi friends,

13 messages 2012/04/13
[#394645] Re: how to avoid escaping special chars after backslah in string — Roger Pack <lists@...> 2012/04/13

so what's your ideal syntax here?

[#394658] Why doesn't Fixnum#to_d exist? — Mark Campbell <nitrodist@...>

http://stdlib.rubyonrails.org/libdoc/bigdecimal/rdoc/index.html

15 messages 2012/04/13
[#394660] Re: Why doesn't Fixnum#to_d exist? — Bartosz Dziewoński <matma.rex@...> 2012/04/13

It does exist, but it's in a separate file - bigdecimal/util or utils,

[#394663] Re: Why doesn't Fixnum#to_d exist? — Mark Campbell <nitrodist@...> 2012/04/13

Yes, that file has the String#to_d, Float#to_d and Rational#to_d.

[#394675] Operator overloading of the subscript operator — Ralph Shnelvar <ralphs@...32.com>

I understand that operators (e.g. +, -, *, []) are nothing more than method names so that

16 messages 2012/04/14
[#394677] Re: Operator overloading of the subscript operator — "Jan E." <lists@...> 2012/04/14

Hi,

[#394678] Re: Operator overloading of the subscript operator — Ralph Shnelvar <ralphs@...32.com> 2012/04/14

Jan,

[#394767] Capital Cyrillic letter in Ruby class name (UTF-8) — Vladimir Kerimov <lists@...>

Hi matz,

22 messages 2012/04/17

[#394803] Why must I know whether I extend a class or a module? — Marc Heiler <lists@...>

Hi.

18 messages 2012/04/18
[#394843] Re: Why must I know whether I extend a class or a module? — Intransition <transfire@...> 2012/04/19

On Wednesday, April 18, 2012 1:13:17 PM UTC-4, Marc Heiler wrote:

[#394853] How can i make the colorful font with black background for puts? — gmspro gmspro <lists@...>

puts 'Hello World."

10 messages 2012/04/19

[#394865] finding duplicates in an array and its index number — newto ruby <lists@...>

Hi,

11 messages 2012/04/19

[#394964] To developers of Ruby: Feeble documentation - weakness of Ruby and the Ruby on Rails (2nd edition) — Sergey Ezhov <lists@...>

RGlyZWN0bHkgSSBhcG9sb2dpemUgZm9yIG15IEVuZ2xpc2ggLSBJIHVzZWQg

13 messages 2012/04/23
[#394971] Re: To developers of Ruby: Feeble documentation - weakness of Ruby and the Ruby on Rails (2nd editio — Brian Candler <lists@...> 2012/04/23

I think you are a bit confused.

[#394969] gem-packed script with DATA section does not work — Wybo Dekker <wybo@...4all.nl>

The attached minimal gem contains a script that reads "Hello World!"

20 messages 2012/04/23
[#394970] Re: gem-packed script with DATA section does not work — Xavier Noria <fxn@...> 2012/04/23

DATA points to the contents after the __END__ directive of the executable

[#394973] Re: gem-packed script with DATA section does not work — Wybo Dekker <wybo@...4all.nl> 2012/04/23

On 2012-04-23 11:39, Xavier Noria wrote:

[#394988] Re: gem-packed script with DATA section does not work — Ryan Davis <ryand-ruby@...> 2012/04/23

[#394997] Re: gem-packed script with DATA section does not work — Peter Zotov <whitequark@...> 2012/04/23

Ryan Davis писал 23.04.2012 22:58:

[#395024] -BEGINNERS- Where do I Start? — "Thought M." <lists@...>

Hello World....... I am very new to code but have been glancing at it

13 messages 2012/04/25

[#395035] if if if statment — fox foxmaster <lists@...>

Hi all,

19 messages 2012/04/25

[#395085] Wrappng up my Text Game! Need Help! — Jared Hobbs <lists@...>

Hi, everyone. This is my first post!

18 messages 2012/04/26

[#395099] ruby/shoes GUI - sqlite, how to isert a variable key in table? — "Danilo L." <lists@...>

Hello, I am struggling to insert a variable into a table, for example:

17 messages 2012/04/27
[#395104] Re: ruby/shoes GUI - sqlite, how to isert a variable key in table? — Zachary Scott <zachary@...> 2012/04/27

Hi Danilo, How are you enjoying shoooes?

[#395105] Re: ruby/shoes GUI - sqlite, how to isert a variable key in table? — Michel <michel.revesche@...> 2012/04/27

[#395113] why does this return 255 bits instead of 256 (and general bit byte hex string array crypt mayhem :P) — instance_variable ok <lists@...>

So I am doing something that requires me to manipulate things on the bit

14 messages 2012/04/27

[#395193] delete character from array — Ok Ok <lists@...>

Here is my question...

17 messages 2012/04/30
[#395196] Re: delete character from array — Ok Ok <lists@...> 2012/04/30

Yes that was exactly it. I have one more question maybe you can help me

Call for comments - Structure

From: Hal Fulton <rubyhacker@...>
Date: 2012-04-04 23:29:48 UTC
List: ruby-talk #394375
Greetings, fellow Rubyists...

I am revisiting a small project that has lain dormant for
some time...

http://github.com/Hal9000/Structure

As I make changes and improvements, I'd be interested in
hearing your comments.

You're welcome to critique the idea itself, the implementation,
missing features, the code, the style, or whatever.

I've pasted the README here for your convenience.

Thanks,
Hal Fulton

------------------------

Structure
Hal Fulton
Version 1.0.3
License: The Ruby License

This is a newer version of the older "SuperStruct" (sstruct) library.

This is an easy way to create Struct-like classes; it converts easily
between hashes and arrays, and it allows OpenStruct-like dynamic naming
of members.

Unlike Struct, it creates a "real" class, and it has real instance variables
with predictable names.

A basic limitation is that the hash keys must be legal method names (unless
used with send()).

Basically, ss["alpha"], ss[:alpha], and ss.alpha all mean the same.


NOTES:


It's like a Struct...
  - you can pass in a list of symbols for accessors
  - it will create a class for you
but...
  - you don't have to pass in the class name
  - it returns a "real" class
    . instance variables have the expected names
    . you can reopen and add methods
  - it doesn't go into the Struct:: namespace
  - it preserves the order of the fields
  - you can use Strings instead of Symbols for the names

It's like an Array...
 - you can access the items by [number] and [number]=
but...
 - you can also access the items by ["name"] and ["name"]=
 - you can access the items by accessors

It's like an OpenStruct...
 - (if you use .open instead of .new) you can add fields
   automatically with x.field or x.field=val
but...
 - you can initialize it like a Struct
 - it preserves the order of the fields

It's like a Hash...
 - data can be accessed by ["name"]
but...
 - order (of entry or creation) is preserved
 - arbitrary objects as keys are not allowed (it does obj.to_str or obj.to_s)
 - keys must be valid method names

It's like Ara Howard's Named Array...
 - we can access elements by ["name"] or ["name"]=
but...
 - you can access the items by accessors
 - strings must be valid method names

It's like Florian Gross's Keyed List...
 (to be done)
but...
 - it preserves the order of the fields


Some examples: (see test cases)
--------------

  # Need not assign to existing fields (default to nil)
  myStruct = Structure.new(:alpha)
  x = myStruct.new
  x.alpha  # nil

  # A value assigned at construction may be retrieved
  myStruct = Structure.new(:alpha)
  x = myStruct.new(234)
  x.alpha  # 234

  # Unassigned fields are nil
  myStruct = Structure.new(:alpha,:beta)
  x = myStruct.new(234)
  x.beta  # nil

  # An open structure may not construct with nonexistent fields
  myStruct = Structure.open
  x = myStruct.new(234)  # error

  # An open structure may assign fields not previously existing
  myStruct = Structure.open
  x = myStruct.new
  x.foo = 123
  x.bar = 456

  # The act of retrieving a nonexistent field from an open struct will
  # create that field
  myStruct = Structure.open
  x = myStruct.new
  x.foo   # nil

  # A field (in an open struct) that is unassigned will be nil
  myStruct = Structure.open
  x = myStruct.new
  y = x.foobar

  # A struct created with new rather than open cannot reference nonexistent
  # fields
  myStruct = Structure.new
  x = myStruct.new
  x.foo  # error

  # Adding a field to a struct will create a writer and reader for that field

  # An open struct will also create a writer and a reader together

  # A field has a real writer and reader corresponding to it

  # A string will work as well as a symbol
  myStruct = Structure.new("alpha")

  # to_a will return an array of values
  myStruct = Structure.new("alpha","beta","gamma")
  x = myStruct.new(7,8,9)
  assert(x.to_a == [7,8,9])

  # Instance method 'members' will return a list of members (as strings)
  myStruct = Structure.new(:alpha,"beta")
  x = myStruct.new
  assert_equal(["alpha","beta"],x.members)

  # Class method 'members' will return a list of members (as strings)
  myStruct = Structure.new(:alpha,"beta")
  assert_equal(["alpha","beta"],myStruct.members)

  # to_ary will allow a struct to be treated like an array in
  # multiple assignment
  myStruct = Structure.new("alpha","beta","gamma")
  x = myStruct.new(7,8,9)
  a,b,c = x
  assert(b == 8)

  # to_ary will allow a struct to be treated like an array in
  # passed parameters
  myStruct = Structure.new("alpha","beta","gamma")
  x = myStruct.new(7,8,9)
  b = meth(*x)

  # to_hash will return a hash with fields as keys
  myStruct = Structure.new("alpha","beta","gamma")
  x = myStruct.new(7,8,9)
  h = x.to_hash
  assert_equal({"alpha"=>7,"beta"=>8,"gamma"=>9},h)

  # A field name (String) may be used in a hash-like notation
  myStruct = Structure.new("alpha","beta","gamma")
  x = myStruct.new(7,8,9)
  y = x["beta"]

  # A field name (Symbol) may be used in a hash-like notation
  myStruct = Structure.new("alpha","beta","gamma")
  x = myStruct.new(7,8,9)
  y = x[:beta]

  # [offset,length] may be used as for arrays
  myStruct = Structure.new("alpha","beta","gamma")
  x = myStruct.new(7,8,9)
  y = x[0,2]

  # Ranges may be used as for arrays
  myStruct = Structure.new("alpha","beta","gamma")
  x = myStruct.new(7,8,9)
  y = x[1..2]

  # Adding a field to an open struct adds it to the instance
  myStruct = Structure.open(:alpha)
  x = myStruct.new
  x.beta = 5

  # Adding a field to an open struct adds it to the class also
  myStruct = Structure.open(:alpha)
  x = myStruct.new
  x.beta = 5

  # An array passed to Structure.new need not be starred
  myStruct = Structure.new(%w[alpha beta gamma])
  x = myStruct.new

  # A hash passed to #assign will set multiple values at once
  myStruct = Structure.new(%w[alpha beta gamma])
  x = myStruct.new
  hash = {"alpha"=>234,"beta"=>345,"gamma"=>456}
  x.assign(hash)

  # ||= works properly
  x = Structure.open.new
  x.foo ||= 333
  x.bar = x.bar || 444

  # attr_tester will create a ?-method
  myStruct = Structure.new(:alive)
  myStruct.attr_tester :alive
  x = myStruct.new(true)
  x.alive?  # true

In This Thread

Prev Next