ruby - Import into local scope -


consider

# sun.rb class sunshine   def bright?     return true   end end  def greeting(greeter)   puts "hello, sun #{greeter}" end   # main.rb def abc   my_load "sun.rb"   greeting("abc")   return sunshine.new end  s = abc puts s.bright? greeting("adrian") ... 

can have such my_load here greeting("abc") call succeeds, latter greeting("adrian") causes nomethoderror; puts s.bright? call succeeds.

so, synthetically speaking: such classes,methods sun.rb in scope of caller of my_load , additionally garbage collected when not referenced anymore?

first off, stand-alone (called on main object) method call cause nameerror exception if doesn't exist. nomethoderror if call method on object.

nothing #=> nameerror class a; end a.nothing #=> nomethoderror 

this because when call nothing on main, doesn't know if method or variable. however:

nothing() #=> nomethoderror 

because () knows method trying call. watch out for.

second, if want method work , not work, use undef.

def greeting(name)    puts "hello, #{name}" end  greeting("chell") #=> "hello, chell" undef greeting greeting("chell") #=> nomethoderror 

Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c# - Copy ObservableCollection to another ObservableCollection -

All overlapping substrings matching a java regex -