Я являюсь автором рубинового драгоценного камня sym
, который выполняет симметричное шифрование.Есть ли драгоценный камень, который обеспечивает операции чтения/записи/удаления для широкого спектра схем URI, таких как file: //, env: // и т. Д.?
Как часть интерфейса командной строки, мне очень хотелось бы иметь возможность использовать данные для шифрования [de] и записывать результат через сменный набор URI. Мне кажется, что мы уже используем URI таким образом, например file://
существует и поддерживается модулем OpenURI
.
Однако, я бы хотел, чтобы это был жемчуг, который не только понимает гораздо более широкий набор URI, но также может читать/писать и, возможно, удалять ресурсы, определенные через URI.
Эта функция может быть настолько чрезвычайно полезно, потому что любая рубин программа, которая считывает и записывает данные могут внезапно заменить File.read
с, что-то полностью универсален:
var_value = SuperURI.parse('env://BASH_VARIABLE_NAME')`.read
или
redis_op = SuperURI.write('redis://localhost:6379/1/OP,Arg1,Arg2')
или
contents = SuperURI.parse('scp://[email protected]/path/file').read
Поскольку я продолжал идти по этому пути, hught из следующих URI кандидатов. Не все из них могут поддерживать запись или удаление ресурса, но все они могут читать данные.
Существующие идентификаторы URI, поддерживаемые OpenURI:
http[s]://[email protected]/path/file
file://filename
ftp[s]://[email protected]/path/file
ldap://ldap.example.com/dc=example?
Предлагаемые возможные способы доступа к локальным и удаленным данным:
string://value
env://variable
std[in|out]://
shell://command
keychain://item_name
redis://127.0.0.1:6397/1/OP,arg1,arg2,...
memcached://127.0.0.1:11211/OP,arg1,arg2
scp://[email protected]/path/file
postgresql://[email protected]/db/?sql=select%20now
И так далее.
Каковы мысли людей о полезности этого драгоценного камня (давайте просто назовем его SuperURI
), который обеспечит реализацию для нетрадиционных протоколов URI?
Полезно? Это ужасная идея? Это по своей сути небезопасно?
Вдумчивые мнения сообщества Ruby очень ценятся.
Спасибо!
Это немного открытое для формата переполнения стека, возможно, это лучше подходит для ['/r/programming'](http://reddit.com/r/programming), [Quora] (http: //quora.com) или даже чат-комнату, специфичную для Ruby. Хотя это интересная идея, я надеюсь, что любые операции записи выполняются только с умышленным намерением со стороны пользователя и никогда не выполняются автоматическим способом, что может привести к уродливым сюрпризам. – tadman
@tadman Спасибо за указатели. Я, безусловно, нахожусь на SO гораздо чаще, чем я нахожусь на Quora или Reddit, поэтому мой первый выбор состоял в том, чтобы опубликовать его здесь. –
Вопрос GitHub + анонс в социальных сетях как «Запрос комментариев» - тоже неплохая идея. Это интересная концепция для библиотеки. Я бы попытался свернуть с названия «URI», что подразумевает синтаксический анализатор и нечто большее, чем «Файловая система», поэтому ясно, что это механизм чтения/записи. – tadman