[#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: accessing protected or private methods from class methods

From: Robert Klemme <shortcutter@...>
Date: 2012-08-20 13:44:39 UTC
List: ruby-talk #398481
On Sat, Aug 18, 2012 at 9:13 PM, Denis Leclair <lists@ruby-forum.com> wrote:
> Christopher Dicely wrote in post #1072759:
>> In a sense what you are asking for is self-contradictory in Ruby -- a
>> class is
>> an object (an instance of class Class), and its a different object than
>> its own
>> instances. So, when you take a method out of the public interface to
>> hide it
>> from "external" code, you are hiding it from class methods because they
>> are
>> external code as much as any other method that isn't part of the
>> instance is.
>
> I disagree that this is self-contradictory in Ruby. I understand that
> they've gone with the "a class is an object" model and that certainly
> brings a lot of nice characteristics to the language. But that, in and
> of itself, does not require that class methods be treated as "external
> code" from the perspective of the class object.

It (i.e. the class) is external from the perspective of the instance.
The instance should be responsible for maintaining its own affairs.

> There is still a very strong association between the class method and
> the class object that it is bound to so there's no technical reason why
> the class method couldn't be given more access privileges than other
> non-associated code. It must have been a deliberate decision to set it
> up this way and I'm trying to get an appreciation for why that decision
> would have been made.

Even if it is technically feasible it will add additional complexity
and it may make things actually unnecessary complex - especially if
you start thinking about how super and sub classes should be handled
in this case.  Current checks are simpler because "self" is the only
instance which is allowed to invoke protected methods and private
methods must only be invoked without explicit receiver.

> Then again, maybe there is a technical reason why those privileges
> couldn't be given and I'm just not seeing it.

Since I am not Matz I cannot answer this definitively.  My assumption
of possible reasons

 - encapsulation at the object level, since class != any of its
instances it is external to the object and giving it privileged access
will break that rule (you then could also ask for instance.@foo = 123,
i.e. easy access to instance variables
 - added complexity (cost in development, maintenance, runtime performance)
 - there is a solution (use #send)
 - too low benefit given items above

I think Matz just did not want to encourage people writing code
manipulating an instance in other classes.

Kind regards

robert

-- 
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

In This Thread

Prev Next