-
-
Save joefiorini/1049083 to your computer and use it in GitHub Desktop.
class Blah | |
private | |
def method1 | |
end | |
def method2 | |
end | |
end | |
# vs. | |
class Blah | |
private | |
def method1 | |
end | |
def method2 | |
end | |
end | |
# vs. | |
class Blah | |
def public_method | |
end | |
private | |
def method1 | |
end | |
def method2 | |
end | |
end |
#2 with comment eg.
private #################################### private
@korin That's an interesting one. It reminds me that I had tried this a few times:
;; private ;;
#1 is the Rails convention (I think)
#2 makes the most sense
#3 is probably the most readable
I vote #3
#3
#3
I use #2... It's not really too hard with syntax highlighting to pick out private methods.
#2 for me.
It's a pity it's not a block to show it's applicability in a text editor with fold indicators (as demostrated by @metaskills)
Coming from the world of M$, I would prefer @trans initial musings... but would be just as happy with a block. Wishful thinking...
I go with #2, but stay consistent with pre-existing codebases. I've also made use of private :method_name
(which @brianvh pointed out). I can't be sure, but I think I got that from something Dave Thomas once said, maybe in the PragProg Metaprogramming screencasts.
#2 makes the most sense since it is just a method invocation, while #3 is slightly less readable, and #1 I have never liked.
I use #3 although I #2 is certaintly more accurate since "public/protected/private" are not special keywords but normal method calls. #1 makes me feel sick, indentation levels are too precious a thing to waste them like that.
class Classy
def initialize
end
private
begin
def private_method_1
end
def private_method_2
end
end
end
Someone wrote private do
which wouldn't work, but got me thinking about the above example.
#2
#1 - according to Rails convention. Vim support this with vim-ruby and in vimrc: let g:ruby_indent_access_modifier_style="indent"
Who does #2 work for? https://www.youtube.com/watch?v=nmJKY59NX8o
Indenting private section is good for huge classes where you can find some private method, trying to use it, and then realise that it is actually private. So I use #2 for small classes and #1 for huge classes with a lot of private methods.
#3 way seems very strange and meaningless.
I've always used 1 but at my current job they use 2 so I've switched to that for the sake of consistency. I don't feel strongly but prefer 1.
However, I really dislike 3 as it visually interrupts the scope of the class.
#1