[#397988] Help with sqlite3 please — Kaye Ng <lists@...>

I'm on Windows 7 Ultimate, 64-bit

18 messages 2012/08/03
[#397989] Re: Help with sqlite3 please — Chris Hulan <chris.hulan@...> 2012/08/03

sqlite is not ruby, so you should look for a sqlite group ;)

[#397990] Re: Help with sqlite3 please — Kaye Ng <lists@...> 2012/08/03

> However it looks like you have 'SQL' at the beginning of your CREATE

[#398031] Gem install or usage problem in shared environment — Tom Moulton <lists@...>

I am moving to a Westhost shared CPanel account and I am trying to set

17 messages 2012/08/04
[#398077] Re: Gem install or usage problem in shared environment — Tom Moulton <lists@...> 2012/08/06

I got a solution from WestHost and it may help others:

[#398086] Re: Gem install or usage problem in shared environment — Ryan Davis <ryand-ruby@...> 2012/08/07

[#398088] Re: Gem install or usage problem in shared environment — Tom Moulton <lists@...> 2012/08/07

Ryan Davis wrote in post #1071503:

[#398063] Join with ActiveRecord using non-standard schema — Tedi Roca <lists@...>

Hi,

13 messages 2012/08/06

[#398135] Help with database-related code pls — Kaye Ng <lists@...>

Hi guys! This is just a part of the code of a program that can load a

12 messages 2012/08/08

[#398190] How do you order your class methods? — masta Blasta <lists@...>

Just getting some layout ideas from other fellow devs.

11 messages 2012/08/10

[#398245] namespace instance methods? — John Doe <lists@...>

I have a large class with many instance methods that I want to

14 messages 2012/08/13

[#398287] Idea: def ... end returns the symbolized version of the newly-defined method, instead of nil — Peter <lumbergh@...>

This would allow useful syntax constructs such as this:

9 messages 2012/08/13

[#398362] case vs if-else — ajay paswan <lists@...>

Which one is faster?

20 messages 2012/08/16

[#398385] A Ruby class is never closed — Rubyist Rohit <lists@...>

Is it true that a Ruby class definition is never closed? Even after

18 messages 2012/08/16

[#398504] How to create an EXecutable file (Linux) — Fosiul Alam <lists@...>

Hi

13 messages 2012/08/22

[#398506] Save a file by clicking on a link — ajay paswan <lists@...>

I clicked a link to download a file using ruby, now I see the open-save

41 messages 2012/08/22

[#398641] force child threads run paralelly? — ajay paswan <lists@...>

I have created two child thread using main thread- child1 and child2.

19 messages 2012/08/28
[#398644] Re: force child threads run paralelly? — ajay paswan <lists@...> 2012/08/28

Ruby version:

[#398648] Re: force child threads run paralelly? — Tony Arcieri <tony.arcieri@...> 2012/08/28

On Tue, Aug 28, 2012 at 7:19 AM, ajay paswan <lists@ruby-forum.com> wrote:

[#398684] Can I do this with Ruby and sqlite alone? — Kaye Ng <lists@...>

Hi guys.

16 messages 2012/08/29

Re: Supporting multiple versions of an API

From: Intransition <transfire@...>
Date: 2012-08-02 14:47:22 UTC
List: ruby-talk #397957

On Monday, July 30, 2012 9:28:04 PM UTC-4, Matthew Kerwin wrote:
>
>
> For what it's worth, I kind of like this solution, but I get the 
> feeling there's something not quite right about it.


Same here, but it's probably just b/c its unusual --its not something you 
can really do in any other language but Ruby, that I know of. Granted it is 
not perfectly ideal in that modules don't "inherit" exactly in the same way 
classed, but that turns out not to be much of an issue in this case. The 
whole notion of this was a sort of inverted factory, so the forward facing 
API looks normal, e.g. `Main.new`, but versioning still occurs under the 
hood.
 

>  An alternative 
> could be to strategically name source files, and `require` the 
> appropriate one; in that case each version-specific file could 
> redefine the relevant part of Main.  E.g. 
>
>   # File: main.rb 
>   class Main 
>     def initialize version 
>       require "./main-v#{version}.rb" 
>     end 
>     # universal code 
>   end 
>
>   # File main-v0.rb 
>   class Main 
>     # version-specific code 
>   end 
>
> It splits things up into maintainable files quite nicely, and also has 
> less parsing (for what that's worth.)  However it wouldn't work if you 
> need two different versions of Main in the one program. 
>

Yep. Exactly why that approach does work in my case.
 

> Alternatively you could create a factory, which is essentially what 
> you've done, but might be a bit more recognisable to, or better 
> understood by, maintainers.  E.g. 
>
>   class Main 
>     # ... universal code 
>   end 
>   class MainV0 < Main 
>      # ... version-specific code 
>   end 
>   module MainFactory 
>     def self.create version 
>       const_get("MainV#{version}").new 
>     end 
>   end 
>
> It's mostly a fluff change to what you've already got, but it means 
> each object has the version-specific API as their class rather than a 
> mixed-in module (i.e. no real difference as far as I'm aware), and 
> it's clear that the MainFactory is a factory and that each of the 
> MainVx classes are what it instantiates, whereas a partially 
> implemented Main class with some strange magic in its #initialize 
> method might be a bit less clear. 
>

Yes, that's the traditional factory approach. I actually would not want to 
use "MainFactory", as don't want it to be explicit. But it occurs to me 
that I could have redefined `Main.new` as a factory method and done it that 
way. And the more I think about it the more that seems like a better 
approach. It would work well for Main as well as other classes within it. 

In This Thread