Chociaż prawdą jest, że nie można uzyskać dostęp do zmiennych lokalnych zdefiniowanych w wymaganych plików, można uzyskać dostęp do stałych, można uzyskać dostęp do niczego przechowywane w obiekcie, że masz dostęp do obu kontekstach. Istnieje kilka sposobów udostępniania informacji w zależności od celów.
Najpopularniejszym rozwiązaniem jest prawdopodobnie zdefiniowanie modułu i umieszczenie w nim wartości wspólnej. Ponieważ moduły są stałe, będziesz mieć do nich dostęp w wymagającym kontekście.
# in welcome.rb
module Messages
WELCOME = "hi there"
end
# in irb
puts Messages::WELCOME # prints out "hi there"
Można również umieścić wartość wewnątrz klasy, aby osiągnąć ten sam efekt. Alternatywnie możesz po prostu zdefiniować go jako stałą w pliku. Ponieważ kontekst domyślny jest obiektem klasy Object, nazywanym głównym, można również zdefiniować metodę, zmienną instancji lub zmienną klasy na głównej. Wszystkie te podejścia są zasadniczo różnymi sposobami tworzenia "zmiennych globalnych" mniej więcej i mogą nie być optymalne dla większości celów. Z drugiej strony, w przypadku małych projektów z bardzo dobrze zdefiniowanymi zakresami mogą one być w porządku.
# in welcome.rb
WELCOME = "hi constant"
@welcome = "hi instance var"
@@welcome = "hi class var"
def welcome
"hi method"
end
# in irb
# These all print out what you would expect.
puts WELCOME
puts @welcome
puts @@welcome
puts welcome
Miło, jako komentarz: "WELCOME" w kodzie Johna Hylanda można uzyskać, ponieważ zaczyna się od * upcase * letter, co czyni go stałą. Ruby to zainteresowanie. –