2016-04-26 9 views
2

CodeRay構文ハイライターの使用可能な言語(言語を表すメソッドを呼び出すときに短いシンボルが渡される)のリストを取得するにはどうすればよいですか?利用可能な言語のリストを取得する

私は

require "coderay" 
CodeRay::Scanners.constants 

を試してみましたが、それは情報を提供していないようです。 (私は、言語に対応した定数を得ることができたとしても、私はまだそれらに対応したシンボルを取得するために別のステップを必要とする。)


関連の質問は、私のような何かを行うことができ、次のとおりです。

CodeRay::Scanners::Ruby # => CodeRay::Scanners::Ruby 

ただし、CodeRay::Scanners.constantsには含まれません。何故ですか?あなたが探している

+1

'CodeRay ::スキャナ:: Ruby'が自動的にロードされているようです。呼び出されると、 'CodeRay :: Scanners.constants'に含まれます。 – Stefan

+1

2つの質問がある場合は、2つの質問をする必要があります。今のままで、あなたはあなたの質問の1つに答えますが、もう1つは答えません。別々に尋ねたことがあれば、おそらく両方に答えを得ていたでしょう。コードを見てみると、['autoload'](http://ruby-doc.org/core/Module.html#method-i-autoload)と[' const_missing'](http:// ruby-doc.org/core/Module.html#method-i-const_missing)。 –

答えて

3

方法は次のとおりです。

CodeRay::Scanners.list 
#=> [:c, :clojure, :cpp, :css, :debug, :delphi, :diff, :erb, :go, :groovy, 
# :haml, :html, :java, :java_script, :json, :lua, :php, :python, :raydebug, 
# :ruby, :sass, :scanner, :sql, :taskpaper, :text, :xml, :yaml] 
+1

ありがとうksarunas。ステファンのおかげで、私はあなたのポストを見ました。 JörgW Mittagのおかげで、 'CodeRay :: PluginHost :: plugin_hash'も関連しているようです。 – sawa

+1

ところで、 'list'は、ファイルシステムをスキャンして、利用可能なプラグインを(自動)ロードせずにスキャンします。 – Stefan

関連する問題