問題タブ [macruby]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - エスケープライン-ERBテンプレートのリターン/エンドオブライン
テンプレートの最終的なテキスト出力に影響を与えることなく、ERBで印刷されていない論理行をフォーマットできる必要があります。現時点では、ERBがそのようなエスケープをサポートしているとは思いません。
これは私の最初の主要なRubyプロジェクトです。私はコードジェネレーターを書いています。私のテンプレートには、かなりの数の条件と列挙が含まれます。テンプレートを読みやすく保守しやすくするには、最終的な出力を歪めることなく、論理コードとコメントをフォーマットできる必要があります。
たとえば、次の出力が必要だとします。
私は素朴に次のようなテンプレートを作成しました。
...しかしこれは
ストレートプリント:
...ロジック行とコメント行の行戻りがERB出力に含まれていることを明確にします。
テンプレートをこの厄介な形式に詰め込むことで、目的の出力を生成できます。
...しかし、より読みやすいフォーマットなしでテンプレートをデバッグおよび保守できるとは思いません。私の条件文と列挙のいくつかは、3レベルもの深さであり、私は重くコメントします。これらすべてを1行または2行に詰め込むと、テンプレートが完全に判読できなくなります。
ERBのコメント行のロジックの行リターンをエスケープまたは抑制する方法はありますか?他の一般的に利用可能なRubyテンプレートモジュールの1つは、これをより適切に処理しますか?
重要な場合は、MacOS10.6.7のMacRuby0.10(Ruby 1.9.2を実装)で作業しています。
ruby - Ruby: 失敗または無効な初期化を処理する方法
無効な初期化引数が渡されたためにオブジェクトの初期化に失敗する状況を処理するための Ruby のベスト プラクティスは何ですか?
ルビーでは、ダックタイピングとは、変数/パラメーターの型に過度に関心を持つべきではなく、それらがどのように動作するかに関心を持つべきであることを意味することを認識しています。ただし、私は Cocoa Objective-C API を介してブリッジされた MacRuby で作業しており、一部の Cocoa メソッドは型付きパラメーターを想定しています。
たとえば、Objective-C API を呼び出す ruby クラスがあり、それに NSURL クラスのオブジェクトを渡す必要があります。次のようになります。
...そして私はそれを次のように呼びます:
>
...うまく機能します。
ただし、私が失敗した場合:
... Objective-C API の深みから来るエラーで乱雑に爆発します。
もちろん、ブリッジされたオブジェクトに到達するための不正なパラメーターを防ぐテストを入れることもできます。
...しかし、まだライブ インスタンスが返されます。初期化から nil を返そうとさえしましたが、ルビーは常にライブインスタンスを返すことを主張しているようです。
私が読んだものはすべて、Ruby では型チェックが非常に嫌われていると言っていますが、おそらく MacRuby の場合は例外を設ける必要があるでしょう。これは ruby の例外の有効な使い方でしょうか、それとももっと洗練された解決策がありますか? 私はルビーの初心者なので、間違った視点から問題に取り組んでいると思います。
ruby - Ruby Testing: メソッドが存在しないかどうかのテスト
rspec および同様のテスト フレームワークでは、メソッドが存在しないことをどのようにテストしますか?
rspec と bacon (rspec の簡易版) をいじり始めたところです。クラスがインスタンス変数への読み取りアクセスのみを許可することを確認するテストを定義したかったのです。だから私は次のようなクラスが欲しい:
私はかなり困惑しています:
さまざまな種類の提供されたテストで、アクセサー メソッドがないことをテストする方法がわかりません。私はルビーとルビーのテストの初心者なので、単純なものが欠けている可能性があります。
authorization - MacRubyを使用したApple認証サービスへのアクセス
/etcディレクトリの設定ファイルを更新する必要があるMacRubyアプリケーションに取り組んでいます。アプリケーションのコマンドラインバージョンでは、これによりパスワードの入力を求められ、アクセスが許可されます。
しかし、現在、アプリケーションをGUIアプリに変換しているので、承認サービスをRubyアプリケーションに統合する方法がわかりません。AppleのDeveloperWebサイトの例では、Obj-CとCを使用しています。MacRubyを使用している理由の大部分は、Rubyでのファイルアクセスが非常に簡単なためです。アプリケーションのその部分をObj-C/Cに変換する必要はありません。MacRubyで認証サービスを使用する方法の良い例を誰かが持っていますか?
xcode - MacRuby HotCocoa $ macrake // エラー
を実行して簡単な hotcocoa コードをコンパイルして実行することはできますが、自動生成された hotcocoa コードをレーキすることはできません。Mac OS X Lion と XCode for Lion を実行しています (ただし、hotcocoa には XCode を使用していません)。
これに対する解決策はありますか?
interface-builder - ビューの動的リフレッシュ - xcode 4 / インターフェイスビルダー
私はxcodeが初めてなので、ご容赦ください。
空白に設定したラベルがあり、ユーザーが [go] をクリックした後、ランダムな単語または数字を生成して使用します。
self.label.stringValue = "some_word"
ビューを更新します。(私はMacRubyを使用しています)
ただし、最後の単語が表示される前に、20 ほどのランダムな単語をすばやく連続して表示したいと思います。現時点ではあまりにも退屈だからです。(代わりに、その場所にアニメーション グラフィックを表示することもできます。これは、最終的なランダムな単語に置き換えられます。)
私は次のようなことを試しました:
しかし、うまくいきません。私も .reloadData を試しましたが、役に立ちませんでした。
これを達成する方法についてのアイデアはありますか?
ruby - Ruby:インラインブロックからの脱却
アップデート
以下は無視してください。これはMacruby0.10に限定されたバグであり、おそらく私のインストールに固有のバグであることが判明しました。他の誰かが問題にぶつかった場合に備えて、私は投稿を残します。
私はルビーブロックについて何かを誤解しているようでした。Pathname
またはFind
モジュールを使用find
して、特定のディレクトリツリー内の特定のファイルを見つけたいと思いました。ただし、提供されたブロックを取得してfind
値を返すことができません。
これから:
...動作します(そして一般的な構造です)私は次のいずれかを期待していました:
... また:
...探しているパスを1つだけ生成しますが、どちらも値を生成しません。
次の両方の理由で、テストが機能することを知っています。
...期待どおりに動作します。
最初の例のように動作break
しないのはなぜですか?find
より一般的には、私はこの状況に正しいルビーテクニック/イディオムを使用していますか?
ruby - デスクトップ アプリの Ruby GUI
何時間もグーグルで調べた結果、Ruby ベースの管理された GUI が本当に存在するのか疑問に思っています。
ここに私がチェックしたものがあります:
シューズ: 堅実なプラットフォームを作成できるとは思えません。
Cocoa と MacRuby: 新鮮なニュースもなく、チュートリアルもほとんどない
Qt4Ruby: 上と同じ
FxRubyはほとんど更新されていません
...
手短に言えば、ここで提示されたすべてのGUIを見てきましたが、確信が持てません...
そう:
Cocoa と Qt の適切なドキュメントを見つけることができませんか? (それが答えであってほしい!)
保守されている Ruby GUI に基づく強力なコミュニティはありますか? (もう一度イエスと言ってください!)
osx-snow-leopard - リンクされているアーキテクチャではない MacRuby 0.10 HotCocoa のサポートされていないファイル形式 (i386)
MacRuby をインストールしました (rvm 経由):
そしてLLVM(自作経由):
rake を実行すると、エラーが発生します。
出力として x86_64 を指定できる xcode4 を実行したくありません。
この問題を解決するにはどうすればよいですか? チェーンのどこかで 32 ビットが指定されているようです。フラグを使用してコンパイルし、rake を次のように実行してみました。
と
しかし、これらのどれも違いはありません。同じエラーが発生します。
Snow Leopard - 10.6.7 を使用しています。
objective-c - NSTask によって実行される .jar ファイルを XCode のリソースとして含めるにはどうすればよいですか?
現在、MacRuby と XCode を使用して、CraftBukkit の Mac ネイティブ インターフェイスをプログラミングしています。
現在、NSTask と NSPipe を使用して Minecraft の Java サーバーを実行しています。
しかし、bukkit.jar
リソースとして追加できません! ビルドされないだけです。画像を簡単に含めることができ、機能しNSBundle
ます。
#{NSBundle.mainBundle.pathForResource 'bukkit', :ofType => 'jar'}
何も返しません(ファイルに含まれていないため)。
bukkit.jar
に組み込むリソースとしてどのように含めることができsample.app/Contents/Resources
ますか?
ありがとう!