LINUX.ORG.RU

Ответ на: комментарий от GreenBag

Спасибо, гуглил, конечно, но не нагуглил.

Bobrius
() автор топика
Ответ на: комментарий от Lorchanin

К ЯП надо относиться как к средству, а не как к цели.

Как еще решаются задачи?:

  • Задача
  • Выбор наилучшего решения
  • ???
  • Профит
Bobrius
() автор топика
Ответ на: комментарий от Lorchanin

RUBY_VERSION==«2.0.0» ? (__dir__) : (Dir.pwd)

предлагаю более универсальный вариант!

RUBY_VERSION=="2.0.0" || RUBY_VERSION=="2.0.1"  || RUBY_VERSION=="2.0.2" ? (__dir__) : (Dir.pwd)
user_id_68054 ★★★★★
()
Ответ на: комментарий от Lorchanin

ну... этот вариант — подходит только для серъёзных случаев :) ..

а вот в шутливом Python — используется как раз вариант наподобие ``RUBY_VERSION==«2.0.0» ? ...``

proof: https://bitbucket.org/gutworth/six/issue/22/variable-sixpy3-is-time-bomb (обратите внимание на Status:wontfix )

user_id_68054 ★★★★★
()

Я в Пандоре использую такой метод:

# Platform detection
# RU: Определение платформы
def os_family
  case RUBY_PLATFORM
    when /ix/i, /ux/i, /gnu/i, /sysv/i, /solaris/i, /sunos/i, /bsd/i
      "unix"
    when /win/i, /ming/i
      "windows"
    else
      "other"
  end
end

# Paths and files  ('join' gets '/' for Linux and '\' for Windows)
# RU: Пути и файлы ('join' дает '/' для Линукса и '\' для Винды)
if os_family != 'windows'
  $pandora_root_dir = Dir.pwd      # Current Pandora directory
else
  $pandora_root_dir = '.'
end
$pandora_base_dir = File.join($pandora_root_dir, 'base')
$pandora_view_dir = File.join($pandora_root_dir, 'view')
$pandora_model_dir = File.join($pandora_root_dir, 'model')
$pandora_lang_dir = File.join($pandora_root_dir, 'lang')
$pandora_sqlite_db = File.join($pandora_base_dir, 'pandora.sqlite')
$pandora_sqlite_db2 = File.join($pandora_base_dir, 'pandora2.sqlite')

Ибо в Windows XP проблема с русскими путями.
(в другой винде не пробовал, ибо нету)

Novator ★★★★★
()
Последнее исправление: Novator (всего исправлений: 3)
Ответ на: комментарий от Bobrius

код не идеален, но я сожрал не один кактус, чтобы его написать.
так что какие-то костыли из него могут быть полезны )

p.s. Кстати, «Dir.pwd» выдает текущую директорию, а не путь, по которому лежит скрипт. Как узнать путь скрипта, я не знаю.

Novator ★★★★★
()
Последнее исправление: Novator (всего исправлений: 1)
Ответ на: комментарий от Novator

Как узнать путь скрипта, я не знаю.

Очень просто:

import inspect
print(inspect.stack()[0][0].f_code.co_filename)

C:\>python C:\1\test.py
C:\1\test.py

anonymous
()
Ответ на: комментарий от iVS

А, что-то такое видел в питоноскриптах.
Правда, лучше бы сделали какой-нибудь DIR, или подобное.

Lorchanin
()
Ответ на: комментарий от Novator

Ты по-английски не понимаешь или что? Там ведь точно такой же вариант, не понимаю, зачем ты его привел.

iVS ★★★★★
()
Ответ на: комментарий от iVS

1. Для Ъ.
2. Пусть будет здесь на русском для подрастающих программистов.
3. К тому же там явно ошибочный двойной вызов dirname().

Novator ★★★★★
()
Последнее исправление: Novator (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.