Есть ли простой способ скрыть немного кода Ruby? - PullRequest
1 голос
/ 11 августа 2011

Я искал решение, которое сделало бы код Ruby гораздо более нечитаемым.

На самом деле меня не интересует полное запутывание кода, а получение "однострочного * .rb файла" или чего-то подобного "Симпатичные числа" по этой ссылке приветствуется.

Перед публикацией здесь я потратил несколько часов, чтобы найти решение, но не смог найти ни одного скрипта, гема или программы для преобразования легко читаемого кодадля чего-то более сложного для понимания "чайников".

Пробовал, например, эти , но любой может выполнить всю работу легко.

Ответы [ 3 ]

3 голосов
/ 01 октября 2013

Инкапсулировать код в строку

string = "1+2; sneaky('something'); 'will be hidden'"

Инкапсуляция строки в массиве

array = [string]

Упаковать содержимое массива в двоичную последовательность

 array.pack('u') #=> "?<'50``\n..."

Скопируйте и вставьте двоичную последовательность в ваш код и оцените ее.

eval("?<'50``\n...".unpack('u').first) #=> 'will be hidden'
1 голос
/ 11 августа 2011
  • Замените все имена переменных, методов или классов однобуквенными именами, как a, b или c.
  • Знаете ли вы DRY ?Забудь это.Повторите части кода, чтобы сделать его больше и сложнее для понимания.Попробуйте также написать один и тот же кусок кода разными способами.
  • Преобразование простых целых чисел и строки в большие выражения или вычисления.
  • Определение дополнительных функций и использование undef после или определение существующих функций передреальное определение.
  • Добавьте вещи, которые ничего не делают, между кодом или кодом, который делает что-то, за которым следует другой, который отменяет это.
  • Переместите части кода куда-то раньше и используйте heredoc дляпреобразовать этот код в строку.Затем выполните его там, где он должен быть.
  • Объедините все в одну строку и забудьте про отступ.После добавления новых строк в середине инструкций попробуйте нарисовать прямоугольник с кодом или что-то в этом роде.
  • Протестируйте код.Если он перестал работать, извините, вы никогда не сможете прочитать его снова.

В любом случае, просто напутайте в коде.Но это нужно сделать вручную.

0 голосов
/ 11 августа 2011

Имена переменных и методов. Не wast символов.

...