On May 15, 2006, at 2:44 AM, Giles Bowkett wrote:

> OK, so I have this class and it could probably be a Struct.
>
> class Sample
>
>  # I should probably turn this whole class into a simple
> Struct.new(etc.) statement
>
>  attr :note_length, true
>  attr :track, true
>  attr :note, true
>  attr :channel, true
>  attr :threshold, true
>  attr :notes, true
>
>  def initialize(note_length, sequence, note, channel, threshold,  
> notes)
>    @note_length = note_length
>
>    @track = Track.new(sequence)
>    @track.sequence.tracks << @track # butt
>
>    @note = note
>    @channel = channel
>    @threshold = threshold
>    @notes = notes
>  end
>
> end
>
>

class Sample < Struct.new(:note_length, :sequence, :note, :channel,  
etc.)
    def initialize
      super
      # blah
    end
end


> Please forgive my laziness, because I'm certain this is in Pickaxe,
> Why's Poignant Guide, Ruby In A Nutshell, "The Ruby Way," and a dozen
> other resources as well, most of which are either a bookshelf away or
> a Google away, but if anybody wants to just humor me, what's the best
> way to simplify this heinous, Java-esque code? Can I throw it in a
> Struct and then just extend initialize without losing any of the stuff
> Struct provides?
>
> The line with the comment "butt" is unavoidable (for now).
>
> -- 
> Giles Bowkett
> http://www.gilesgoatboy.org
>