カスタムヘルパー

概要セクション、我々はヘルパーのデザインを導入しました。ビューの動作を豊かにするモジュールです。それらはRubyモジュールなので、独自のヘルパーを作成することができます

 

文字列の文字をシャッフルするヘルパーが(何らかの理由で)必要であると想像して、それを私たちのビューで利用できるようにしたいと考えてください。

最初に、モジュールを定義しましょう。

# app/web/helpers/shuffler.rb
module Web
  module Helpers
    module Shuffler
      private
      SEPARATOR = ''.freeze

      def shuffle(string)
        string
          .encode(Encoding::UTF_8, invalid: :replace)
          .split(SEPARATOR).shuffle.join
      end
    end
  end
end

ファイル名とモジュール名の間には何の慣習もありません。このコードはどこでどのようにして定義することができます。

次に、そのディレクトリをアプリケーションのロード・パスに追加して、それを熱心にロードできます。3番目のステップとして、すべてのビューにモジュールを含めます。低レベルの詳細については、「Viewのシェアコード」を参照してください。

# apps/web/application.rb
module Web
  class Application < Hanami::Application
    configure do
      # ...

      load_paths << [
        'helpers',
        'controllers',
        'views'
      ]

      # ...

      view.prepare do
        include Hanami::Helpers
        include Web::Helpers::Shuffler
      end
    end
  end
end

私たちのカスタムヘルパーはinclude Hanami::Helpers、Rubyだけなので、ラインを削除しても機能することに注意してください。


前のページ:ヘルパー – 番号