Sha256: 40318a6dfb411dc7b84685279efc64768d59622ed6ccce7e4fc61f68ab8ebfa8
Contents?: true
Size: 1.87 KB
Versions: 1
Compression:
Stored size: 1.87 KB
Contents
require "hiccup/version" # ======================================================= # Hiccup # ======================================================= # # This module contains mixins that can apply, serialize, # validate, and humanize an object that models a recurrence # pattern and which exposes the following properties: # # * kind - One of :never, :weekly, :monthly, :annually # <== change to :none and :yearly # * start_date - The date when the recurrence pattern # should start # * ends - true or false indicating whether the recurrence # ever ends # * end_date - The date when the recurrence pattern ends # * skip - The number of instances to skip # <== change this to :interval # * pattern - An array of recurrence rules # # Examples: # # Every other Monday # :kind => :weekly, :pattern => ["Monday"] # # Every year on June 21 (starting in 1999) # :kind => :yearly, :start_date => Date.new(1999, 6, 21) # # The second and fourth Sundays of the month # :kind => :monthly, :pattern => [[2, "Sunday"], [4, "Sunday"]] # # module Hiccup def hiccup(*modules) options = modules.extract_options! add_hiccup_modules(modules) add_hiccup_serialization_formats(options[:serializable]) end private def add_hiccup_modules(modules) (modules||[]).each {|name| add_hiccup_module(name)} end def add_hiccup_module(symbol) include_hiccup_module "hiccup/#{symbol}" end def add_hiccup_serialization_formats(formats) (formats||[]).each {|format| add_hiccup_serialization_format(format)} end def add_hiccup_serialization_format(format) include_hiccup_module "hiccup/serializable/#{format}" end def include_hiccup_module(module_path) require module_path include module_path.classify.constantize end end ActiveRecord::Base.extend(Hiccup) if defined?(ActiveRecord::Base)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
hiccup-0.2.0 | lib/hiccup.rb |