ruby $ :. unshift File.dirname (__ FILE__) - PullRequest
       0

ruby $ :. unshift File.dirname (__ FILE__)

37 голосов
/ 11 февраля 2012

Я часто вижу это во многих скриптах ruby, но не уверен, что это значит:

$:.unshift File.dirname(__FILE__)

Ответы [ 3 ]

49 голосов
/ 11 февраля 2012

$: - это просто сокращение для $LOAD_PATH. __FILE__ - относительный путь к сценарию. Это добавляет текущий каталог скрипта к пути загрузки.

11 голосов
/ 11 февраля 2012

ruby ​​поставляется с набором предопределенных переменных:

$: Массив содержит список мест для поиска скриптов Ruby и бинарных модулей при загрузке или запросе. Первоначально он состоит из аргументов любых ключей командной строки -I, за которыми следует библиотека Ruby по умолчанию, вероятностная "/ usr / local / lib / ruby", за которой следует ".", Для представления текущего каталога. (Мнемоника: двоеточие - разделители для переменной среды PATH.)

Подробнее смотрите здесь: http://web.njit.edu/all_topics/Prog_Lang_Docs/html/ruby/variable.html#colon

другая ссылка: http://www.ruby -forum.com / тема / 142378 # 631564

1 голос
/ 01 августа 2018

Другой пример:

$:.unshift(File.expand_path("../../lib", __FILE__))
require "aws-inventory"
require "aws_inventory/cli"

AwsInventory::CLI.start(ARGV)

, который гарантирует, что текущий каталог включен в $ LOAD_PATH, а класс AwsInventory :: CLI.start (ARGV) называется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...