On Friday, August 9, 2013 7:56:06 AM UTC-7, Keith Moore wrote:
>
> I am trying to do something similar to what the Sequel::Model does in 
> terms of chaining dataset methods.  However, I am having some issues in 
> doing this.  This may be more of a Ruby design question than a Sequel Gem 
> question, 
>
> However, I am hoping someone can help me with this issue. Here is what I 
> am trying to do: 
>
> Item < Sequel::Model(:ITEM)
>
> def self.apply_filter(params)
> c = self.clone 
> # loop
> c.dataset = c.dataset.where(some criteria here)
> # end loop
> c
> end
>
> end
>
>
> And in my "controller", I want to be able to do something like the below 
> where the other apply methods are chained together in a similar fashion.
>
> items = 
> Item.apply_filter(params).apply_pagination(params).apply_order_by(params).all
>
> The problem is that I don't get back instances of type Item.  They are of 
> type Class.
>
> Can someone tell me how I should go about achieving this?
>

Why do you want to clone the class?  If you want instances of type Item, 
you shouldn't be cloning the Item class.  You probably just want to make 
apply_filter a dataset method:

class Item < Sequel::Model(:ITEM)
  dataset_module do
    def apply_filter(params)
      where(some criteria here)
    end
  end
end

Note that this should work with the example code you provided.

Thanks,
Jeremy

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to