2011-08-11 10 views
0

私は、Rubyコードをはるかに読めるようにするための解決策を模索しました。Rubyコードを少し隠す簡単な方法はありますか?

実際に私は完全にコードを難読化するのではなく、 "1行* .rbファイル"や"Pretty Numbers" on this linkのようなものを得ることに興味があります。

はここに投稿する前に私は解決策を見つけるために時間を経過したが、「ダミー」のために理解するのは難しい、非常に多くの何かに簡単に読み取り可能なコードを変換するために、任意のスクリプト、宝石やプログラムを取得することはできません。

は、たとえばthese onesのために試みたが、いずれかが簡単に全体の仕事をすることができます。

+1

なぜあなたはこれをしたいのでしょうか? – Arafangion

+0

@Arafangion私はRuby Scriptを "Ocra" gemライブラリで配布しています。実行中は、ウィンドウの一時フォルダでスクリプトに完全にアクセスできます。 – cz3ch

+0

それは完全にアクセス可能な場合はどうしますか?それはなぜ問題なのですか?彼らはとにかくそれをコピーすることができます。 – Arafangion

答えて

1
  • だけabまたはcのように、1文字の名前のためのすべての変数、メソッドやクラス名を交換してください。
  • あなたがDRYを知っていますか?忘れてください。コードの部分を繰り返して、理解しやすくする。同じコードを多くの方法で書くようにしてください。
  • 大きな式や計算上の簡単な整数や文字列を変換します。
  • 余分な機能を定義した後undefを使用するか、実際の定義の前に既存の関数を定義します。
  • 、それを元に戻し、別のに続いて何かを行うコード、またはコードの間に何もしないものを追加します。前にどこかにコードの
  • 移動部品や文字列にこのコードを変換するためにヒアドキュメントを使用しています。そして、それはであるべき場所にそれを実行します。
  • 1行ですべてをマージし、インデントを忘れます。命令の途中に改行を入れた後、コードなどで長方形を描こうとします。
  • コードをテストします。それが動作を停止した場合、私はとても残念です、あなたはそれを再び読むことができません。とにかく

、単にコードに混乱を作ります。しかし、手動で行う必要があります。

+0

これは私が知っていたものです...実際にはSketchupのためのRuby Scamblerのようなものを探していました;-) "CR"を ";"で置き換えると思います。 1つの唯一の行ファイルを取得します。 – cz3ch

0

間違え変数名やメソッド名。 wast文字は使用しないでください。文字列内の

2

カプセル化コード配列

array = [string] 

パックで

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

カプセル化列バイナリシーケンス

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

コピー&ペーストバイナリ配列へ配列の内容あなたのコードでそれを評価してください。

eval("?<'50``\n...".unpack('u').first) #=> 'will be hidden' 
関連する問題