問題タブ [ruby-1.9]
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 - Rubyで特定の相対パスからファイルをロードするにはどうすればよいですか?
内部使用の宝石を作成しています。その中で、別のディレクトリからいくつかの YAML をロードします。
data/root.yaml
の相対的な位置に依存したくありませんinitializer.rb
。代わりに、<project_root>
そこからの相対パスへの参照を取得して依存したいのですが、これはより賢明な動きのようです。
まず、これは最善の方法ですか?第二に、もしそうなら、どうすればいいですか?色々方法を調べましたFile
が、そんなことはないと思います。Ruby1.9を使用しています。
現在、特別な定数を作成し、代わりにそれに依存しています。
しかし、私もそのアプローチが好きかどうかはわかりません。
ruby - ハッシュ内のすべての値を新しい値に置き換えるにはどうすればよいですか?
任意に深くネストされた Hash があるとしましょうh
:
C
そして、次のように定義されたクラスがあるとしましょう:
ネストされたすべての値を置き換えて、その値に設定された属性を持つインスタンスにh
なるようにするにはどうすればよいですか? たとえば、上記の例では、次のようなものがあると予想されます。C
dict
whereは のインスタンスを<C @dict = ...>
表します。(ネストされていない値に到達するとすぐに、インスタンスでのラップを停止することに注意してください。)C
@dict = ...
C
ruby - ネストされた配列の機能的なアンラップ
他のネストされた配列を含む配列が与えられた場合、最初の配列の要素のみを含む配列を作成したいと思います。たとえば、[["1"、 "2"]、 "3"、[["4"]]]は["1"、 "2"、 "3"、"4"]と評価されます。
私はうまくいく方法を作ることができました:
しかし、@@unwrapped_array変数を削除する方法を理解できませんでした。
ruby - hpricot のエンコードの問題
Ruby 1.9 で hpricot を使用して Web ページをスクレイピングしようとすると、次のエンコード エラーが発生します。
次のようにしてエラーを再現できます。
ruby - アトミック操作を書く
http://en.wikipedia.org/wiki/Atomicity_(database_systems)によると、Ruby でいくつかのメソッドの原子性を実行したいと思います。
たとえば、私が持っている場合:
私は次のようなことができるようにしたいと思います:
そのようなプロセスを可能にする Ruby 1.9 のネイティブ モジュールはありますか? できればプラグインを使わずにやりたいです。どうもありがとう!
ruby-on-rails - Ruby 1.9、Rails 2.3.9、およびデータベース ビューと erb ビューの Unicode 文字、まだダメですか?
Rails 2.3.9 で実行されている Rails アプリケーションがあります。Ruby 1.8.7 で問題なく動作します。現在、ruby 1.9.2-head でテストしています。
Unicode 文字列に依存するページを読み込もうとするまで、アプリケーションは正常に読み込まれます。次に、悪名高いエンコーディング エラーが発生します。
ActionView::TemplateError (互換性のない文字エンコーディング: UTF-8 および ASCII-8BIT) …</pre>問題は、データベースからいくつかの文字列を ASCII-8BIT として取得していることにあるようです。
Rails 3 が ruby 1.9 と Unicode で正常に動作することは知っています。解決策が 2.3 にバックポートされたのだろうか。
では、ユニコード 2.3.9 の Rails アプリを Ruby 1.9 で動作させる方法はありますか?
ruby - rubygemsをロードせずにruby1.9を呼び出す方法はありますか?
つまり、Ruby 1.9 は自動的に rubygem を必要とするという点で非常に優れているため、require 'somegem'
最初に rubygem を必要とせずに呼び出すと機能し、それは一般的に素晴らしいことです。
しかし、Ruby を使用するシェル スクリプトは山ほどありますが、それらは通常、rubygem に依存していません。シェル ツールは即座に実行される必要があり、rubygem を無料でロードするのは大きな負担となります。これは主に、小さなファイルが散在する大量のディスク操作を伴うためです。
これらのシェル スクリプトを実行するときに、gem の読み込みをスキップするように Ruby に指示できるようにしたいと考えています。理想的に#!ruby --no-rubygems
は、シバン ラインのようなものです。
そのようなことはありますか?それとも、Ruby rubygems を手動で要求する必要があることを示すコンパイル オプションでしょうか?
ruby - Ruby 1.9のすべてのUTF-8ファイルの上に魔法のエンコーディングコメントを載せないようにするにはどうすればよいですか?
キリル文字がたくさん含まれているRailsプロジェクトがあります。
# encoding: utf-8
Ruby 1.8では正常に動作しましたが、Ruby 1.9では、ソースファイルの先頭にコメントを指定しない限り、ソースファイルがUS-ASCIIでエンコードされていると想定しています。その時点で、ファイルは考慮されませんUS-ASCII
。
Rubyに「このアプリケーションはUTF8でエンコードされています。特に宣言されていない限り、含まれているすべてのソースファイルをUTF8と見なしてください」と伝える簡単な方法はありますか?
アップデート:
「エンコーディングを挿入する方法:Ruby 1.9ファイルにUTF-8ディレクティブを自動的に挿入する方法」を作成しました。これは、必要に応じてエンコーディングディレクティブを自動的に追加します。
ruby-on-rails - 「互換性のない文字エンコーディング: ASCII-8BIT および GBK」例外に対処する方法は?
「Rails.3rd によるアジャイル Web 開発」を読んでいます。デポアプリケーションを終了するときに、ユーザー名として漢字を入力します。しかし、このエラーが発生しました。これはRuby1.9と関係があるようです
私の環境はwindow xp、Ruby1.9、Rails 2.3.8、sqlite3です。
このエラーの詳細は次のとおりです。
43 行目が発生した app/views/layouts/store.html.erb の表示:
互換性のない文字エンコーディング: ASCII-8BIT および GBK
抽出されたソース (43 行目あたり):
40: <% if flash[:notice] -%>
41: <%=h flash[:notice] %>
42: <%終了 -%>
43: <%=歩留まり:レイアウト%>
誰でもこの問題を解決できますか?
ruby - Google SketchUp で Ruby を更新するには?
現在、Google SketchUp for Mac には Ruby バージョン1.8.5
があり、少し古くなっています。次のコマンドで Ruby を 1.8.7 (OSX のバージョン) に更新できます。
SketchUp は問題なく起動し、Ruby コンソールにはバージョン 1.8.7 が表示されます。
1.9.2
今、私はさらに進んでに更新しようとしてい1.9.2-rc2
ます。Google SketchUpにはi386
、次のコマンドで生成できるバイナリが必要です。
次に、必要なファイルを SketchUp にコピーします。
SketchUp を起動しようとすると、次のエラー レポートが表示されます。
理由を教えてください。
更新1
Dan Rathbunがいくつかのテストを行い、次のことを発見しました。
Win32 で、Sketchup に 1.9.x をロードさせようとしたときに、1.9.x にはもうない ruby C 関数 "rb_set_kcode" の "エントリ ポイントが見つかりません" というメッセージが表示されました (名前が変更され、Ruby の人々はそうしませんでした)。古い名前を新しい名前にエイリアスします。)
基本的に、Sketchup は、Ruby インタープリターをロードした直後に rb_set_kcode を呼び出して、文字エンコーディングを UTF8 に設定します。1.8.x ブランチのどの Ruby でも問題なく動作しますが、1.9.x では、Ruby プロジェクトは文字エンコーディングを完全に再設計し、すべての C 関数に新しい識別子を与え、さらに多くの関数を追加しました。
1.9.x と Sketchup の解決策は、Sketchup が「Ruby Version Agile」である必要があるようです。これは、ボルダーの Google Guys によるコーディングの変更を意味します。