On Thursday, July 17, 2014 1:17:49 PM UTC-4, Jeremy Evans wrote:
>
> On Thursday, July 17, 2014 10:08:32 AM UTC-7, Richard Michael wrote:
>>
>> Hello,
>>
>> I am new to Sequel, it is fantastic, thank you!
>>
>> I have a database schema which uses CamelCase for most names, both tables 
>> and columns.  I am using `def_column_alias` to provide Ruby-like method 
>> names:
>>
>> class Foo < S::M
>>   def_column_alias :email_address, :EmailAddress # ==> a_foo.email_address
>>
>>   # many more such def_c_a calls
>> end
>>
>>
>> However, I'd like to do a little more than simple CamelCase to snake_case 
>> conversion.  For example, many column names are [more or less] prefixed 
>> with the table name (ex. table: Folders with columns: FolderName, FolderId) 
>> and I'd like to remove the prefix.
>>
>>
>> How can I ask Sequel to define these aliases (or methods) when it builds 
>> the usual methods (#EmailAddress)?
>>
>> I've searched the mailing list and seen discussion (in 2011) about 
>> overriding Sequel::Model::Base#def_column_accessor.  I'm cautious about 
>> overriding -- is that still a reasonable approach?  Perhaps I should be 
>> looking for a specific hook, or writing a plugin?
>>
>> I'd appreciate someone nudging me in the right direction.
>>
>
> I think defining Sequel::Model.def_column_accessor is probably fine.  Just 
> call super first:
>
>   def (Sequel::Model).def_column_accessor(*columns)
>      super
>      columns.each |c|
>        def_column_alias(alias_method_for(c), c)
>      end
>   end
>
> You'll need to come up with the appropriate definition for the 
> alias_method_for method.
>

Ok, I'll go in that direction.

 

> Thanks,
> Jeremy
>

Thank you very much for a clear and fast reply Jeremy ; and thank you also 
for your remarkable leadership and maintenance of Sequel, you are exemplary!

Regards,
Richard 

-- 
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/d/optout.

Reply via email to