[#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: Redefining constants for a given instance only

From: "Andrea Dallera" <andrea@...>
Date: 2012-08-05 17:48:12 UTC
List: ruby-talk #398045
 Hi Robert,

    thanks for your reply. 

> That can lead to confusion with regard to the class names.

I know, but that shouldn't cause me problems in this particular case.

Unfortunately, I'd like to avoid storing the class in a variable and then referring to it because then the code inside what I called Evaluator would have to be aware of the mechanics. The method Evaluator#evaluate might also refer to more than one constant and, ideally, shouldn't be at all aware that one of the constant it's using is not what it originally was defined:

class A; end
class B; end
class C; end

class Evaluator
  def evaluate
     #complex expression using one or more among A,B,C, like for example
     A.method1 == :test && @myvar.is_a?(B) && C.method2 == :other_test
  end
end

mind that the swap should happen only for a given instance of Evaluator, not at the class level, in a way such as

ev1 = Evaluator.new
ev2 = Evaluator.new
ev1.set(A).to(B) #something like this, or worse named ev1.set(A,B) for simplicity 
ev1.evaluate #here, A.is_a?(B)#true.
ev2.evaluate #here, not so

I'm not even sure if that's possible to do in ruby at this point. Opening the singleton class (class << ev1) and defining the constant there works (in the sense that the singleton class has the constant correctly  changed) but the methods defined on the class correctly ignore it.

In any case, thanks for your time :-)

Andrea
--

http://usingimho.wordpress.com
http://github.com/bolthar
From: "Robert Klemme" shortcutter@googlemail.com
To: ruby-talk@ruby-lang.org
Cc: 
Date: Mon, 6 Aug 2012 02:28:09 +0900
Subject: Re: Redefining constants for a given instance only

> On Sun, Aug 5, 2012 at 7:19 PM, Andrea Dallera  wrote:
> > Hello,
> >
> >     let's say we have two empty classes:
> >
> > class ClassA
> >
> > end
> >
> > class ClassB
> >
> > end
> >
> > then we have a third one, which has a method that references the first
> > class:
> >
> > class Evaluator
> >
> >    def evaluate
> >        return ClassA
> >    end
> >
> > end
> >
> > What I'd like to do is to be able to redefine what ClassA is for a given
> > instance of Evaluator, like so:
> >
> > ev = Evaluator.new
> > 
> > ev.evaluate #ClassB
> >
> > I found out how to do this, but only class-wide:
> >
> > ev = Evaluator.new
> > ev.evaluate #ClassA
> > class Evaluator
> >   ClassA = ClassB
> > end
> > ev.evaluate #ClassB
> 
> That can lead to confusion with regard to the class names.
> 
> > Ideas?
> 
> Well, the simplest is to just store it in a member.
> 
> irb(main):001:0> Evaluator = Struct.new :other_class do
> irb(main):002:1* def evaluate; other_class; end
> irb(main):003:1> end
> => Evaluator
> irb(main):004:0> class A;end
> => nil
> irb(main):005:0> class B;end
> => nil
> irb(main):006:0> e1 = Evaluator.new A
> => #
> irb(main):007:0> e1.evaluate
> => A
> irb(main):008:0> e2 = Evaluator.new B
> => #
> irb(main):009:0> e2.evaluate
> => B
> 
> Note: you do not necessarily need the Struct, I just picked it because
> that saved me a bit of typing.
> 
> Kind regards
> 
> robert
> 
> 
> -- 
> remember.guy do |as, often| as.you_can - without end
> http://blog.rubybestpractices.com/
> 

In This Thread