一部のプロジェクトでは、定期的なイベントのルールをユーザーが構成できる必要があります。 イベントのルールは非常に複雑になる場合があります。たとえば、「月の最後から2番目の日ごと」や「特定の日付までの月の第2金曜日ごと」などです。 このような問題を解決するには、
gem ice_cubeを正常に使用できます。
Gem ice_cubeを使用すると、iCalendarに似たAPIを使用して定期的なイベントのルールを設定し、YAMLおよびRubyハッシュ形式でスケジュールをシリアル化/非シリアル化できます。 Ice_cubeを使用すると、1つのスケジュールのみを保存でき、以前に何百ものイベントをすぐに生成することはできません。 ice_cubeを選択した理由は、便利で柔軟なAPI、絶え間ない更新とバグ修正、他の開発者の間での人気です。
宝石のインストール:
gem install ice_cube
スケジュールを作成するには、IceCube :: Scheduleクラスを使用する必要があります。
require 'rubygems' require 'ice_cube' include IceCube
IceCube :: Ruleクラスは、繰り返しルールを作成するために使用されます。 Ice_ubeは、毎日、毎週、毎月、毎年、毎時、分、秒の繰り返しのルールを維持しています。 いくつかの使用例(より完全な例のリストはプロジェクトページにあります):
排他ルールを含むいくつかのルールを1つのスケジュールに組み合わせることができます。
ルールの場合、特定の日付までの繰り返し回数に制限を設定できます。
さて、おそらく、最も興味深いのはスケジュール要求です:
YAML / HASH / iCal形式のデータのシリアル化:
gem ice_cubeを使用して、定期的なイベントのカレンダーをFullCalendarおよびDelayedJobと一緒に実装し
ます 。使用例は
このページにあります 。
この記事のいくつかの例は、公式文書から取られています。 質問やコメントがあれば、喜んでお答えします。
参照:
github.com/seejohnrun/ice_cube-GitHubのプロジェクトページ。
seejohnrun.github.com/ice_cube/static/ice_cube_ruby_nyc.pdf-ice_cubeのプレゼンテーション。
seejohnrun.github.com/ice_cube/static/lsrc_ice_cube.pdfは別のプレゼンテーションです。
www.inexfinance.com/en/blog/2012/12/2/gem_ice_cube-この記事の英語版。
github.com/inex-finance/blog-examples-この記事の例。