def and undef a method
2008
def my_method; end # define a method undef my_method # remove a method
my web space
def my_method; end # define a method undef my_method # remove a method
arr = (1..10).to_a str = arr * ', ' str = arr.join(', ')
Am I going to use the perlish coding style? Not really.
Ruby file manipulation is as easy as:
MyFile.create "test.txt" MyFile.add "test.txt", "some content" MyFile.remove "test.txt"
For example create a file caled fileeasy.rb and add the following module to it:
module FileEasy def self.included(subject) subject.extend(ClassMethods) end module ClassMethods alias_method :delete, :remove alias_method :unlink, :remove def create(filename) File.open(filename, "w") end def add(filename, text) File.open(filename, "a"){ |f| f < < text } end def remove(filename) File.delete(filename) end end end
Then test it with irb:
require 'fileeasy' class MyClass include FileEasy end MyFile.create "text.txt" MyFile.add "text.txt", "test content" MyFile.remove "text.txt"
Of course this post is just a simple tutorial and the standard library is the best choice – FileUtils.
class Class def attr(arg) arg = arg.to_s if self.class_variables.include?(arg) class_eval %(def self.#{arg.sub(/^\@\@/, '')}; #{arg}; end) else raise ArgumentError, "No such class attribute", caller end end end class Test @@class_var = "class variable value" attr :@@class_var end puts Test.class_var => "class variable value"
AoH = [{"z"=>26}, {"g"=>7}, {"r"=>18}, {"a"=>1}, {"v"=>22}] # sort by key AoH.map{|e| e.to_a.flatten}.sort{|x,y| x[0] < => y[0]} # sort by value AoH.map{|e| e.to_a.flatten}.sort{|x,y| x[1] < => y[1]}
# RoR source code: # File vendor/rails/actionpack/lib/action_view/helpers/text_helper.rb, line 34 def truncate(text, length = 30, truncate_string = "...") if text.nil? then return end l = length - truncate_string.chars.length text.chars.length > length ? text.chars[0...l] + truncate_string : text end # My point of view: def truncate(text, _length = 30, truncate_string = "...") text[0..(_length-1)] + truncate_string end
Here’s the mirror
Behind there is a screen
Turn around
On both ways you can get in
The experience of survival
Look around just people, can you hear their voice
Find the one who’ll guide you to the limits of your choice
The experience / of survival
Try to think about it …
That’s the chance to live your life and discover
Try to think about it
The experience of survival
The experience …
The experience of survival
The experience …
Go to your TRAC project dir and issue the following commands:
1. cd to_your_trac_project_dir
2. ruby -i -pe ’$_.sub! /(repository_dir\s=\s).+/, “repository_dir = NEW_repository_PATH”’ trac.ini
3. trac-admin . resync
Some of the more rarely used string methods:
str = "the tester" str["tester"] #true, the String contains "tester" str[/\w+\s\w+/] #true, the String matches the regexp
emulates capitalize!
str[/(\w+)/] = ($1[0] - 32).chr